Wooden complex material migration

This commit is contained in:
paulevsGitch 2021-07-23 18:36:32 +03:00
parent e5fde106fc
commit a151132478
18 changed files with 134 additions and 385 deletions

2
.gitignore vendored
View file

@ -28,6 +28,6 @@ bin/
run/
output/
*.log
*.getBlock("log")
Convert.class
ModelPart.class

View file

@ -0,0 +1,45 @@
package ru.betterend.blocks.complex;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.MaterialColor;
import ru.bclib.complexmaterials.WoodenMaterial;
import ru.betterend.BetterEnd;
import ru.betterend.config.Configs;
import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndItems;
public class EndWoodenMaterial extends WoodenMaterial {
private Block bark;
private Block log;
public EndWoodenMaterial(String name, MaterialColor woodColor, MaterialColor planksColor) {
super(BetterEnd.MOD_ID, name, woodColor, planksColor);
}
public EndWoodenMaterial init() {
return (EndWoodenMaterial) super.init(EndBlocks.getBlockRegistry(), EndItems.getItemRegistry(), Configs.RECIPE_CONFIG);
}
public boolean isTreeLog(Block block) {
return block == getLog() || block == getBark();
}
public boolean isTreeLog(BlockState state) {
return isTreeLog(state.getBlock());
}
public Block getLog() {
if (log == null) {
log = getBlock("log");
}
return log;
}
public Block getBark() {
if (bark == null) {
bark = getBlock("bark");
}
return bark;
}
}

View file

@ -1,296 +0,0 @@
package ru.betterend.blocks.complex;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.fabricmc.fabric.api.registry.FlammableBlockRegistry;
import net.minecraft.tags.BlockTags;
import net.minecraft.tags.ItemTags;
import net.minecraft.tags.Tag;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.MaterialColor;
import ru.bclib.api.TagAPI;
import ru.bclib.blocks.BaseBarkBlock;
import ru.bclib.blocks.BaseBarrelBlock;
import ru.bclib.blocks.BaseBlock;
import ru.bclib.blocks.BaseBookshelfBlock;
import ru.bclib.blocks.BaseChestBlock;
import ru.bclib.blocks.BaseComposterBlock;
import ru.bclib.blocks.BaseCraftingTableBlock;
import ru.bclib.blocks.BaseDoorBlock;
import ru.bclib.blocks.BaseFenceBlock;
import ru.bclib.blocks.BaseGateBlock;
import ru.bclib.blocks.BaseLadderBlock;
import ru.bclib.blocks.BaseRotatedPillarBlock;
import ru.bclib.blocks.BaseSignBlock;
import ru.bclib.blocks.BaseSlabBlock;
import ru.bclib.blocks.BaseStairsBlock;
import ru.bclib.blocks.BaseStripableLogBlock;
import ru.bclib.blocks.BaseTrapdoorBlock;
import ru.bclib.blocks.BaseWoodenButtonBlock;
import ru.bclib.blocks.StripableBarkBlock;
import ru.bclib.blocks.WoodenPressurePlateBlock;
import ru.bclib.recipes.GridRecipe;
import ru.betterend.BetterEnd;
import ru.betterend.config.Configs;
import ru.betterend.registry.EndBlocks;
public class WoodenMaterial {
public final Block log;
public final Block bark;
public final Block log_stripped;
public final Block bark_stripped;
public final Block planks;
public final Block stairs;
public final Block slab;
public final Block fence;
public final Block gate;
public final Block button;
public final Block pressurePlate;
public final Block trapdoor;
public final Block door;
public final Block craftingTable;
public final Block ladder;
public final Block sign;
public final Block chest;
public final Block barrel;
public final Block shelf;
public final Block composter;
public final Tag.Named<Block> logBlockTag;
public final Tag.Named<Item> logItemTag;
public WoodenMaterial(String name, MaterialColor woodColor, MaterialColor planksColor) {
FabricBlockSettings materialPlanks = FabricBlockSettings.copyOf(Blocks.OAK_PLANKS).materialColor(planksColor);
log_stripped = EndBlocks.registerBlock(name + "_stripped_log", new BaseRotatedPillarBlock(materialPlanks));
bark_stripped = EndBlocks.registerBlock(name + "_stripped_bark", new BaseBarkBlock(materialPlanks));
log = EndBlocks.registerBlock(name + "_log", new BaseStripableLogBlock(woodColor, log_stripped));
bark = EndBlocks.registerBlock(name + "_bark", new StripableBarkBlock(woodColor, bark_stripped));
planks = EndBlocks.registerBlock(name + "_planks", new BaseBlock(materialPlanks));
stairs = EndBlocks.registerBlock(name + "_stairs", new BaseStairsBlock(planks));
slab = EndBlocks.registerBlock(name + "_slab", new BaseSlabBlock(planks));
fence = EndBlocks.registerBlock(name + "_fence", new BaseFenceBlock(planks));
gate = EndBlocks.registerBlock(name + "_gate", new BaseGateBlock(planks));
button = EndBlocks.registerBlock(name + "_button", new BaseWoodenButtonBlock(planks));
pressurePlate = EndBlocks.registerBlock(name + "_plate", new WoodenPressurePlateBlock(planks));
trapdoor = EndBlocks.registerBlock(name + "_trapdoor", new BaseTrapdoorBlock(planks));
door = EndBlocks.registerBlock(name + "_door", new BaseDoorBlock(planks));
craftingTable = EndBlocks.registerBlock(name + "_crafting_table", new BaseCraftingTableBlock(planks));
ladder = EndBlocks.registerBlock(name + "_ladder", new BaseLadderBlock(planks));
sign = EndBlocks.registerBlock(name + "_sign", new BaseSignBlock(planks));
chest = EndBlocks.registerBlock(name + "_chest", new BaseChestBlock(planks));
barrel = EndBlocks.registerBlock(name + "_barrel", new BaseBarrelBlock(planks));
shelf = EndBlocks.registerBlock(name + "_bookshelf", new BaseBookshelfBlock(planks));
composter = EndBlocks.registerBlock(name + "_composter", new BaseComposterBlock(planks));
// Recipes //
GridRecipe.make(BetterEnd.MOD_ID, name + "_planks", planks)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setList("#")
.addMaterial('#', log, bark, log_stripped, bark_stripped)
.setGroup("end_planks")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_stairs", stairs)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("# ", "## ", "###")
.addMaterial('#', planks)
.setGroup("end_planks_stairs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_slab", slab)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(6)
.setShape("###")
.addMaterial('#', planks)
.setGroup("end_planks_slabs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_fence", fence)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(3)
.setShape("#I#", "#I#")
.addMaterial('#', planks)
.addMaterial('I', Items.STICK)
.setGroup("end_planks_fences")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_gate", gate)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("I#I", "I#I")
.addMaterial('#', planks)
.addMaterial('I', Items.STICK)
.setGroup("end_planks_gates")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_button", button)
.checkConfig(Configs.RECIPE_CONFIG)
.setList("#")
.addMaterial('#', planks)
.setGroup("end_planks_buttons")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_pressure_plate", pressurePlate)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("##")
.addMaterial('#', planks)
.setGroup("end_planks_plates")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_trapdoor", trapdoor)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(2)
.setShape("###", "###")
.addMaterial('#', planks)
.setGroup("end_trapdoors")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_door", door)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(3)
.setShape("##", "##", "##")
.addMaterial('#', planks)
.setGroup("end_doors")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_crafting_table", craftingTable)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("##", "##")
.addMaterial('#', planks)
.setGroup("end_tables")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_ladder", ladder)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(3)
.setShape("I I", "I#I", "I I")
.addMaterial('#', planks)
.addMaterial('I', Items.STICK)
.setGroup("end_ladders")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_sign", sign)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(3)
.setShape("###", "###", " I ")
.addMaterial('#', planks)
.addMaterial('I', Items.STICK)
.setGroup("end_signs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_chest", chest)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("###", "# #", "###")
.addMaterial('#', planks)
.setGroup("end_chests")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_barrel", barrel)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("#S#", "# #", "#S#")
.addMaterial('#', planks)
.addMaterial('S', slab)
.setGroup("end_barrels")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_bookshelf", shelf)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("###", "PPP", "###")
.addMaterial('#', planks)
.addMaterial('P', Items.BOOK)
.setGroup("end_BLOCK_BOOKSHELVES")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_bark", bark)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("##", "##")
.addMaterial('#', log)
.setOutputCount(3)
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_log", log)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("##", "##")
.addMaterial('#', bark)
.setOutputCount(3)
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_composter", composter)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("# #", "# #", "###")
.addMaterial('#', slab)
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_shulker", Items.SHULKER_BOX)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("S", "#", "S")
.addMaterial('S', Items.SHULKER_SHELL)
.addMaterial('#', chest)
.build();
// Item Tags //
TagAPI.addTag(ItemTags.PLANKS, planks);
TagAPI.addTag(ItemTags.WOODEN_PRESSURE_PLATES, pressurePlate);
TagAPI.addTag(ItemTags.LOGS, log, bark, log_stripped, bark_stripped);
TagAPI.addTag(ItemTags.LOGS_THAT_BURN, log, bark, log_stripped, bark_stripped);
TagAPI.addTags(button, ItemTags.WOODEN_BUTTONS, ItemTags.BUTTONS);
TagAPI.addTags(door, ItemTags.WOODEN_DOORS, ItemTags.DOORS);
TagAPI.addTags(fence, ItemTags.WOODEN_FENCES, ItemTags.FENCES);
TagAPI.addTags(slab, ItemTags.WOODEN_SLABS, ItemTags.SLABS);
TagAPI.addTags(stairs, ItemTags.WOODEN_STAIRS, ItemTags.STAIRS);
TagAPI.addTags(trapdoor, ItemTags.WOODEN_TRAPDOORS, ItemTags.TRAPDOORS);
TagAPI.addTag(TagAPI.ITEM_CHEST, chest);
TagAPI.addTag(TagAPI.ITEM_WORKBENCHES, craftingTable);
// Block Tags //
TagAPI.addTag(BlockTags.PLANKS, planks);
TagAPI.addTag(BlockTags.CLIMBABLE, ladder);
TagAPI.addTag(BlockTags.LOGS, log, bark, log_stripped, bark_stripped);
TagAPI.addTag(BlockTags.LOGS_THAT_BURN, log, bark, log_stripped, bark_stripped);
TagAPI.addTags(button, BlockTags.WOODEN_BUTTONS, BlockTags.BUTTONS);
TagAPI.addTags(door, BlockTags.WOODEN_DOORS, BlockTags.DOORS);
TagAPI.addTags(fence, BlockTags.WOODEN_FENCES, BlockTags.FENCES);
TagAPI.addTags(slab, BlockTags.WOODEN_SLABS, BlockTags.SLABS);
TagAPI.addTags(stairs, BlockTags.WOODEN_STAIRS, BlockTags.STAIRS);
TagAPI.addTags(trapdoor, BlockTags.WOODEN_TRAPDOORS, BlockTags.TRAPDOORS);
TagAPI.addTag(TagAPI.BLOCK_BOOKSHELVES, shelf);
TagAPI.addTag(TagAPI.BLOCK_CHEST, chest);
TagAPI.addTag(TagAPI.BLOCK_WORKBENCHES, craftingTable);
logBlockTag = TagAPI.makeBlockTag(BetterEnd.MOD_ID, name + "_logs");
logItemTag = TagAPI.makeItemTag(BetterEnd.MOD_ID, name + "_logs");
TagAPI.addTag(logBlockTag, log_stripped, bark_stripped, log, bark);
TagAPI.addTag(logItemTag, log_stripped, bark_stripped, log, bark);
FlammableBlockRegistry.getDefaultInstance().add(log, 5, 5);
FlammableBlockRegistry.getDefaultInstance().add(bark, 5, 5);
FlammableBlockRegistry.getDefaultInstance().add(log_stripped, 5, 5);
FlammableBlockRegistry.getDefaultInstance().add(bark_stripped, 5, 5);
FlammableBlockRegistry.getDefaultInstance().add(planks, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(stairs, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(slab, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(fence, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(gate, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(button, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(pressurePlate, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(trapdoor, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(door, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(craftingTable, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(ladder, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(sign, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(chest, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(barrel, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(shelf, 5, 20);
FlammableBlockRegistry.getDefaultInstance().add(composter, 5, 20);
}
public boolean isTreeLog(Block block) {
return block == log || block == bark;
}
public boolean isTreeLog(BlockState state) {
return isTreeLog(state.getBlock());
}
}

View file

@ -118,7 +118,7 @@ public class CraftingRecipes {
.setShape("##", "##")
.addMaterial('#', EndItems.CRYSTAL_SHARDS)
.build();
GridRecipe.make(BetterEnd.MOD_ID, "lotus_block", EndBlocks.END_LOTUS.log)
GridRecipe.make(BetterEnd.MOD_ID, "lotus_block", EndBlocks.END_LOTUS.getLog())
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("##", "##")
.addMaterial('#', EndBlocks.END_LOTUS_STEM)
@ -380,7 +380,7 @@ public class CraftingRecipes {
GridRecipe.make(BetterEnd.MOD_ID, "silk_moth_hive", EndBlocks.SILK_MOTH_HIVE)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("#L#", "LML", "#L#")
.addMaterial('#', EndBlocks.TENANEA.planks)
.addMaterial('#', EndBlocks.TENANEA.getBlock("planks"))
.addMaterial('L', EndBlocks.TENANEA_LEAVES)
.addMaterial('M', EndItems.SILK_MOTH_MATRIX)
.build();

View file

@ -21,7 +21,7 @@ import ru.bclib.blocks.BaseVineBlock;
import ru.bclib.blocks.SimpleLeavesBlock;
import ru.bclib.blocks.StalactiteBlock;
import ru.bclib.registry.BaseBlockEntities;
import ru.bclib.registry.BlocksRegistry;
import ru.bclib.registry.BlockRegistry;
import ru.betterend.BetterEnd;
import ru.betterend.blocks.AeterniumAnvil;
import ru.betterend.blocks.AeterniumBlock;
@ -138,7 +138,7 @@ import ru.betterend.blocks.complex.ColoredMaterial;
import ru.betterend.blocks.complex.CrystalSubblocksMaterial;
import ru.betterend.blocks.complex.MetalMaterial;
import ru.betterend.blocks.complex.StoneMaterial;
import ru.betterend.blocks.complex.WoodenMaterial;
import ru.betterend.blocks.complex.EndWoodenMaterial;
import ru.betterend.config.Configs;
import ru.betterend.item.material.EndArmorMaterial;
import ru.betterend.item.material.EndToolMaterial;
@ -147,7 +147,7 @@ import ru.betterend.tab.CreativeTabs;
import java.util.List;
import java.util.stream.Collectors;
public class EndBlocks extends BlocksRegistry {
public class EndBlocks extends BlockRegistry {
// Terrain //
public static final Block ENDSTONE_DUST = registerBlock("endstone_dust", new EndstoneDustBlock());
public static final Block END_MYCELIUM = registerBlock(
@ -289,11 +289,11 @@ public class EndBlocks extends BlocksRegistry {
"mossy_glowshroom_fur",
new FurBlock(MOSSY_GLOWSHROOM_SAPLING, 15, 16, true)
);
public static final WoodenMaterial MOSSY_GLOWSHROOM = new WoodenMaterial(
public static final EndWoodenMaterial MOSSY_GLOWSHROOM = new EndWoodenMaterial(
"mossy_glowshroom",
MaterialColor.COLOR_GRAY,
MaterialColor.WOOD
);
).init();
public static final Block PYTHADENDRON_SAPLING = registerBlock(
"pythadendron_sapling",
@ -303,43 +303,43 @@ public class EndBlocks extends BlocksRegistry {
"pythadendron_leaves",
new PottableLeavesBlock(PYTHADENDRON_SAPLING, MaterialColor.COLOR_MAGENTA)
);
public static final WoodenMaterial PYTHADENDRON = new WoodenMaterial(
public static final EndWoodenMaterial PYTHADENDRON = new EndWoodenMaterial(
"pythadendron",
MaterialColor.COLOR_MAGENTA,
MaterialColor.COLOR_PURPLE
);
).init();
public static final Block END_LOTUS_SEED = registerBlock("end_lotus_seed", new EndLotusSeedBlock());
public static final Block END_LOTUS_STEM = registerBlock("end_lotus_stem", new EndLotusStemBlock());
public static final Block END_LOTUS_LEAF = registerEndBlockOnly("end_lotus_leaf", new EndLotusLeafBlock());
public static final Block END_LOTUS_FLOWER = registerEndBlockOnly("end_lotus_flower", new EndLotusFlowerBlock());
public static final WoodenMaterial END_LOTUS = new WoodenMaterial(
public static final EndWoodenMaterial END_LOTUS = new EndWoodenMaterial(
"end_lotus",
MaterialColor.COLOR_LIGHT_BLUE,
MaterialColor.COLOR_CYAN
);
).init();
public static final Block LACUGROVE_SAPLING = registerBlock("lacugrove_sapling", new LacugroveSaplingBlock());
public static final Block LACUGROVE_LEAVES = registerBlock(
"lacugrove_leaves",
new PottableLeavesBlock(LACUGROVE_SAPLING, MaterialColor.COLOR_CYAN)
);
public static final WoodenMaterial LACUGROVE = new WoodenMaterial(
public static final EndWoodenMaterial LACUGROVE = new EndWoodenMaterial(
"lacugrove",
MaterialColor.COLOR_BROWN,
MaterialColor.COLOR_YELLOW
);
).init();
public static final Block DRAGON_TREE_SAPLING = registerBlock("dragon_tree_sapling", new DragonTreeSaplingBlock());
public static final Block DRAGON_TREE_LEAVES = registerBlock(
"dragon_tree_leaves",
new PottableLeavesBlock(DRAGON_TREE_SAPLING, MaterialColor.COLOR_MAGENTA)
);
public static final WoodenMaterial DRAGON_TREE = new WoodenMaterial(
public static final EndWoodenMaterial DRAGON_TREE = new EndWoodenMaterial(
"dragon_tree",
MaterialColor.COLOR_BLACK,
MaterialColor.COLOR_MAGENTA
);
).init();
public static final Block TENANEA_SAPLING = registerBlock("tenanea_sapling", new TenaneaSaplingBlock());
public static final Block TENANEA_LEAVES = registerBlock(
@ -351,19 +351,19 @@ public class EndBlocks extends BlocksRegistry {
"tenanea_outer_leaves",
new FurBlock(TENANEA_SAPLING, 32)
);
public static final WoodenMaterial TENANEA = new WoodenMaterial(
public static final EndWoodenMaterial TENANEA = new EndWoodenMaterial(
"tenanea",
MaterialColor.COLOR_BROWN,
MaterialColor.COLOR_PINK
);
).init();
public static final Block HELIX_TREE_SAPLING = registerBlock("helix_tree_sapling", new HelixTreeSaplingBlock());
public static final Block HELIX_TREE_LEAVES = registerBlock("helix_tree_leaves", new HelixTreeLeavesBlock());
public static final WoodenMaterial HELIX_TREE = new WoodenMaterial(
public static final EndWoodenMaterial HELIX_TREE = new EndWoodenMaterial(
"helix_tree",
MaterialColor.COLOR_GRAY,
MaterialColor.COLOR_ORANGE
);
).init();
public static final Block UMBRELLA_TREE_SAPLING = registerBlock(
"umbrella_tree_sapling",
@ -381,21 +381,21 @@ public class EndBlocks extends BlocksRegistry {
"umbrella_tree_cluster_empty",
new UmbrellaTreeClusterEmptyBlock()
);
public static final WoodenMaterial UMBRELLA_TREE = new WoodenMaterial(
public static final EndWoodenMaterial UMBRELLA_TREE = new EndWoodenMaterial(
"umbrella_tree",
MaterialColor.COLOR_BLUE,
MaterialColor.COLOR_GREEN
);
).init();
public static final Block JELLYSHROOM_CAP_PURPLE = registerBlock(
"jellyshroom_cap_purple",
new JellyshroomCapBlock(217, 142, 255, 164, 0, 255)
);
public static final WoodenMaterial JELLYSHROOM = new WoodenMaterial(
public static final EndWoodenMaterial JELLYSHROOM = new EndWoodenMaterial(
"jellyshroom",
MaterialColor.COLOR_PURPLE,
MaterialColor.COLOR_LIGHT_BLUE
);
).init();
public static final Block LUCERNIA_SAPLING = registerBlock("lucernia_sapling", new LucerniaSaplingBlock());
public static final Block LUCERNIA_LEAVES = registerBlock(
@ -406,11 +406,11 @@ public class EndBlocks extends BlocksRegistry {
"lucernia_outer_leaves",
new FurBlock(LUCERNIA_SAPLING, 32)
);
public static final WoodenMaterial LUCERNIA = new WoodenMaterial(
public static final EndWoodenMaterial LUCERNIA = new EndWoodenMaterial(
"lucernia",
MaterialColor.COLOR_ORANGE,
MaterialColor.COLOR_ORANGE
);
).init();
// Small Plants //
public static final Block UMBRELLA_MOSS = registerBlock("umbrella_moss", new UmbrellaMossBlock());
@ -690,7 +690,7 @@ public class EndBlocks extends BlocksRegistry {
// Technical
public static final Block END_PORTAL_BLOCK = registerEndBlockOnly("end_portal_block", new EndPortalBlock());
private static BlocksRegistry BLOCKS_REGISTRY;
private static BlockRegistry BlockRegistry;
private EndBlocks(CreativeModeTab creativeTab) {
super(creativeTab);
@ -728,7 +728,7 @@ public class EndBlocks extends BlocksRegistry {
}
public static Block registerEndBlockOnly(String name, Block block) {
return getBlockRegistry().registerBlockOnly(name, block);
return getBlockRegistry().registerBlockOnly(BetterEnd.makeID(name), block);
}
public static FabricItemSettings makeBlockItemSettings() {
@ -741,10 +741,10 @@ public class EndBlocks extends BlocksRegistry {
}
@NotNull
private static BlocksRegistry getBlockRegistry() {
if (BLOCKS_REGISTRY == null) {
BLOCKS_REGISTRY = new EndBlocks(CreativeTabs.TAB_BLOCKS);
public static BlockRegistry getBlockRegistry() {
if (BlockRegistry == null) {
BlockRegistry = new EndBlocks(CreativeTabs.TAB_BLOCKS);
}
return BLOCKS_REGISTRY;
return BlockRegistry;
}
}

View file

@ -112,12 +112,12 @@ public class EndFeatures {
// Bushes //
public static final BCLFeature PYTHADENDRON_BUSH = redisterVegetation(
"pythadendron_bush",
new BushFeature(EndBlocks.PYTHADENDRON_LEAVES, EndBlocks.PYTHADENDRON.bark),
new BushFeature(EndBlocks.PYTHADENDRON_LEAVES, EndBlocks.PYTHADENDRON.getBark()),
4
);
public static final BCLFeature DRAGON_TREE_BUSH = redisterVegetation(
"dragon_tree_bush",
new BushFeature(EndBlocks.DRAGON_TREE_LEAVES, EndBlocks.DRAGON_TREE.bark),
new BushFeature(EndBlocks.DRAGON_TREE_LEAVES, EndBlocks.DRAGON_TREE.getBark()),
15
);
public static final BCLFeature TENANEA_BUSH = redisterVegetation("tenanea_bush", new TenaneaBushFeature(), 10);
@ -129,12 +129,12 @@ public class EndFeatures {
);
public static final BCLFeature LUCERNIA_BUSH = redisterVegetation(
"lucernia_bush",
new BushWithOuterFeature(EndBlocks.LUCERNIA_LEAVES, EndBlocks.LUCERNIA_OUTER_LEAVES, EndBlocks.LUCERNIA.bark),
new BushWithOuterFeature(EndBlocks.LUCERNIA_LEAVES, EndBlocks.LUCERNIA_OUTER_LEAVES, EndBlocks.LUCERNIA.getBark()),
10
);
public static final BCLFeature LUCERNIA_BUSH_RARE = redisterVegetation(
"lucernia_bush_rare",
new BushWithOuterFeature(EndBlocks.LUCERNIA_LEAVES, EndBlocks.LUCERNIA_OUTER_LEAVES, EndBlocks.LUCERNIA.bark),
new BushWithOuterFeature(EndBlocks.LUCERNIA_LEAVES, EndBlocks.LUCERNIA_OUTER_LEAVES, EndBlocks.LUCERNIA.getBark()),
1
);
public static final BCLFeature NEON_CACTUS = redisterVegetation("neon_cactus", new NeonCactusFeature(), 2);

View file

@ -22,7 +22,7 @@ import ru.bclib.items.tool.BaseAxeItem;
import ru.bclib.items.tool.BaseHoeItem;
import ru.bclib.items.tool.BaseShovelItem;
import ru.bclib.items.tool.BaseSwordItem;
import ru.bclib.registry.ItemsRegistry;
import ru.bclib.registry.ItemRegistry;
import ru.betterend.BetterEnd;
import ru.betterend.config.Configs;
import ru.betterend.item.ArmoredElytra;
@ -42,7 +42,7 @@ import ru.betterend.tab.CreativeTabs;
import java.util.List;
public class EndItems extends ItemsRegistry {
public class EndItems extends ItemRegistry {
// Materials //
public final static Item ENDER_DUST = registerEndItem("ender_dust");
public final static Item ENDER_SHARD = registerEndItem("ender_shard");
@ -202,7 +202,7 @@ public class EndItems extends ItemsRegistry {
// Drinks //
public final static Item UMBRELLA_CLUSTER_JUICE = registerEndDrink("umbrella_cluster_juice", 5, 0.7F);
private static ItemsRegistry itemRegistry;
private static ItemRegistry itemRegistry;
protected EndItems(CreativeModeTab creativeTab) {
super(creativeTab);
@ -284,7 +284,7 @@ public class EndItems extends ItemsRegistry {
}
@NotNull
private static ItemsRegistry getItemRegistry() {
public static ItemRegistry getItemRegistry() {
if (itemRegistry == null) {
itemRegistry = new EndItems(CreativeTabs.TAB_ITEMS);
}

View file

@ -87,7 +87,7 @@ public class TenaneaBushFeature extends DefaultFeature {
return info.getState();
});
sphere.fillRecursive(world, pos);
BlockState stem = EndBlocks.TENANEA.bark.defaultBlockState();
BlockState stem = EndBlocks.TENANEA.getBark().defaultBlockState();
BlocksHelper.setWithoutUpdate(world, pos, stem);
for (Direction d : Direction.values()) {
BlockPos p = pos.relative(d);

View file

@ -66,7 +66,7 @@ public class DragonTreeFeature extends DefaultFeature {
radius = MHelper.randRange(1.2F, 2.3F, random);
SDF function = SplineHelper.buildSDF(spline, radius, 1.2F, (bpos) -> {
return EndBlocks.DRAGON_TREE.bark.defaultBlockState();
return EndBlocks.DRAGON_TREE.getBark().defaultBlockState();
});
function.setReplaceFunction(REPLACE);
@ -86,17 +86,17 @@ public class DragonTreeFeature extends DefaultFeature {
List<Vector3f> branch = SplineHelper.copySpline(BRANCH);
SplineHelper.rotateSpline(branch, angle);
SplineHelper.scale(branch, scale);
SplineHelper.fillSpline(branch, world, EndBlocks.DRAGON_TREE.bark.defaultBlockState(), pos, REPLACE);
SplineHelper.fillSpline(branch, world, EndBlocks.DRAGON_TREE.getBark().defaultBlockState(), pos, REPLACE);
branch = SplineHelper.copySpline(SIDE1);
SplineHelper.rotateSpline(branch, angle);
SplineHelper.scale(branch, scale);
SplineHelper.fillSpline(branch, world, EndBlocks.DRAGON_TREE.bark.defaultBlockState(), pos, REPLACE);
SplineHelper.fillSpline(branch, world, EndBlocks.DRAGON_TREE.getBark().defaultBlockState(), pos, REPLACE);
branch = SplineHelper.copySpline(SIDE2);
SplineHelper.rotateSpline(branch, angle);
SplineHelper.scale(branch, scale);
SplineHelper.fillSpline(branch, world, EndBlocks.DRAGON_TREE.bark.defaultBlockState(), pos, REPLACE);
SplineHelper.fillSpline(branch, world, EndBlocks.DRAGON_TREE.getBark().defaultBlockState(), pos, REPLACE);
}
leavesBall(world, pos.above(offset), radius * 1.15F + 2, random, noise);
}
@ -112,7 +112,7 @@ public class DragonTreeFeature extends DefaultFeature {
SplineHelper.scale(branch, scale);
Vector3f last = branch.get(branch.size() - 1);
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) {
SplineHelper.fillSpline(branch, world, EndBlocks.DRAGON_TREE.bark.defaultBlockState(), pos, REPLACE);
SplineHelper.fillSpline(branch, world, EndBlocks.DRAGON_TREE.getBark().defaultBlockState(), pos, REPLACE);
}
}
}
@ -140,7 +140,7 @@ public class DragonTreeFeature extends DefaultFeature {
return info.getState();
}
}
info.setState(EndBlocks.DRAGON_TREE.bark.defaultBlockState());
info.setState(EndBlocks.DRAGON_TREE.getBark().defaultBlockState());
for (int x = -6; x < 7; x++) {
int ax = Math.abs(x);
mut.setX(x + info.getPos().getX());
@ -185,12 +185,12 @@ public class DragonTreeFeature extends DefaultFeature {
}
}
if (place) {
BlocksHelper.setWithoutUpdate(world, p, EndBlocks.DRAGON_TREE.bark);
BlocksHelper.setWithoutUpdate(world, p, EndBlocks.DRAGON_TREE.getBark());
}
}
}
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.DRAGON_TREE.bark);
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.DRAGON_TREE.getBark());
}
static {
@ -213,7 +213,7 @@ public class DragonTreeFeature extends DefaultFeature {
POST = (info) -> {
if (EndBlocks.DRAGON_TREE.isTreeLog(info.getStateUp()) && EndBlocks.DRAGON_TREE.isTreeLog(info.getStateDown())) {
return EndBlocks.DRAGON_TREE.log.defaultBlockState();
return EndBlocks.DRAGON_TREE.getLog().defaultBlockState();
}
return info.getState();
};

View file

@ -54,7 +54,7 @@ public class HelixTreeFeature extends DefaultFeature {
spline.add(new Vector3f(dx, i * 2, dz));
}
SDF sdf = SplineHelper.buildSDF(spline, 1.7F, 0.5F, (p) -> {
return EndBlocks.HELIX_TREE.bark.defaultBlockState();
return EndBlocks.HELIX_TREE.getBark().defaultBlockState();
});
SDF rotated = new SDFRotation().setRotation(Vector3f.YP, (float) Math.PI).setSource(sdf);
sdf = new SDFUnion().setSourceA(rotated).setSourceB(sdf);
@ -62,7 +62,7 @@ public class HelixTreeFeature extends DefaultFeature {
Vector3f lastPoint = spline.get(spline.size() - 1);
List<Vector3f> spline2 = SplineHelper.makeSpline(0, 0, 0, 0, 20, 0, 5);
SDF stem = SplineHelper.buildSDF(spline2, 1.0F, 0.5F, (p) -> {
return EndBlocks.HELIX_TREE.bark.defaultBlockState();
return EndBlocks.HELIX_TREE.getBark().defaultBlockState();
});
stem = new SDFTranslate().setTranslate(lastPoint.x(), lastPoint.y(), lastPoint.z()).setSource(stem);
sdf = new SDFSmoothUnion().setRadius(3).setSourceA(sdf).setSourceB(stem);
@ -73,11 +73,11 @@ public class HelixTreeFeature extends DefaultFeature {
float dy2 = 100 * scale;
sdf.addPostProcess(POST).fillArea(world, pos, new AABB(pos.offset(-dx, dy1, -dx), pos.offset(dx, dy2, dx)));
SplineHelper.scale(spline, scale);
SplineHelper.fillSplineForce(spline, world, EndBlocks.HELIX_TREE.bark.defaultBlockState(), pos, (state) -> {
SplineHelper.fillSplineForce(spline, world, EndBlocks.HELIX_TREE.getBark().defaultBlockState(), pos, (state) -> {
return state.getMaterial().isReplaceable();
});
SplineHelper.rotateSpline(spline, (float) Math.PI);
SplineHelper.fillSplineForce(spline, world, EndBlocks.HELIX_TREE.bark.defaultBlockState(), pos, (state) -> {
SplineHelper.fillSplineForce(spline, world, EndBlocks.HELIX_TREE.getBark().defaultBlockState(), pos, (state) -> {
return state.getMaterial().isReplaceable();
});
SplineHelper.scale(spline2, scale);
@ -85,7 +85,7 @@ public class HelixTreeFeature extends DefaultFeature {
SplineHelper.fillSplineForce(
spline2,
world,
EndBlocks.HELIX_TREE.log.defaultBlockState(),
EndBlocks.HELIX_TREE.getLog().defaultBlockState(),
leafStart,
(state) -> {
return state.getMaterial().isReplaceable();
@ -189,7 +189,7 @@ public class HelixTreeFeature extends DefaultFeature {
static {
POST = (info) -> {
if (EndBlocks.HELIX_TREE.isTreeLog(info.getStateUp()) && EndBlocks.HELIX_TREE.isTreeLog(info.getStateDown())) {
return EndBlocks.HELIX_TREE.log.defaultBlockState();
return EndBlocks.HELIX_TREE.getLog().defaultBlockState();
}
return info.getState();
};

View file

@ -38,7 +38,7 @@ public class JellyshroomFeature extends DefaultFeature {
final WorldGenLevel world = featureConfig.level();
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
BlockState bark = EndBlocks.JELLYSHROOM.bark.defaultBlockState();
BlockState bark = EndBlocks.JELLYSHROOM.getBark().defaultBlockState();
BlockState membrane = EndBlocks.JELLYSHROOM_CAP_PURPLE.defaultBlockState();
int height = MHelper.randRange(5, 8, random);
@ -61,7 +61,7 @@ public class JellyshroomFeature extends DefaultFeature {
sdf.setReplaceFunction(REPLACE).addPostProcess((info) -> {
if (EndBlocks.JELLYSHROOM.isTreeLog(info.getState())) {
if (EndBlocks.JELLYSHROOM.isTreeLog(info.getStateUp()) && EndBlocks.JELLYSHROOM.isTreeLog(info.getStateDown())) {
return EndBlocks.JELLYSHROOM.log.defaultBlockState();
return EndBlocks.JELLYSHROOM.getLog().defaultBlockState();
}
}
else if (info.getState().is(EndBlocks.JELLYSHROOM_CAP_PURPLE)) {

View file

@ -57,7 +57,7 @@ public class LacugroveFeature extends DefaultFeature {
radius = MHelper.randRange(1.2F, 1.8F, random);
SDF function = SplineHelper.buildSDF(spline, radius, 0.7F, (bpos) -> {
return EndBlocks.LACUGROVE.bark.defaultBlockState();
return EndBlocks.LACUGROVE.getBark().defaultBlockState();
});
function.setReplaceFunction(REPLACE);
@ -65,7 +65,7 @@ public class LacugroveFeature extends DefaultFeature {
function.fillRecursive(world, pos);
spline = spline.subList(4, 6);
SplineHelper.fillSpline(spline, world, EndBlocks.LACUGROVE.bark.defaultBlockState(), pos, REPLACE);
SplineHelper.fillSpline(spline, world, EndBlocks.LACUGROVE.getBark().defaultBlockState(), pos, REPLACE);
MutableBlockPos mut = new MutableBlockPos();
int offset = random.nextInt(2);
@ -97,7 +97,7 @@ public class LacugroveFeature extends DefaultFeature {
BlocksHelper.setWithoutUpdate(
world,
mut,
y == top ? EndBlocks.LACUGROVE.bark : EndBlocks.LACUGROVE.log
y == top ? EndBlocks.LACUGROVE.getBark() : EndBlocks.LACUGROVE.getLog()
);
}
else {
@ -133,7 +133,7 @@ public class LacugroveFeature extends DefaultFeature {
return info.getState();
}
}
info.setState(EndBlocks.LACUGROVE.bark.defaultBlockState());
info.setState(EndBlocks.LACUGROVE.getBark().defaultBlockState());
for (int x = -6; x < 7; x++) {
int ax = Math.abs(x);
mut.setX(x + info.getPos().getX());
@ -178,12 +178,12 @@ public class LacugroveFeature extends DefaultFeature {
}
}
if (place) {
BlocksHelper.setWithoutUpdate(world, p, EndBlocks.LACUGROVE.bark);
BlocksHelper.setWithoutUpdate(world, p, EndBlocks.LACUGROVE.getBark());
}
}
}
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.LACUGROVE.bark);
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.LACUGROVE.getBark());
}
static {
@ -209,7 +209,7 @@ public class LacugroveFeature extends DefaultFeature {
POST = (info) -> {
if (EndBlocks.LACUGROVE.isTreeLog(info.getStateUp()) && EndBlocks.LACUGROVE.isTreeLog(info.getStateDown())) {
return EndBlocks.LACUGROVE.log.defaultBlockState();
return EndBlocks.LACUGROVE.getLog().defaultBlockState();
}
return info.getState();
};

View file

@ -58,7 +58,7 @@ public class LucerniaFeature extends DefaultFeature {
SplineHelper.rotateSpline(spline, angle);
SplineHelper.scale(spline, size * MHelper.randRange(0.5F, 1F, random));
SplineHelper.offsetParts(spline, random, 1F, 0, 1F);
SplineHelper.fillSpline(spline, world, EndBlocks.LUCERNIA.bark.defaultBlockState(), pos, REPLACE);
SplineHelper.fillSpline(spline, world, EndBlocks.LUCERNIA.getBark().defaultBlockState(), pos, REPLACE);
Vector3f last = spline.get(spline.size() - 1);
float leavesRadius = (size * 0.13F + MHelper.randRange(0.8F, 1.5F, random)) * 1.4F;
OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong());
@ -88,10 +88,10 @@ public class LucerniaFeature extends DefaultFeature {
MutableBlockPos mut = new MutableBlockPos();
for (Direction d1 : BlocksHelper.HORIZONTAL) {
BlockPos p = mut.set(pos).move(Direction.UP).move(d1).immutable();
BlocksHelper.setWithoutUpdate(world, p, EndBlocks.LUCERNIA.bark.defaultBlockState());
BlocksHelper.setWithoutUpdate(world, p, EndBlocks.LUCERNIA.getBark().defaultBlockState());
for (Direction d2 : BlocksHelper.HORIZONTAL) {
mut.set(p).move(Direction.UP).move(d2);
BlocksHelper.setWithoutUpdate(world, p, EndBlocks.LUCERNIA.bark.defaultBlockState());
BlocksHelper.setWithoutUpdate(world, p, EndBlocks.LUCERNIA.getBark().defaultBlockState());
}
}
@ -115,7 +115,7 @@ public class LucerniaFeature extends DefaultFeature {
return info.getState();
}
}
info.setState(EndBlocks.LUCERNIA.bark.defaultBlockState());
info.setState(EndBlocks.LUCERNIA.getBark().defaultBlockState());
}
MHelper.shuffle(DIRECTIONS, random);
@ -152,7 +152,7 @@ public class LucerniaFeature extends DefaultFeature {
return info.getState();
});
sphere.fillRecursiveIgnore(world, pos, IGNORE);
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.LUCERNIA.bark);
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.LUCERNIA.getBark());
support.forEach((bpos) -> {
BlockState state = world.getBlockState(bpos);
@ -187,7 +187,7 @@ public class LucerniaFeature extends DefaultFeature {
SplineHelper.scale(branch, scale);
Vector3f last = branch.get(branch.size() - 1);
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) {
SplineHelper.fillSplineForce(branch, world, EndBlocks.LUCERNIA.bark.defaultBlockState(), pos, REPLACE);
SplineHelper.fillSplineForce(branch, world, EndBlocks.LUCERNIA.getBark().defaultBlockState(), pos, REPLACE);
}
}
}

View file

@ -58,14 +58,14 @@ public class MossyGlowshroomFeature extends DefaultFeature {
CONE1.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP);
CONE2.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP);
CONE_GLOW.setBlock(EndBlocks.MOSSY_GLOWSHROOM_HYMENOPHORE);
ROOTS.setBlock(EndBlocks.MOSSY_GLOWSHROOM.bark);
ROOTS.setBlock(EndBlocks.MOSSY_GLOWSHROOM.getBark());
float height = MHelper.randRange(10F, 25F, random);
int count = MHelper.floor(height / 4);
List<Vector3f> spline = SplineHelper.makeSpline(0, 0, 0, 0, height, 0, count);
SplineHelper.offsetParts(spline, random, 1F, 0, 1F);
SDF sdf = SplineHelper.buildSDF(spline, 2.1F, 1.5F, (pos) -> {
return EndBlocks.MOSSY_GLOWSHROOM.log.defaultBlockState();
return EndBlocks.MOSSY_GLOWSHROOM.getLog().defaultBlockState();
});
Vector3f pos = spline.get(spline.size() - 1);
float scale = MHelper.randRange(0.75F, 1.1F, random);
@ -89,7 +89,7 @@ public class MossyGlowshroomFeature extends DefaultFeature {
}
else if (!EndBlocks.MOSSY_GLOWSHROOM.isTreeLog(info.getStateUp()) || !EndBlocks.MOSSY_GLOWSHROOM.isTreeLog(
info.getStateDown())) {
info.setState(EndBlocks.MOSSY_GLOWSHROOM.bark.defaultBlockState());
info.setState(EndBlocks.MOSSY_GLOWSHROOM.getBark().defaultBlockState());
return info.getState();
}
}

View file

@ -64,7 +64,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
);
SDF function = SplineHelper.buildSDF(spline, 1.7F, 1.1F, (bpos) -> {
return EndBlocks.PYTHADENDRON.bark.defaultBlockState();
return EndBlocks.PYTHADENDRON.getBark().defaultBlockState();
});
function.setReplaceFunction(REPLACE);
function.addPostProcess(POST);
@ -92,7 +92,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
boolean s1 = SplineHelper.fillSpline(
spline,
world,
EndBlocks.PYTHADENDRON.bark.defaultBlockState(),
EndBlocks.PYTHADENDRON.getBark().defaultBlockState(),
pos,
REPLACE
);
@ -105,7 +105,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
boolean s2 = SplineHelper.fillSpline(
spline,
world,
EndBlocks.PYTHADENDRON.bark.defaultBlockState(),
EndBlocks.PYTHADENDRON.getBark().defaultBlockState(),
pos,
REPLACE
);
@ -157,7 +157,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
return info.getState();
}
}
info.setState(EndBlocks.PYTHADENDRON.bark.defaultBlockState());
info.setState(EndBlocks.PYTHADENDRON.getBark().defaultBlockState());
for (int x = -6; x < 7; x++) {
int ax = Math.abs(x);
mut.setX(x + info.getPos().getX());
@ -206,7 +206,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
POST = (info) -> {
if (EndBlocks.PYTHADENDRON.isTreeLog(info.getStateUp()) && EndBlocks.PYTHADENDRON.isTreeLog(info.getStateDown())) {
return EndBlocks.PYTHADENDRON.log.defaultBlockState();
return EndBlocks.PYTHADENDRON.getLog().defaultBlockState();
}
return info.getState();
};

View file

@ -56,7 +56,7 @@ public class TenaneaFeature extends DefaultFeature {
SplineHelper.rotateSpline(spline, angle);
SplineHelper.scale(spline, size + MHelper.randRange(0, size * 0.5F, random));
SplineHelper.offsetParts(spline, random, 1F, 0, 1F);
SplineHelper.fillSpline(spline, world, EndBlocks.TENANEA.bark.defaultBlockState(), pos, REPLACE);
SplineHelper.fillSpline(spline, world, EndBlocks.TENANEA.getBark().defaultBlockState(), pos, REPLACE);
Vector3f last = spline.get(spline.size() - 1);
float leavesRadius = (size * 0.3F + MHelper.randRange(0.8F, 1.5F, random)) * 1.4F;
OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong());
@ -84,10 +84,10 @@ public class TenaneaFeature extends DefaultFeature {
MutableBlockPos mut = new MutableBlockPos();
for (Direction d1 : BlocksHelper.HORIZONTAL) {
BlockPos p = mut.set(pos).move(Direction.UP).move(d1).immutable();
BlocksHelper.setWithoutUpdate(world, p, EndBlocks.TENANEA.bark.defaultBlockState());
BlocksHelper.setWithoutUpdate(world, p, EndBlocks.TENANEA.getBark().defaultBlockState());
for (Direction d2 : BlocksHelper.HORIZONTAL) {
mut.set(p).move(Direction.UP).move(d2);
BlocksHelper.setWithoutUpdate(world, p, EndBlocks.TENANEA.bark.defaultBlockState());
BlocksHelper.setWithoutUpdate(world, p, EndBlocks.TENANEA.getBark().defaultBlockState());
}
}
@ -112,7 +112,7 @@ public class TenaneaFeature extends DefaultFeature {
return info.getState();
}
}
info.setState(EndBlocks.TENANEA.bark.defaultBlockState());
info.setState(EndBlocks.TENANEA.getBark().defaultBlockState());
}
MHelper.shuffle(DIRECTIONS, random);
@ -149,7 +149,7 @@ public class TenaneaFeature extends DefaultFeature {
return info.getState();
});
sphere.fillRecursiveIgnore(world, pos, IGNORE);
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.TENANEA.bark);
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.TENANEA.getBark());
support.forEach((bpos) -> {
BlockState state = world.getBlockState(bpos);

View file

@ -46,7 +46,7 @@ public class UmbrellaTreeFeature extends DefaultFeature {
final NoneFeatureConfiguration config = featureConfig.config();
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
BlockState wood = EndBlocks.UMBRELLA_TREE.bark.defaultBlockState();
BlockState wood = EndBlocks.UMBRELLA_TREE.getBark().defaultBlockState();
BlockState membrane = EndBlocks.UMBRELLA_TREE_MEMBRANE.defaultBlockState()
.setValue(UmbrellaTreeMembraneBlock.COLOR, 1);
BlockState center = EndBlocks.UMBRELLA_TREE_MEMBRANE.defaultBlockState()
@ -113,7 +113,7 @@ public class UmbrellaTreeFeature extends DefaultFeature {
sdf.setReplaceFunction(REPLACE).addPostProcess((info) -> {
if (EndBlocks.UMBRELLA_TREE.isTreeLog(info.getStateUp()) && EndBlocks.UMBRELLA_TREE.isTreeLog(info.getStateDown())) {
return EndBlocks.UMBRELLA_TREE.log.defaultBlockState();
return EndBlocks.UMBRELLA_TREE.getLog().defaultBlockState();
}
else if (info.getState().equals(membrane)) {
Center min = centers.get(0);

View file

@ -75,14 +75,14 @@ public class GiantMossyGlowshroomStructure extends SDFStructureFeature {
cone1.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP);
cone2.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP);
priGlowCone.setBlock(EndBlocks.MOSSY_GLOWSHROOM_HYMENOPHORE);
primRoots.setBlock(EndBlocks.MOSSY_GLOWSHROOM.bark);
primRoots.setBlock(EndBlocks.MOSSY_GLOWSHROOM.getBark());
float height = MHelper.randRange(10F, 25F, random);
int count = MHelper.floor(height / 4);
List<Vector3f> spline = SplineHelper.makeSpline(0, 0, 0, 0, height, 0, count);
SplineHelper.offsetParts(spline, random, 1F, 0, 1F);
SDF sdf = SplineHelper.buildSDF(spline, 2.1F, 1.5F, (pos) -> {
return EndBlocks.MOSSY_GLOWSHROOM.log.defaultBlockState();
return EndBlocks.MOSSY_GLOWSHROOM.getLog().defaultBlockState();
});
Vector3f pos = spline.get(spline.size() - 1);
float scale = MHelper.randRange(2F, 3.5F, random);
@ -106,7 +106,7 @@ public class GiantMossyGlowshroomStructure extends SDFStructureFeature {
}
else if (!EndBlocks.MOSSY_GLOWSHROOM.isTreeLog(info.getStateUp()) || !EndBlocks.MOSSY_GLOWSHROOM
.isTreeLog(info.getStateDown())) {
info.setState(EndBlocks.MOSSY_GLOWSHROOM.bark.defaultBlockState());
info.setState(EndBlocks.MOSSY_GLOWSHROOM.getBark().defaultBlockState());
return info.getState();
}
}