From 3997039c1ae2c829b276539b2146861e42727725 Mon Sep 17 00:00:00 2001 From: Partonetrain Date: Sun, 13 Sep 2026 17:11:32 -0500 Subject: [PATCH 1/8] theorycrafting --- build.gradle | 18 ++---- gradle.properties | 8 ++- .../java/vectorwing/blockbox/BlockBox.java | 11 +++- .../blockbox/common/registry/ModBlocks.java | 12 ++-- .../compat/BlockBoxEveryCompatModule.java | 62 +++++++++++++++++++ 5 files changed, 90 insertions(+), 21 deletions(-) create mode 100644 src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java diff --git a/build.gradle b/build.gradle index d89641f7..6bd5887c 100644 --- a/build.gradle +++ b/build.gradle @@ -29,6 +29,7 @@ repositories { name = "ModMaven" url = "https://modmaven.dev" } + maven { url = "https://api.modrinth.com/maven" } //for moonlight and everycompat } base { @@ -129,20 +130,11 @@ dependencies { // We add the full version to localRuntime, not runtimeOnly, so that we do not publish a dependency on it localRuntime "mezz.jei:jei-${jei_minecraft_version}-neoforge:${jei_version}" - // Example mod dependency using a mod jar from ./libs with a flat dir repository - // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar - // The group id is ignored when searching -- in this case, it is "blank" - // implementation "blank:coolmod-${mc_version}:${coolmod_version}" + implementation "maven.modrinth:twkfQtEc:${moonlight_version}" //moonlight + implementation "maven.modrinth:eiktJyw1:${everycomp_version}" //everycompat - // Example mod dependency using a file as dependency - // implementation files("libs/coolmod-${mc_version}-${coolmod_version}.jar") - - // Example project dependency using a sister or child project: - // implementation project(":myproject") - - // For more info: - // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html - // http://www.gradle.org/docs/current/userguide/dependency_management.html + runtimeOnly "maven.modrinth:VsM5EDoI:${blueprint_version}" //blueprint for atmopsheric + runtimeOnly "maven.modrinth:U9sJOFmJ:${atmospheric_version}" //atmospheric for wood testing } // This block of code expands all declared replace properties in the specified resource targets. diff --git a/gradle.properties b/gradle.properties index 2dd4f886..433bd71e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,7 +15,7 @@ parchment_mappings_version=2024.11.17 # The Minecraft version must agree with the Neo version to get a valid artifact minecraft_version=1.21.1 minecraft_version_range=[1.21.1] -neo_version=21.1.219 +neo_version=21.1.250 neo_version_range=[21.1.92,) loader_version_range=[1,) @@ -23,6 +23,12 @@ loader_version_range=[1,) jei_version=19.8.2.99 jei_minecraft_version=1.21 +moonlight_version=BnjVBHVl +everycomp_version=vcMMscKB + +blueprint_version=FHOjk8Ez +atmospheric_version=XIvPRE4O + ## Mod Properties mod_id=blockbox mod_name=The Block Box diff --git a/src/main/java/vectorwing/blockbox/BlockBox.java b/src/main/java/vectorwing/blockbox/BlockBox.java index 2004e7c5..c3cd5cd3 100644 --- a/src/main/java/vectorwing/blockbox/BlockBox.java +++ b/src/main/java/vectorwing/blockbox/BlockBox.java @@ -1,13 +1,16 @@ package vectorwing.blockbox; import com.mojang.logging.LogUtils; -import net.minecraft.resources.ResourceLocation; +import net.mehvahdjukaar.every_compat.EveryCompat; +import net.mehvahdjukaar.every_compat.api.EveryCompatAPI; import net.neoforged.bus.api.IEventBus; import net.neoforged.fml.ModContainer; import net.neoforged.fml.common.Mod; import net.neoforged.fml.config.ModConfig; +import net.neoforged.fml.loading.LoadingModList; import org.slf4j.Logger; import vectorwing.blockbox.common.registry.*; +import vectorwing.blockbox.compat.BlockBoxEveryCompatModule; @Mod(BlockBox.MODID) public class BlockBox @@ -24,5 +27,11 @@ public BlockBox(IEventBus modEventBus, ModContainer modContainer) { ModSounds.SOUNDS.register(modEventBus); ModParticleTypes.PARTICLE_TYPES.register(modEventBus); ModCreativeTabs.CREATIVE_MODE_TABS.register(modEventBus); + + if(LoadingModList.get().getModFileById("everycomp") != null){ //there is probably a better way to check? + BlockBox.LOGGER.info("EveryCompat detected. Starting compat module"); + EveryCompatAPI.registerModule(new BlockBoxEveryCompatModule(BlockBox.MODID)); + //EveryCompat.addOptionalModule(BlockBox.MODID, () -> BlockBoxEveryCompatModule.class); //everycompat internal version? + } } } diff --git a/src/main/java/vectorwing/blockbox/common/registry/ModBlocks.java b/src/main/java/vectorwing/blockbox/common/registry/ModBlocks.java index 0d87008e..e9e70662 100644 --- a/src/main/java/vectorwing/blockbox/common/registry/ModBlocks.java +++ b/src/main/java/vectorwing/blockbox/common/registry/ModBlocks.java @@ -218,27 +218,27 @@ private static Block slab(BlockBehaviour.Properties properties) { return new SlabBlock(properties); } - private static Block palisade(Supplier spikedForm, @Nullable Supplier strippedForm, MapColor mapColor) { + public static Block palisade(Supplier spikedForm, @Nullable Supplier strippedForm, MapColor mapColor) { return palisade(spikedForm, strippedForm, mapColor, SoundType.WOOD); } - private static Block palisade(Supplier spikedForm, @Nullable Supplier strippedForm, MapColor mapColor, SoundType soundType) { + public static Block palisade(Supplier spikedForm, @Nullable Supplier strippedForm, MapColor mapColor, SoundType soundType) { return new PalisadeBlock(spikedForm, strippedForm, PROPERTIES_PALISADE.mapColor(mapColor).sound(soundType).ignitedByLava()); } - private static Block netherPalisade(Supplier spikedForm, @Nullable Supplier strippedForm, MapColor mapColor) { + public static Block netherPalisade(Supplier spikedForm, @Nullable Supplier strippedForm, MapColor mapColor) { return new PalisadeBlock(spikedForm, strippedForm, PROPERTIES_PALISADE.mapColor(mapColor).sound(SoundType.STEM)); } - private static Block spikedPalisade(@Nullable Supplier strippedForm, MapColor mapColor) { + public static Block spikedPalisade(@Nullable Supplier strippedForm, MapColor mapColor) { return spikedPalisade(strippedForm, mapColor, SoundType.WOOD); } - private static Block spikedPalisade(@Nullable Supplier strippedForm, MapColor mapColor, SoundType soundType) { + public static Block spikedPalisade(@Nullable Supplier strippedForm, MapColor mapColor, SoundType soundType) { return new SpikedPalisadeBlock(strippedForm, PROPERTIES_PALISADE.mapColor(mapColor).sound(soundType).ignitedByLava()); } - private static Block netherSpikedPalisade(@Nullable Supplier strippedForm, MapColor mapColor) { + public static Block netherSpikedPalisade(@Nullable Supplier strippedForm, MapColor mapColor) { return new SpikedPalisadeBlock(strippedForm, PROPERTIES_PALISADE.mapColor(mapColor).sound(SoundType.STEM)); } } diff --git a/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java b/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java new file mode 100644 index 00000000..f594faf3 --- /dev/null +++ b/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java @@ -0,0 +1,62 @@ +package vectorwing.blockbox.compat; + +import net.mehvahdjukaar.every_compat.api.SimpleEntrySet; +import net.mehvahdjukaar.every_compat.modules.EveryCompatModule; +import net.mehvahdjukaar.moonlight.api.set.wood.VanillaWoodTypes; +import net.mehvahdjukaar.moonlight.api.set.wood.WoodType; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BlockTags; +import net.minecraft.world.level.block.Block; +import vectorwing.blockbox.common.block.PalisadeBlock; +import vectorwing.blockbox.common.registry.ModBlocks; +import vectorwing.blockbox.common.registry.ModCreativeTabs; + +import java.util.function.Supplier; + +import static net.mehvahdjukaar.moonlight.api.set.wood.VanillaWoodChildKeys.LOG; + +//Modeled after WoodGood's BibliocraftLegacyModule: +//https://github.com/MehVahdJukaar/WoodGood/blob/1.21/neoforge/src/main/java/net/mehvahdjukaar/every_compat/modules/neoforge/bibliocraft/BibliocraftLegacyModule.java +public class BlockBoxEveryCompatModule extends EveryCompatModule { + + public final SimpleEntrySet palisade; + public final SimpleEntrySet spikedPalisade; + public final SimpleEntrySet strippedPalisade; + public final SimpleEntrySet strippedSpikedPalisade; + + + public BlockBoxEveryCompatModule(String modId) { + super(modId, "bb"); + ResourceLocation creativeTabRL = ModCreativeTabs.TAB_BLOCK_BOX.getId(); + + this.palisade = SimpleEntrySet.builder(WoodType.class, "palisade", + getModBlock("oak_palisade"), () -> VanillaWoodTypes.OAK, + w -> w.canBurn() ? ModBlocks.netherPalisade(getPalisadeForm(w, PalisadeForm.SPIKED), getPalisadeForm(w, PalisadeForm.STRIPPED), w.getColor()) : ModBlocks.palisade(getPalisadeForm(w, PalisadeForm.SPIKED), getPalisadeForm(w, PalisadeForm.STRIPPED), w.getColor())) + .requiresChildren(LOG) //REASON: recipes + .addTag(BlockTags.MINEABLE_WITH_AXE, Registries.BLOCK) + .addTag(modRes("palisades"), Registries.BLOCK, Registries.ITEM) + .setTab(getTab(creativeTabRL)) + .addRecipe(modRes("wood/oak/palisade")) + .build(); + this.addEntry(palisade); + } + + public Supplier getPalisadeForm(WoodType woodType, PalisadeForm palisadeForm){ + return () -> switch (palisadeForm){ + case NORMAL -> palisade.blocks.get(woodType); + case SPIKED -> spikedPalisade.blocks.get(woodType); + case STRIPPED -> strippedPalisade.blocks.get(woodType); + case STRIPPED_SPIKED -> strippedSpikedPalisade.blocks.get(woodType); + }; + } + + public enum PalisadeForm { + NORMAL, + SPIKED, + STRIPPED, + STRIPPED_SPIKED + } + + +} From 8e7d0bd6c87a4a70ff25057abdb57e34a198fba3 Mon Sep 17 00:00:00 2001 From: Partonetrain Date: Sun, 13 Sep 2026 17:18:23 -0500 Subject: [PATCH 2/8] seats work tho. kinda. --- .../compat/BlockBoxEveryCompatModule.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java b/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java index f594faf3..7d121287 100644 --- a/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java +++ b/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java @@ -8,18 +8,23 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BlockTags; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockBehaviour; import vectorwing.blockbox.common.block.PalisadeBlock; +import vectorwing.blockbox.common.block.SeatBlock; import vectorwing.blockbox.common.registry.ModBlocks; import vectorwing.blockbox.common.registry.ModCreativeTabs; import java.util.function.Supplier; -import static net.mehvahdjukaar.moonlight.api.set.wood.VanillaWoodChildKeys.LOG; +import static net.mehvahdjukaar.moonlight.api.set.wood.VanillaWoodChildKeys.*; //Modeled after WoodGood's BibliocraftLegacyModule: //https://github.com/MehVahdJukaar/WoodGood/blob/1.21/neoforge/src/main/java/net/mehvahdjukaar/every_compat/modules/neoforge/bibliocraft/BibliocraftLegacyModule.java public class BlockBoxEveryCompatModule extends EveryCompatModule { + public final SimpleEntrySet seat; + public final SimpleEntrySet palisade; public final SimpleEntrySet spikedPalisade; public final SimpleEntrySet strippedPalisade; @@ -30,6 +35,17 @@ public BlockBoxEveryCompatModule(String modId) { super(modId, "bb"); ResourceLocation creativeTabRL = ModCreativeTabs.TAB_BLOCK_BOX.getId(); + this.seat = SimpleEntrySet.builder(WoodType.class, "seat", + getModBlock("oak_seat"), () -> VanillaWoodTypes.OAK, + w -> new SeatBlock(BlockBehaviour.Properties.ofFullCopy(w.planks))) + .requiresChildren(PLANKS) //REASON: recipes + .addTag(BlockTags.MINEABLE_WITH_AXE, Registries.BLOCK) + .addTag(modRes("wooden_seats"), Registries.BLOCK, Registries.ITEM) + .setTab(getTab(creativeTabRL)) + .addRecipe(modRes("wood/oak/seat")) + .build(); + this.addEntry(seat); + this.palisade = SimpleEntrySet.builder(WoodType.class, "palisade", getModBlock("oak_palisade"), () -> VanillaWoodTypes.OAK, w -> w.canBurn() ? ModBlocks.netherPalisade(getPalisadeForm(w, PalisadeForm.SPIKED), getPalisadeForm(w, PalisadeForm.STRIPPED), w.getColor()) : ModBlocks.palisade(getPalisadeForm(w, PalisadeForm.SPIKED), getPalisadeForm(w, PalisadeForm.STRIPPED), w.getColor())) @@ -40,6 +56,7 @@ public BlockBoxEveryCompatModule(String modId) { .addRecipe(modRes("wood/oak/palisade")) .build(); this.addEntry(palisade); + } public Supplier getPalisadeForm(WoodType woodType, PalisadeForm palisadeForm){ @@ -58,5 +75,4 @@ public enum PalisadeForm { STRIPPED_SPIKED } - } From 6658de791f5e8b6cd42a71c5eaccf1aa9d99df00 Mon Sep 17 00:00:00 2001 From: Partonetrain Date: Sun, 13 Sep 2026 23:26:37 -0500 Subject: [PATCH 3/8] all blocks are in. models are borked --- .../compat/BlockBoxEveryCompatModule.java | 61 +++++++++++++++++-- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java b/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java index 7d121287..d3d7fe95 100644 --- a/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java +++ b/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java @@ -19,8 +19,6 @@ import static net.mehvahdjukaar.moonlight.api.set.wood.VanillaWoodChildKeys.*; -//Modeled after WoodGood's BibliocraftLegacyModule: -//https://github.com/MehVahdJukaar/WoodGood/blob/1.21/neoforge/src/main/java/net/mehvahdjukaar/every_compat/modules/neoforge/bibliocraft/BibliocraftLegacyModule.java public class BlockBoxEveryCompatModule extends EveryCompatModule { public final SimpleEntrySet seat; @@ -42,20 +40,73 @@ public BlockBoxEveryCompatModule(String modId) { .addTag(BlockTags.MINEABLE_WITH_AXE, Registries.BLOCK) .addTag(modRes("wooden_seats"), Registries.BLOCK, Registries.ITEM) .setTab(getTab(creativeTabRL)) - .addRecipe(modRes("wood/oak/seat")) + .addRecipe(modRes("oak_seat")) + .copyParentDrop() + .addTexture(modRes("block/oak_seat_side")) + .addTexture(modRes("block/oak_seat_top")) .build(); this.addEntry(seat); this.palisade = SimpleEntrySet.builder(WoodType.class, "palisade", getModBlock("oak_palisade"), () -> VanillaWoodTypes.OAK, - w -> w.canBurn() ? ModBlocks.netherPalisade(getPalisadeForm(w, PalisadeForm.SPIKED), getPalisadeForm(w, PalisadeForm.STRIPPED), w.getColor()) : ModBlocks.palisade(getPalisadeForm(w, PalisadeForm.SPIKED), getPalisadeForm(w, PalisadeForm.STRIPPED), w.getColor())) + w -> w.canBurn() ? + ModBlocks.netherPalisade(getPalisadeForm(w, PalisadeForm.SPIKED), getPalisadeForm(w, PalisadeForm.STRIPPED), w.getColor()) : + ModBlocks.palisade(getPalisadeForm(w, PalisadeForm.SPIKED), getPalisadeForm(w, PalisadeForm.STRIPPED), w.getColor()) + ) .requiresChildren(LOG) //REASON: recipes .addTag(BlockTags.MINEABLE_WITH_AXE, Registries.BLOCK) .addTag(modRes("palisades"), Registries.BLOCK, Registries.ITEM) .setTab(getTab(creativeTabRL)) - .addRecipe(modRes("wood/oak/palisade")) + .copyParentDrop() + .addRecipe(modRes("oak_palisade")) + .addTexture(modRes("block/oak_palisade_core")) + .addTexture(modRes("block/oak_palisade_side")) + .addTexture(modRes("block/oak_palisade_top")) .build(); this.addEntry(palisade); + this.spikedPalisade = SimpleEntrySet.builder(WoodType.class, "spiked_palisade", + getModBlock("spiked_oak_palisade"), () -> VanillaWoodTypes.OAK, + w -> ModBlocks.spikedPalisade(getPalisadeForm(w, PalisadeForm.STRIPPED_SPIKED), w.getColor())) + .requiresChildren(LOG) + .addTag(BlockTags.MINEABLE_WITH_AXE, Registries.BLOCK) + .addTag(modRes("spiked_palisades"), Registries.BLOCK, Registries.ITEM) + .setTab(getTab(creativeTabRL)) + .copyParentDrop() + .addRecipe(modRes("stripped_oak_palisade")) + .addTexture(modRes("block/stripped_oak_palisade_core")) + .addTexture(modRes("block/stripped_oak_palisade_side")) + .addTexture(modRes("block/stripped_oak_palisade_top")) + .build(); + this.addEntry(spikedPalisade); + + this.strippedPalisade = SimpleEntrySet.builder(WoodType.class, "stripped_palisade", + getModBlock("stripped_oak_palisade"), () -> VanillaWoodTypes.OAK, + w -> ModBlocks.palisade(getPalisadeForm(w, PalisadeForm.STRIPPED_SPIKED), null, w.getColor())) + .requiresChildren(LOG) + .addTag(BlockTags.MINEABLE_WITH_AXE, Registries.BLOCK) + .addTag(modRes("palisades"), Registries.BLOCK, Registries.ITEM) + .setTab(getTab(creativeTabRL)) + .copyParentDrop() + .addRecipe(modRes("stripped_oak_palisade")) + .addTexture(modRes("block/stripped_oak_palisade_core")) + .addTexture(modRes("block/stripped_oak_palisade_side")) + .addTexture(modRes("block/stripped_oak_palisade_top")) + .build(); + this.addEntry(strippedPalisade); + this.strippedSpikedPalisade = SimpleEntrySet.builder(WoodType.class, "stripped_spiked_palisade", + getModBlock("stripped_spiked_oak_palisade"), () -> VanillaWoodTypes.OAK, + w -> ModBlocks.spikedPalisade(getPalisadeForm(w, PalisadeForm.STRIPPED_SPIKED), w.getColor())) + .requiresChildren(LOG) + .addTag(BlockTags.MINEABLE_WITH_AXE, Registries.BLOCK) + .addTag(modRes("spiked_palisades"), Registries.BLOCK, Registries.ITEM) + .setTab(getTab(creativeTabRL)) + .copyParentDrop() + .addRecipe(modRes("stripped_oak_palisade")) + .addTexture(modRes("block/stripped_oak_palisade_core")) + .addTexture(modRes("block/stripped_oak_palisade_side")) + .addTexture(modRes("block/stripped_oak_palisade_top")) + .build(); + this.addEntry(strippedSpikedPalisade); } From 18ddf26f9af140e7f77b6dec014a26013f816673 Mon Sep 17 00:00:00 2001 From: Partonetrain Date: Mon, 14 Sep 2026 00:44:11 -0500 Subject: [PATCH 4/8] CTRL+ALT+C bunch of stuff --- .../compat/BlockBoxEveryCompatModule.java | 43 ++++++++++++------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java b/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java index d3d7fe95..16070394 100644 --- a/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java +++ b/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java @@ -28,9 +28,20 @@ public class BlockBoxEveryCompatModule extends EveryCompatModule { public final SimpleEntrySet strippedPalisade; public final SimpleEntrySet strippedSpikedPalisade; + //texture constants since they are used more than once + public static final String BLOCK_OAK_PALISADE_CORE = "block/oak_palisade_core"; + public static final String BLOCK_OAK_PALISADE_SIDE = "block/oak_palisade_side"; + public static final String BLOCK_OAK_PALISADE_TOP = "block/oak_palisade_top"; + public static final String BLOCK_STRIPPED_OAK_PALISADE_CORE = "block/stripped_oak_palisade_core"; + public static final String BLOCK_STRIPPED_OAK_PALISADE_SIDE = "block/stripped_oak_palisade_side"; + public static final String BLOCK_STRIPPED_OAK_PALISADE_TOP = "block/stripped_oak_palisade_top"; + public BlockBoxEveryCompatModule(String modId) { super(modId, "bb"); + //"bb" is not currently used by anything else to my knowledge, + //but I think it will cause issues if another mod tries to use the same string for its module? + //but it's not like there's a database of everycompat module short IDs ResourceLocation creativeTabRL = ModCreativeTabs.TAB_BLOCK_BOX.getId(); this.seat = SimpleEntrySet.builder(WoodType.class, "seat", @@ -49,7 +60,7 @@ public BlockBoxEveryCompatModule(String modId) { this.palisade = SimpleEntrySet.builder(WoodType.class, "palisade", getModBlock("oak_palisade"), () -> VanillaWoodTypes.OAK, - w -> w.canBurn() ? + w -> w.canBurn() ? //only affects sounds? no palisade can burn ModBlocks.netherPalisade(getPalisadeForm(w, PalisadeForm.SPIKED), getPalisadeForm(w, PalisadeForm.STRIPPED), w.getColor()) : ModBlocks.palisade(getPalisadeForm(w, PalisadeForm.SPIKED), getPalisadeForm(w, PalisadeForm.STRIPPED), w.getColor()) ) @@ -59,9 +70,9 @@ public BlockBoxEveryCompatModule(String modId) { .setTab(getTab(creativeTabRL)) .copyParentDrop() .addRecipe(modRes("oak_palisade")) - .addTexture(modRes("block/oak_palisade_core")) - .addTexture(modRes("block/oak_palisade_side")) - .addTexture(modRes("block/oak_palisade_top")) + .addTexture(modRes(BLOCK_OAK_PALISADE_CORE)) + .addTexture(modRes(BLOCK_OAK_PALISADE_SIDE)) + .addTexture(modRes(BLOCK_OAK_PALISADE_TOP)) //<-- spike texture in here .build(); this.addEntry(palisade); this.spikedPalisade = SimpleEntrySet.builder(WoodType.class, "spiked_palisade", @@ -72,10 +83,10 @@ public BlockBoxEveryCompatModule(String modId) { .addTag(modRes("spiked_palisades"), Registries.BLOCK, Registries.ITEM) .setTab(getTab(creativeTabRL)) .copyParentDrop() - .addRecipe(modRes("stripped_oak_palisade")) - .addTexture(modRes("block/stripped_oak_palisade_core")) - .addTexture(modRes("block/stripped_oak_palisade_side")) - .addTexture(modRes("block/stripped_oak_palisade_top")) + .addRecipe(modRes("spiked_oak_palisade")) + .addTexture(modRes(BLOCK_OAK_PALISADE_CORE)) + .addTexture(modRes(BLOCK_OAK_PALISADE_SIDE)) + .addTexture(modRes(BLOCK_OAK_PALISADE_TOP)) .build(); this.addEntry(spikedPalisade); @@ -88,9 +99,9 @@ public BlockBoxEveryCompatModule(String modId) { .setTab(getTab(creativeTabRL)) .copyParentDrop() .addRecipe(modRes("stripped_oak_palisade")) - .addTexture(modRes("block/stripped_oak_palisade_core")) - .addTexture(modRes("block/stripped_oak_palisade_side")) - .addTexture(modRes("block/stripped_oak_palisade_top")) + .addTexture(modRes(BLOCK_STRIPPED_OAK_PALISADE_CORE)) + .addTexture(modRes(BLOCK_STRIPPED_OAK_PALISADE_SIDE)) + .addTexture(modRes(BLOCK_STRIPPED_OAK_PALISADE_TOP)) .build(); this.addEntry(strippedPalisade); this.strippedSpikedPalisade = SimpleEntrySet.builder(WoodType.class, "stripped_spiked_palisade", @@ -101,15 +112,15 @@ public BlockBoxEveryCompatModule(String modId) { .addTag(modRes("spiked_palisades"), Registries.BLOCK, Registries.ITEM) .setTab(getTab(creativeTabRL)) .copyParentDrop() - .addRecipe(modRes("stripped_oak_palisade")) - .addTexture(modRes("block/stripped_oak_palisade_core")) - .addTexture(modRes("block/stripped_oak_palisade_side")) - .addTexture(modRes("block/stripped_oak_palisade_top")) + .addRecipe(modRes("stripped_spiked_oak_palisade")) + .addTexture(modRes(BLOCK_STRIPPED_OAK_PALISADE_CORE)) + .addTexture(modRes(BLOCK_STRIPPED_OAK_PALISADE_SIDE)) + .addTexture(modRes(BLOCK_STRIPPED_OAK_PALISADE_TOP)) .build(); this.addEntry(strippedSpikedPalisade); } - + public Supplier getPalisadeForm(WoodType woodType, PalisadeForm palisadeForm){ return () -> switch (palisadeForm){ case NORMAL -> palisade.blocks.get(woodType); From 6323dd4cbef46f753dc451c06771b77df32b141b Mon Sep 17 00:00:00 2001 From: Partonetrain Date: Mon, 14 Sep 2026 13:53:22 -0500 Subject: [PATCH 5/8] mehvad and xel helped --- .../blockbox/compat/BlockBoxEveryCompatModule.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java b/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java index 16070394..e915f701 100644 --- a/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java +++ b/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java @@ -75,7 +75,7 @@ public BlockBoxEveryCompatModule(String modId) { .addTexture(modRes(BLOCK_OAK_PALISADE_TOP)) //<-- spike texture in here .build(); this.addEntry(palisade); - this.spikedPalisade = SimpleEntrySet.builder(WoodType.class, "spiked_palisade", + this.spikedPalisade = SimpleEntrySet.builder(WoodType.class, "palisade", "spiked", getModBlock("spiked_oak_palisade"), () -> VanillaWoodTypes.OAK, w -> ModBlocks.spikedPalisade(getPalisadeForm(w, PalisadeForm.STRIPPED_SPIKED), w.getColor())) .requiresChildren(LOG) @@ -90,7 +90,7 @@ public BlockBoxEveryCompatModule(String modId) { .build(); this.addEntry(spikedPalisade); - this.strippedPalisade = SimpleEntrySet.builder(WoodType.class, "stripped_palisade", + this.strippedPalisade = SimpleEntrySet.builder(WoodType.class, "palisade", "stripped", getModBlock("stripped_oak_palisade"), () -> VanillaWoodTypes.OAK, w -> ModBlocks.palisade(getPalisadeForm(w, PalisadeForm.STRIPPED_SPIKED), null, w.getColor())) .requiresChildren(LOG) @@ -104,7 +104,7 @@ public BlockBoxEveryCompatModule(String modId) { .addTexture(modRes(BLOCK_STRIPPED_OAK_PALISADE_TOP)) .build(); this.addEntry(strippedPalisade); - this.strippedSpikedPalisade = SimpleEntrySet.builder(WoodType.class, "stripped_spiked_palisade", + this.strippedSpikedPalisade = SimpleEntrySet.builder(WoodType.class, "palisade", "stripped_spiked", getModBlock("stripped_spiked_oak_palisade"), () -> VanillaWoodTypes.OAK, w -> ModBlocks.spikedPalisade(getPalisadeForm(w, PalisadeForm.STRIPPED_SPIKED), w.getColor())) .requiresChildren(LOG) From 94d4aa1e3e12b1cdbfccd21df4d41fbc8da160b9 Mon Sep 17 00:00:00 2001 From: Partonetrain Date: Mon, 14 Sep 2026 13:56:38 -0500 Subject: [PATCH 6/8] cleanup unused imports --- .../vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java b/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java index e915f701..9c40296c 100644 --- a/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java +++ b/src/main/java/vectorwing/blockbox/compat/BlockBoxEveryCompatModule.java @@ -8,9 +8,7 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BlockTags; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockBehaviour; -import vectorwing.blockbox.common.block.PalisadeBlock; import vectorwing.blockbox.common.block.SeatBlock; import vectorwing.blockbox.common.registry.ModBlocks; import vectorwing.blockbox.common.registry.ModCreativeTabs; From d7643a1c0c66e54acadde2fc1109de66d1141855 Mon Sep 17 00:00:00 2001 From: Partonetrain Date: Mon, 14 Sep 2026 14:45:56 -0500 Subject: [PATCH 7/8] oops forgot about the lang --- src/main/resources/assets/blockbox/lang/en_us.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/resources/assets/blockbox/lang/en_us.json b/src/main/resources/assets/blockbox/lang/en_us.json index 03300b9c..a9b54c54 100644 --- a/src/main/resources/assets/blockbox/lang/en_us.json +++ b/src/main/resources/assets/blockbox/lang/en_us.json @@ -172,5 +172,11 @@ "blockbox.subtitles.sword.carve": "Sword carves", - "death.attack.blockbox.palisade": "%1$s was skewered by a spiked palisade" + "death.attack.blockbox.palisade": "%1$s was skewered by a spiked palisade", + + "block_type.blockbox.seat": "%s Seat", + "block_type.blockbox.palisade": "%s Palisade", + "block_type.blockbox.spiked_palisade": "Spiked %s Palisade", + "block_type.blockbox.stripped_palisade": "Stripped %s Palisade", + "block_type.blockbox.stripped_spiked_palisade": "Stripped Spiked Palisade" } From ea2fd10e6d6dc84bc89efbec258f4fa17630536b Mon Sep 17 00:00:00 2001 From: Partonetrain Date: Tue, 15 Sep 2026 18:12:09 -0500 Subject: [PATCH 8/8] Update BlockBox.java --- src/main/java/vectorwing/blockbox/BlockBox.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/vectorwing/blockbox/BlockBox.java b/src/main/java/vectorwing/blockbox/BlockBox.java index c3cd5cd3..b9109b67 100644 --- a/src/main/java/vectorwing/blockbox/BlockBox.java +++ b/src/main/java/vectorwing/blockbox/BlockBox.java @@ -5,6 +5,7 @@ import net.mehvahdjukaar.every_compat.api.EveryCompatAPI; import net.neoforged.bus.api.IEventBus; import net.neoforged.fml.ModContainer; +import net.neoforged.fml.ModList; import net.neoforged.fml.common.Mod; import net.neoforged.fml.config.ModConfig; import net.neoforged.fml.loading.LoadingModList; @@ -28,7 +29,7 @@ public BlockBox(IEventBus modEventBus, ModContainer modContainer) { ModParticleTypes.PARTICLE_TYPES.register(modEventBus); ModCreativeTabs.CREATIVE_MODE_TABS.register(modEventBus); - if(LoadingModList.get().getModFileById("everycomp") != null){ //there is probably a better way to check? + if(ModList.get().isLoaded("everycomp")){ //there is probably a better way to check? BlockBox.LOGGER.info("EveryCompat detected. Starting compat module"); EveryCompatAPI.registerModule(new BlockBoxEveryCompatModule(BlockBox.MODID)); //EveryCompat.addOptionalModule(BlockBox.MODID, () -> BlockBoxEveryCompatModule.class); //everycompat internal version?