From 08444915133467d306cd0b9c36781e13ddc49937 Mon Sep 17 00:00:00 2001 From: MEEP of Faith Date: Thu, 17 Mar 2022 10:40:47 -0700 Subject: [PATCH 1/4] Add weather to the wiki #10 --- src/wikigen/generators/BlockGenerator.java | 10 +++++----- src/wikigen/generators/ItemGenerator.java | 2 +- src/wikigen/generators/UnitGenerator.java | 2 +- src/wikigen/generators/WeatherGenerator.java | 15 +++++++++++++++ templates/weather.md | 5 +++++ 5 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 src/wikigen/generators/WeatherGenerator.java create mode 100644 templates/weather.md diff --git a/src/wikigen/generators/BlockGenerator.java b/src/wikigen/generators/BlockGenerator.java index 6999242..8688b60 100644 --- a/src/wikigen/generators/BlockGenerator.java +++ b/src/wikigen/generators/BlockGenerator.java @@ -16,11 +16,11 @@ public class BlockGenerator extends FileGenerator{ @Override public ObjectMap vars(Block block){ return ObjectMap.of( - "itemDrop", block.itemDrop, - "liquidDrop", block instanceof Floor f ? f.liquidDrop : null, - "speedMultiplier", block instanceof Floor f && f.speedMultiplier != 1f ? (int)(f.speedMultiplier * 100) + "%" : null, - "dragMultiplier", block instanceof Floor f && f.dragMultiplier != 1f ? (int)(f.dragMultiplier * 100) + "%" : null, - "status", block instanceof Floor f && f.status != StatusEffects.none ? f.status : null + "itemDrop", block.itemDrop, + "liquidDrop", block instanceof Floor f ? f.liquidDrop : null, + "speedMultiplier", block instanceof Floor f && f.speedMultiplier != 1f ? (int)(f.speedMultiplier * 100) + "%" : null, + "dragMultiplier", block instanceof Floor f && f.dragMultiplier != 1f ? (int)(f.dragMultiplier * 100) + "%" : null, + "status", block instanceof Floor f && f.status != StatusEffects.none ? f.status : null ); } diff --git a/src/wikigen/generators/ItemGenerator.java b/src/wikigen/generators/ItemGenerator.java index 109ce83..ad194ce 100644 --- a/src/wikigen/generators/ItemGenerator.java +++ b/src/wikigen/generators/ItemGenerator.java @@ -25,7 +25,7 @@ public ObjectMap vars(Item item){ "produced", links(Vars.content.blocks().select(b -> b.minfo.mod == null && ((drillable && b instanceof Drill d && d.tier >= item.hardness) || (b instanceof GenericCrafter g && g.outputItem != null && g.outputItem.item == item)))), "used", links(Vars.content.blocks().select(b -> b.minfo.mod == null && b.requirements != null && Structs.contains(b.requirements, i -> i.item == item))), "crafting", links(Vars.content.blocks().select(b -> b.minfo.mod == null && b.consumes.all() != null && Structs.contains(b.consumes.all(), c -> (c instanceof ConsumeItemFilter i && i.filter.get(item)) - || (c instanceof ConsumeItems h && Structs.contains(h.items, s -> s.item == item))))) + || (c instanceof ConsumeItems h && Structs.contains(h.items, s -> s.item == item))))) ); } diff --git a/src/wikigen/generators/UnitGenerator.java b/src/wikigen/generators/UnitGenerator.java index 43bb3b1..1571d22 100644 --- a/src/wikigen/generators/UnitGenerator.java +++ b/src/wikigen/generators/UnitGenerator.java @@ -13,7 +13,7 @@ public class UnitGenerator extends FileGenerator{ @Override public ObjectMap vars(UnitType content){ return ObjectMap.of( - "created", links(Vars.content.blocks().select(b -> b.minfo.mod == null && b instanceof UnitFactory u && u.plans.contains(p -> p.unit == content))) + "created", links(Vars.content.blocks().select(b -> b.minfo.mod == null && b instanceof UnitFactory u && u.plans.contains(p -> p.unit == content))) ); } } diff --git a/src/wikigen/generators/WeatherGenerator.java b/src/wikigen/generators/WeatherGenerator.java new file mode 100644 index 0000000..953ce26 --- /dev/null +++ b/src/wikigen/generators/WeatherGenerator.java @@ -0,0 +1,15 @@ +package wikigen.generators; + +import mindustry.ctype.*; +import mindustry.type.*; +import wikigen.*; + +//TODO implement better support +@Generates(ContentType.weather) +public class WeatherGenerator extends FileGenerator{ + + @Override + public String linkImage(Weather content){ + return "weather-" + content.name + "-ui"; + } +} diff --git a/templates/weather.md b/templates/weather.md new file mode 100644 index 0000000..9f6ea3a --- /dev/null +++ b/templates/weather.md @@ -0,0 +1,5 @@ +# $localizedName + +$stats + +--- From f3a427edaae35846789417774388b8bd28952bbe Mon Sep 17 00:00:00 2001 From: MEEP of Faith Date: Thu, 17 Mar 2022 10:42:44 -0700 Subject: [PATCH 2/4] oh yeah, this is big brain time --- templates/weather.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/weather.md b/templates/weather.md index 9f6ea3a..fae7c3b 100644 --- a/templates/weather.md +++ b/templates/weather.md @@ -1,4 +1,4 @@ -# $localizedName +# $localizedName $stats From 12e3e4ecb35cea7634f47597ad495e6269a99648 Mon Sep 17 00:00:00 2001 From: MEEP of Faith Date: Thu, 17 Mar 2022 11:08:52 -0700 Subject: [PATCH 3/4] Block Attribute Display --- src/wikigen/generators/BlockGenerator.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/wikigen/generators/BlockGenerator.java b/src/wikigen/generators/BlockGenerator.java index 8688b60..df5359d 100644 --- a/src/wikigen/generators/BlockGenerator.java +++ b/src/wikigen/generators/BlockGenerator.java @@ -2,12 +2,14 @@ import arc.files.*; import arc.struct.*; +import mindustry.*; import mindustry.content.*; import mindustry.ctype.*; import mindustry.world.*; import mindustry.world.blocks.*; import mindustry.world.blocks.environment.*; import mindustry.world.blocks.legacy.*; +import mindustry.world.meta.*; import wikigen.*; @Generates(ContentType.block) @@ -20,10 +22,26 @@ public ObjectMap vars(Block block){ "liquidDrop", block instanceof Floor f ? f.liquidDrop : null, "speedMultiplier", block instanceof Floor f && f.speedMultiplier != 1f ? (int)(f.speedMultiplier * 100) + "%" : null, "dragMultiplier", block instanceof Floor f && f.dragMultiplier != 1f ? (int)(f.dragMultiplier * 100) + "%" : null, - "status", block instanceof Floor f && f.status != StatusEffects.none ? f.status : null + "status", block instanceof Floor f && f.status != StatusEffects.none ? f.status : null, + "affinities", scrapeAttributes(block) ); } + public String scrapeAttributes(Block block){ + StringBuilder s = new StringBuilder(); + for(Attribute a : Attribute.all){ + if(block.attributes.get(a) != 0){ + if(block instanceof Floor){ + if(!s.isEmpty()) s.append("\n"); + s.append(a.name).append(": ").append((int)(block.attributes.get(a) * 100)).append("%"); + }else{ + s.append(links(Vars.content.blocks().select(b -> b.minfo.mod == null && b.attributes.get(a) != 0))); + } + } + } + return s.toString(); + } + @Override public String linkImage(Block content){ return "block-" + content.name + "-ui"; From 6791968178253faed32407450a8fe5d90fd55820 Mon Sep 17 00:00:00 2001 From: MEEP of Faith Date: Thu, 17 Mar 2022 11:11:24 -0700 Subject: [PATCH 4/4] Weather Attribute Display --- src/wikigen/generators/BlockGenerator.java | 5 +++-- src/wikigen/generators/WeatherGenerator.java | 21 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/wikigen/generators/BlockGenerator.java b/src/wikigen/generators/BlockGenerator.java index df5359d..87bb29b 100644 --- a/src/wikigen/generators/BlockGenerator.java +++ b/src/wikigen/generators/BlockGenerator.java @@ -23,11 +23,11 @@ public ObjectMap vars(Block block){ "speedMultiplier", block instanceof Floor f && f.speedMultiplier != 1f ? (int)(f.speedMultiplier * 100) + "%" : null, "dragMultiplier", block instanceof Floor f && f.dragMultiplier != 1f ? (int)(f.dragMultiplier * 100) + "%" : null, "status", block instanceof Floor f && f.status != StatusEffects.none ? f.status : null, - "affinities", scrapeAttributes(block) + "attributes", getAttributes(block) ); } - public String scrapeAttributes(Block block){ + public String getAttributes(Block block){ StringBuilder s = new StringBuilder(); for(Attribute a : Attribute.all){ if(block.attributes.get(a) != 0){ @@ -39,6 +39,7 @@ public String scrapeAttributes(Block block){ } } } + if(s.isEmpty()) return null; return s.toString(); } diff --git a/src/wikigen/generators/WeatherGenerator.java b/src/wikigen/generators/WeatherGenerator.java index 953ce26..e3f723d 100644 --- a/src/wikigen/generators/WeatherGenerator.java +++ b/src/wikigen/generators/WeatherGenerator.java @@ -1,13 +1,34 @@ package wikigen.generators; +import arc.struct.*; import mindustry.ctype.*; import mindustry.type.*; +import mindustry.world.meta.*; import wikigen.*; //TODO implement better support @Generates(ContentType.weather) public class WeatherGenerator extends FileGenerator{ + @Override + public ObjectMap vars(Weather weather){ + return ObjectMap.of( + "attrs", getAttributes(weather) + ); + } + + public String getAttributes(Weather weather){ + StringBuilder s = new StringBuilder(); + for(Attribute a : Attribute.all){ + if(weather.attrs.get(a) != 0){ + if(!s.isEmpty()) s.append("\n"); + s.append(a.name).append(": ").append((int)(weather.attrs.get(a) * 100)).append("%"); + } + } + if(s.isEmpty()) return null; + return s.toString(); + } + @Override public String linkImage(Weather content){ return "weather-" + content.name + "-ui";