diff --git a/src/wikigen/generators/BlockGenerator.java b/src/wikigen/generators/BlockGenerator.java index 6999242..87bb29b 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) @@ -16,14 +18,31 @@ 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, + "attributes", getAttributes(block) ); } + public String getAttributes(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))); + } + } + } + if(s.isEmpty()) return null; + return s.toString(); + } + @Override public String linkImage(Block content){ return "block-" + content.name + "-ui"; 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..e3f723d --- /dev/null +++ b/src/wikigen/generators/WeatherGenerator.java @@ -0,0 +1,36 @@ +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"; + } +} diff --git a/templates/weather.md b/templates/weather.md new file mode 100644 index 0000000..fae7c3b --- /dev/null +++ b/templates/weather.md @@ -0,0 +1,5 @@ +# $localizedName + +$stats + +---