diff --git a/src/main/java/me/parsell/wireddust/WiredDustConfig.java b/src/main/java/me/parsell/wireddust/WiredDustConfig.java index b9cc2c5..c2e206c 100644 --- a/src/main/java/me/parsell/wireddust/WiredDustConfig.java +++ b/src/main/java/me/parsell/wireddust/WiredDustConfig.java @@ -3,7 +3,7 @@ package me.parsell.wireddust; import me.shedaniel.autoconfig.ConfigData; import me.shedaniel.autoconfig.annotation.Config; -@Config(name = "GlowstoneWire") +@Config(name = "WiredDust") public class WiredDustConfig implements ConfigData{ public boolean useVanillaItems = true; @@ -11,12 +11,12 @@ public class WiredDustConfig implements ConfigData{ public boolean addGlowstoneWire = true; public boolean addBlazePowderWire = true; - public boolean doBlazePowderDamage = true; + //public boolean doBlazePowderDamage = true; // GR public boolean addGunpowderWire = true; - public boolean gunpowderWireIgnitesExtremelyFlammableBlocks = true; - public boolean gunpowderWireIgnitesFlammableBlocks = false; - public boolean gunpowderWireIgnitesTNT = true; + public boolean gunpowderWireIgnitesExtremelyFlammableBlocks = true; //GR: Campfire, leaves + public boolean gunpowderWireIgnitesFlammableBlocks = false; //GR: wool, hay + //public boolean gunpowderWireIgnitesTNT = true; //GR: tnt duh //TODO Consider gamerules for additional functionality instead of mod config } diff --git a/src/main/java/me/parsell/wireddust/common/WDBlazePowderWireBlock.java b/src/main/java/me/parsell/wireddust/common/WDBlazePowderWireBlock.java index 6fa162c..a713909 100644 --- a/src/main/java/me/parsell/wireddust/common/WDBlazePowderWireBlock.java +++ b/src/main/java/me/parsell/wireddust/common/WDBlazePowderWireBlock.java @@ -2,6 +2,7 @@ package me.parsell.wireddust.common; import java.util.Random; +import me.parsell.wireddust.core.WiredDustGamerules; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.block.BlockState; @@ -22,8 +23,9 @@ public class WDBlazePowderWireBlock extends WDWireBlock{ @Override public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { - if (!entity.isFireImmune() && entity instanceof LivingEntity && !EnchantmentHelper.hasFrostWalker((LivingEntity)entity)) - entity.damage(DamageSource.HOT_FLOOR, 1.0F); + if(world.getGameRules().getBoolean(WiredDustGamerules.DO_BLAZE_POWDER_WIRE_DAMAGE)) + if (!entity.isFireImmune() && entity instanceof LivingEntity && !EnchantmentHelper.hasFrostWalker((LivingEntity)entity)) + entity.damage(DamageSource.HOT_FLOOR, 1.0F); } @Environment(EnvType.CLIENT) diff --git a/src/main/java/me/parsell/wireddust/common/WDGunpowderWireBlock.java b/src/main/java/me/parsell/wireddust/common/WDGunpowderWireBlock.java index f3b487f..df3b51f 100644 --- a/src/main/java/me/parsell/wireddust/common/WDGunpowderWireBlock.java +++ b/src/main/java/me/parsell/wireddust/common/WDGunpowderWireBlock.java @@ -3,6 +3,7 @@ package me.parsell.wireddust.common; import java.util.Iterator; import java.util.Random; +import me.parsell.wireddust.core.WiredDustGamerules; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.block.Block; @@ -28,7 +29,8 @@ import net.minecraft.util.math.Direction.Axis; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; -// TODO: All the magic to make this work the way i want +// TODO: All the magic to make this work the way i +// TODO: make textures differ for lit state, and burnt state public class WDGunpowderWireBlock extends WDWireBlock{ public static final BooleanProperty LIT; public static final BooleanProperty BURNT; @@ -126,7 +128,7 @@ public class WDGunpowderWireBlock extends WDWireBlock{ if(state.get(super.DIRECTION_TO_WIRE_CONNECTION.get(dir)).isConnected()) if(offsetBlockState.isOf(this)) light(world, offsetPos, offsetBlockState); - else if(offsetBlockState.isOf(Blocks.TNT)) { + else if(offsetBlockState.isOf(Blocks.TNT) && world.getGameRules().getBoolean(WiredDustGamerules.GUNPOWDER_WIRE_IGNITES_TNT)) { TntBlock.primeTnt(world, offsetPos); world.setBlockState(offsetPos, Blocks.AIR.getDefaultState()); } else if(offsetBlockState.isOf(Blocks.CAMPFIRE) && !offsetBlockState.get(CampfireBlock.LIT)) diff --git a/src/main/java/me/parsell/wireddust/common/WDWireBlock.java b/src/main/java/me/parsell/wireddust/common/WDWireBlock.java index 9cce943..548a9ab 100644 --- a/src/main/java/me/parsell/wireddust/common/WDWireBlock.java +++ b/src/main/java/me/parsell/wireddust/common/WDWireBlock.java @@ -159,7 +159,7 @@ public class WDWireBlock extends Block{ else if (!NORTH && !SOUTH && WEST && !state.get(WIRE_CONNECTION_EAST).isBroken()) state = state.with(WIRE_CONNECTION_EAST, WDWireConnection.SIDE); - //TODO: FIX THIS. + //TODO: FIX n&s issue return state; } diff --git a/src/main/java/me/parsell/wireddust/core/WiredDustGamerules.java b/src/main/java/me/parsell/wireddust/core/WiredDustGamerules.java new file mode 100644 index 0000000..3980eaa --- /dev/null +++ b/src/main/java/me/parsell/wireddust/core/WiredDustGamerules.java @@ -0,0 +1,20 @@ +package me.parsell.wireddust.core; + +import net.fabricmc.fabric.api.gamerule.v1.GameRuleFactory; +import net.fabricmc.fabric.api.gamerule.v1.GameRuleRegistry; +import net.minecraft.world.GameRules; +import net.minecraft.world.GameRules.Category; + +public class WiredDustGamerules { + public static final GameRules.Key DO_BLAZE_POWDER_WIRE_DAMAGE; + public static final GameRules.Key GUNPOWDER_WIRE_IGNITES_TNT; + + public void init(){ + // placeabo, just ensures that static gets ran here + } + + static { + DO_BLAZE_POWDER_WIRE_DAMAGE = GameRuleRegistry.register("doBlazePowderWireDamage", Category.MISC, GameRuleFactory.createBooleanRule(true)); + GUNPOWDER_WIRE_IGNITES_TNT = GameRuleRegistry.register("gunpowderWireIgnitesTNT", Category.MISC, GameRuleFactory.createBooleanRule(true)); + } +} diff --git a/src/main/java/me/parsell/wireddust/core/WiredDustItems.java b/src/main/java/me/parsell/wireddust/core/WiredDustItems.java index 759d5b0..3335a12 100644 --- a/src/main/java/me/parsell/wireddust/core/WiredDustItems.java +++ b/src/main/java/me/parsell/wireddust/core/WiredDustItems.java @@ -2,6 +2,7 @@ package me.parsell.wireddust.core; import com.mojang.serialization.Lifecycle; +import me.parsell.wireddust.WiredDust; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemGroup; @@ -11,12 +12,16 @@ import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryKey; public class WiredDustItems { - public static void init(){ - Registry.ITEM.set(Registry.ITEM.getRawId(Items.GLOWSTONE_DUST), RegistryKey.of(Registry.ITEM.getKey(), new Identifier("glowstone_dust")), new BlockItem(WiredDustBlocks.GLOWSTONE_WIRE, new FabricItemSettings().group(ItemGroup.MATERIALS)), Lifecycle.stable()); - Registry.ITEM.set(Registry.ITEM.getRawId(Items.BLAZE_POWDER), RegistryKey.of(Registry.ITEM.getKey(), new Identifier("blaze_powder")), new BlockItem(WiredDustBlocks.BLAZE_POWDER_WIRE, new FabricItemSettings().group(ItemGroup.BREWING)), Lifecycle.stable()); - Registry.ITEM.set(Registry.ITEM.getRawId(Items.GUNPOWDER), RegistryKey.of(Registry.ITEM.getKey(), new Identifier("gunpowder")), new BlockItem(WiredDustBlocks.GUNPOWDER_WIRE, new FabricItemSettings().group(ItemGroup.MATERIALS)), Lifecycle.stable()); - Registry.ITEM.set(Registry.ITEM.getRawId(Items.SUGAR), RegistryKey.of(Registry.ITEM.getKey(), new Identifier("sugar")), new BlockItem(WiredDustBlocks.SUGAR_WIRE, new FabricItemSettings().group(ItemGroup.MATERIALS)), Lifecycle.stable()); + if(WiredDust.CONFIG.useVanillaItems) { + if(WiredDust.CONFIG.addGlowstoneWire) + Registry.ITEM.set(Registry.ITEM.getRawId(Items.GLOWSTONE_DUST), RegistryKey.of(Registry.ITEM.getKey(), new Identifier("glowstone_dust")), new BlockItem(WiredDustBlocks.GLOWSTONE_WIRE, new FabricItemSettings().group(ItemGroup.MATERIALS)), Lifecycle.stable()); + if(WiredDust.CONFIG.addBlazePowderWire) + Registry.ITEM.set(Registry.ITEM.getRawId(Items.BLAZE_POWDER), RegistryKey.of(Registry.ITEM.getKey(), new Identifier("blaze_powder")), new BlockItem(WiredDustBlocks.BLAZE_POWDER_WIRE, new FabricItemSettings().group(ItemGroup.BREWING)), Lifecycle.stable()); + if(WiredDust.CONFIG.addGunpowderWire) + Registry.ITEM.set(Registry.ITEM.getRawId(Items.GUNPOWDER), RegistryKey.of(Registry.ITEM.getKey(), new Identifier("gunpowder")), new BlockItem(WiredDustBlocks.GUNPOWDER_WIRE, new FabricItemSettings().group(ItemGroup.MATERIALS)), Lifecycle.stable()); + if(WiredDust.CONFIG.addSugarWire) + Registry.ITEM.set(Registry.ITEM.getRawId(Items.SUGAR), RegistryKey.of(Registry.ITEM.getKey(), new Identifier("sugar")), new BlockItem(WiredDustBlocks.SUGAR_WIRE, new FabricItemSettings().group(ItemGroup.MATERIALS)), Lifecycle.stable()); + } } - } diff --git a/src/main/resources/assets/wireddust/lang/en_us.json b/src/main/resources/assets/wireddust/lang/en_us.json index 19f6472..0a39fd6 100644 --- a/src/main/resources/assets/wireddust/lang/en_us.json +++ b/src/main/resources/assets/wireddust/lang/en_us.json @@ -1,7 +1,7 @@ { "itemGroup.wireddust.general": "Wired Dust", - "block.wireddust.glowstone_wire": "Glowstone Wire", - "block.wireddust.sugar_wire": "Sugar Wire", - "block.wireddust.blaze_powder_wire": "Blaze Powder Wire", - "block.wireddust.gunpowder_wire": "Gunpowder Wire" + "block.wireddust.glowstone_wire": "Glowstone", + "block.wireddust.sugar_wire": "Sugar", + "block.wireddust.blaze_powder_wire": "Blaze Powder", + "block.wireddust.gunpowder_wire": "Gunpowder" } \ No newline at end of file