Wooden complex material migration
This commit is contained in:
parent
e5fde106fc
commit
a151132478
18 changed files with 134 additions and 385 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -28,6 +28,6 @@ bin/
|
||||||
|
|
||||||
run/
|
run/
|
||||||
output/
|
output/
|
||||||
*.log
|
*.getBlock("log")
|
||||||
Convert.class
|
Convert.class
|
||||||
ModelPart.class
|
ModelPart.class
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -118,7 +118,7 @@ public class CraftingRecipes {
|
||||||
.setShape("##", "##")
|
.setShape("##", "##")
|
||||||
.addMaterial('#', EndItems.CRYSTAL_SHARDS)
|
.addMaterial('#', EndItems.CRYSTAL_SHARDS)
|
||||||
.build();
|
.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)
|
.checkConfig(Configs.RECIPE_CONFIG)
|
||||||
.setShape("##", "##")
|
.setShape("##", "##")
|
||||||
.addMaterial('#', EndBlocks.END_LOTUS_STEM)
|
.addMaterial('#', EndBlocks.END_LOTUS_STEM)
|
||||||
|
@ -380,7 +380,7 @@ public class CraftingRecipes {
|
||||||
GridRecipe.make(BetterEnd.MOD_ID, "silk_moth_hive", EndBlocks.SILK_MOTH_HIVE)
|
GridRecipe.make(BetterEnd.MOD_ID, "silk_moth_hive", EndBlocks.SILK_MOTH_HIVE)
|
||||||
.checkConfig(Configs.RECIPE_CONFIG)
|
.checkConfig(Configs.RECIPE_CONFIG)
|
||||||
.setShape("#L#", "LML", "#L#")
|
.setShape("#L#", "LML", "#L#")
|
||||||
.addMaterial('#', EndBlocks.TENANEA.planks)
|
.addMaterial('#', EndBlocks.TENANEA.getBlock("planks"))
|
||||||
.addMaterial('L', EndBlocks.TENANEA_LEAVES)
|
.addMaterial('L', EndBlocks.TENANEA_LEAVES)
|
||||||
.addMaterial('M', EndItems.SILK_MOTH_MATRIX)
|
.addMaterial('M', EndItems.SILK_MOTH_MATRIX)
|
||||||
.build();
|
.build();
|
||||||
|
|
|
@ -21,7 +21,7 @@ import ru.bclib.blocks.BaseVineBlock;
|
||||||
import ru.bclib.blocks.SimpleLeavesBlock;
|
import ru.bclib.blocks.SimpleLeavesBlock;
|
||||||
import ru.bclib.blocks.StalactiteBlock;
|
import ru.bclib.blocks.StalactiteBlock;
|
||||||
import ru.bclib.registry.BaseBlockEntities;
|
import ru.bclib.registry.BaseBlockEntities;
|
||||||
import ru.bclib.registry.BlocksRegistry;
|
import ru.bclib.registry.BlockRegistry;
|
||||||
import ru.betterend.BetterEnd;
|
import ru.betterend.BetterEnd;
|
||||||
import ru.betterend.blocks.AeterniumAnvil;
|
import ru.betterend.blocks.AeterniumAnvil;
|
||||||
import ru.betterend.blocks.AeterniumBlock;
|
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.CrystalSubblocksMaterial;
|
||||||
import ru.betterend.blocks.complex.MetalMaterial;
|
import ru.betterend.blocks.complex.MetalMaterial;
|
||||||
import ru.betterend.blocks.complex.StoneMaterial;
|
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.config.Configs;
|
||||||
import ru.betterend.item.material.EndArmorMaterial;
|
import ru.betterend.item.material.EndArmorMaterial;
|
||||||
import ru.betterend.item.material.EndToolMaterial;
|
import ru.betterend.item.material.EndToolMaterial;
|
||||||
|
@ -147,7 +147,7 @@ import ru.betterend.tab.CreativeTabs;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class EndBlocks extends BlocksRegistry {
|
public class EndBlocks extends BlockRegistry {
|
||||||
// Terrain //
|
// Terrain //
|
||||||
public static final Block ENDSTONE_DUST = registerBlock("endstone_dust", new EndstoneDustBlock());
|
public static final Block ENDSTONE_DUST = registerBlock("endstone_dust", new EndstoneDustBlock());
|
||||||
public static final Block END_MYCELIUM = registerBlock(
|
public static final Block END_MYCELIUM = registerBlock(
|
||||||
|
@ -289,11 +289,11 @@ public class EndBlocks extends BlocksRegistry {
|
||||||
"mossy_glowshroom_fur",
|
"mossy_glowshroom_fur",
|
||||||
new FurBlock(MOSSY_GLOWSHROOM_SAPLING, 15, 16, true)
|
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",
|
"mossy_glowshroom",
|
||||||
MaterialColor.COLOR_GRAY,
|
MaterialColor.COLOR_GRAY,
|
||||||
MaterialColor.WOOD
|
MaterialColor.WOOD
|
||||||
);
|
).init();
|
||||||
|
|
||||||
public static final Block PYTHADENDRON_SAPLING = registerBlock(
|
public static final Block PYTHADENDRON_SAPLING = registerBlock(
|
||||||
"pythadendron_sapling",
|
"pythadendron_sapling",
|
||||||
|
@ -303,43 +303,43 @@ public class EndBlocks extends BlocksRegistry {
|
||||||
"pythadendron_leaves",
|
"pythadendron_leaves",
|
||||||
new PottableLeavesBlock(PYTHADENDRON_SAPLING, MaterialColor.COLOR_MAGENTA)
|
new PottableLeavesBlock(PYTHADENDRON_SAPLING, MaterialColor.COLOR_MAGENTA)
|
||||||
);
|
);
|
||||||
public static final WoodenMaterial PYTHADENDRON = new WoodenMaterial(
|
public static final EndWoodenMaterial PYTHADENDRON = new EndWoodenMaterial(
|
||||||
"pythadendron",
|
"pythadendron",
|
||||||
MaterialColor.COLOR_MAGENTA,
|
MaterialColor.COLOR_MAGENTA,
|
||||||
MaterialColor.COLOR_PURPLE
|
MaterialColor.COLOR_PURPLE
|
||||||
);
|
).init();
|
||||||
|
|
||||||
public static final Block END_LOTUS_SEED = registerBlock("end_lotus_seed", new EndLotusSeedBlock());
|
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_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_LEAF = registerEndBlockOnly("end_lotus_leaf", new EndLotusLeafBlock());
|
||||||
public static final Block END_LOTUS_FLOWER = registerEndBlockOnly("end_lotus_flower", new EndLotusFlowerBlock());
|
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",
|
"end_lotus",
|
||||||
MaterialColor.COLOR_LIGHT_BLUE,
|
MaterialColor.COLOR_LIGHT_BLUE,
|
||||||
MaterialColor.COLOR_CYAN
|
MaterialColor.COLOR_CYAN
|
||||||
);
|
).init();
|
||||||
|
|
||||||
public static final Block LACUGROVE_SAPLING = registerBlock("lacugrove_sapling", new LacugroveSaplingBlock());
|
public static final Block LACUGROVE_SAPLING = registerBlock("lacugrove_sapling", new LacugroveSaplingBlock());
|
||||||
public static final Block LACUGROVE_LEAVES = registerBlock(
|
public static final Block LACUGROVE_LEAVES = registerBlock(
|
||||||
"lacugrove_leaves",
|
"lacugrove_leaves",
|
||||||
new PottableLeavesBlock(LACUGROVE_SAPLING, MaterialColor.COLOR_CYAN)
|
new PottableLeavesBlock(LACUGROVE_SAPLING, MaterialColor.COLOR_CYAN)
|
||||||
);
|
);
|
||||||
public static final WoodenMaterial LACUGROVE = new WoodenMaterial(
|
public static final EndWoodenMaterial LACUGROVE = new EndWoodenMaterial(
|
||||||
"lacugrove",
|
"lacugrove",
|
||||||
MaterialColor.COLOR_BROWN,
|
MaterialColor.COLOR_BROWN,
|
||||||
MaterialColor.COLOR_YELLOW
|
MaterialColor.COLOR_YELLOW
|
||||||
);
|
).init();
|
||||||
|
|
||||||
public static final Block DRAGON_TREE_SAPLING = registerBlock("dragon_tree_sapling", new DragonTreeSaplingBlock());
|
public static final Block DRAGON_TREE_SAPLING = registerBlock("dragon_tree_sapling", new DragonTreeSaplingBlock());
|
||||||
public static final Block DRAGON_TREE_LEAVES = registerBlock(
|
public static final Block DRAGON_TREE_LEAVES = registerBlock(
|
||||||
"dragon_tree_leaves",
|
"dragon_tree_leaves",
|
||||||
new PottableLeavesBlock(DRAGON_TREE_SAPLING, MaterialColor.COLOR_MAGENTA)
|
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",
|
"dragon_tree",
|
||||||
MaterialColor.COLOR_BLACK,
|
MaterialColor.COLOR_BLACK,
|
||||||
MaterialColor.COLOR_MAGENTA
|
MaterialColor.COLOR_MAGENTA
|
||||||
);
|
).init();
|
||||||
|
|
||||||
public static final Block TENANEA_SAPLING = registerBlock("tenanea_sapling", new TenaneaSaplingBlock());
|
public static final Block TENANEA_SAPLING = registerBlock("tenanea_sapling", new TenaneaSaplingBlock());
|
||||||
public static final Block TENANEA_LEAVES = registerBlock(
|
public static final Block TENANEA_LEAVES = registerBlock(
|
||||||
|
@ -351,19 +351,19 @@ public class EndBlocks extends BlocksRegistry {
|
||||||
"tenanea_outer_leaves",
|
"tenanea_outer_leaves",
|
||||||
new FurBlock(TENANEA_SAPLING, 32)
|
new FurBlock(TENANEA_SAPLING, 32)
|
||||||
);
|
);
|
||||||
public static final WoodenMaterial TENANEA = new WoodenMaterial(
|
public static final EndWoodenMaterial TENANEA = new EndWoodenMaterial(
|
||||||
"tenanea",
|
"tenanea",
|
||||||
MaterialColor.COLOR_BROWN,
|
MaterialColor.COLOR_BROWN,
|
||||||
MaterialColor.COLOR_PINK
|
MaterialColor.COLOR_PINK
|
||||||
);
|
).init();
|
||||||
|
|
||||||
public static final Block HELIX_TREE_SAPLING = registerBlock("helix_tree_sapling", new HelixTreeSaplingBlock());
|
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 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",
|
"helix_tree",
|
||||||
MaterialColor.COLOR_GRAY,
|
MaterialColor.COLOR_GRAY,
|
||||||
MaterialColor.COLOR_ORANGE
|
MaterialColor.COLOR_ORANGE
|
||||||
);
|
).init();
|
||||||
|
|
||||||
public static final Block UMBRELLA_TREE_SAPLING = registerBlock(
|
public static final Block UMBRELLA_TREE_SAPLING = registerBlock(
|
||||||
"umbrella_tree_sapling",
|
"umbrella_tree_sapling",
|
||||||
|
@ -381,21 +381,21 @@ public class EndBlocks extends BlocksRegistry {
|
||||||
"umbrella_tree_cluster_empty",
|
"umbrella_tree_cluster_empty",
|
||||||
new UmbrellaTreeClusterEmptyBlock()
|
new UmbrellaTreeClusterEmptyBlock()
|
||||||
);
|
);
|
||||||
public static final WoodenMaterial UMBRELLA_TREE = new WoodenMaterial(
|
public static final EndWoodenMaterial UMBRELLA_TREE = new EndWoodenMaterial(
|
||||||
"umbrella_tree",
|
"umbrella_tree",
|
||||||
MaterialColor.COLOR_BLUE,
|
MaterialColor.COLOR_BLUE,
|
||||||
MaterialColor.COLOR_GREEN
|
MaterialColor.COLOR_GREEN
|
||||||
);
|
).init();
|
||||||
|
|
||||||
public static final Block JELLYSHROOM_CAP_PURPLE = registerBlock(
|
public static final Block JELLYSHROOM_CAP_PURPLE = registerBlock(
|
||||||
"jellyshroom_cap_purple",
|
"jellyshroom_cap_purple",
|
||||||
new JellyshroomCapBlock(217, 142, 255, 164, 0, 255)
|
new JellyshroomCapBlock(217, 142, 255, 164, 0, 255)
|
||||||
);
|
);
|
||||||
public static final WoodenMaterial JELLYSHROOM = new WoodenMaterial(
|
public static final EndWoodenMaterial JELLYSHROOM = new EndWoodenMaterial(
|
||||||
"jellyshroom",
|
"jellyshroom",
|
||||||
MaterialColor.COLOR_PURPLE,
|
MaterialColor.COLOR_PURPLE,
|
||||||
MaterialColor.COLOR_LIGHT_BLUE
|
MaterialColor.COLOR_LIGHT_BLUE
|
||||||
);
|
).init();
|
||||||
|
|
||||||
public static final Block LUCERNIA_SAPLING = registerBlock("lucernia_sapling", new LucerniaSaplingBlock());
|
public static final Block LUCERNIA_SAPLING = registerBlock("lucernia_sapling", new LucerniaSaplingBlock());
|
||||||
public static final Block LUCERNIA_LEAVES = registerBlock(
|
public static final Block LUCERNIA_LEAVES = registerBlock(
|
||||||
|
@ -406,11 +406,11 @@ public class EndBlocks extends BlocksRegistry {
|
||||||
"lucernia_outer_leaves",
|
"lucernia_outer_leaves",
|
||||||
new FurBlock(LUCERNIA_SAPLING, 32)
|
new FurBlock(LUCERNIA_SAPLING, 32)
|
||||||
);
|
);
|
||||||
public static final WoodenMaterial LUCERNIA = new WoodenMaterial(
|
public static final EndWoodenMaterial LUCERNIA = new EndWoodenMaterial(
|
||||||
"lucernia",
|
"lucernia",
|
||||||
MaterialColor.COLOR_ORANGE,
|
MaterialColor.COLOR_ORANGE,
|
||||||
MaterialColor.COLOR_ORANGE
|
MaterialColor.COLOR_ORANGE
|
||||||
);
|
).init();
|
||||||
|
|
||||||
// Small Plants //
|
// Small Plants //
|
||||||
public static final Block UMBRELLA_MOSS = registerBlock("umbrella_moss", new UmbrellaMossBlock());
|
public static final Block UMBRELLA_MOSS = registerBlock("umbrella_moss", new UmbrellaMossBlock());
|
||||||
|
@ -690,7 +690,7 @@ public class EndBlocks extends BlocksRegistry {
|
||||||
// Technical
|
// Technical
|
||||||
public static final Block END_PORTAL_BLOCK = registerEndBlockOnly("end_portal_block", new EndPortalBlock());
|
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) {
|
private EndBlocks(CreativeModeTab creativeTab) {
|
||||||
super(creativeTab);
|
super(creativeTab);
|
||||||
|
@ -728,7 +728,7 @@ public class EndBlocks extends BlocksRegistry {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Block registerEndBlockOnly(String name, Block block) {
|
public static Block registerEndBlockOnly(String name, Block block) {
|
||||||
return getBlockRegistry().registerBlockOnly(name, block);
|
return getBlockRegistry().registerBlockOnly(BetterEnd.makeID(name), block);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static FabricItemSettings makeBlockItemSettings() {
|
public static FabricItemSettings makeBlockItemSettings() {
|
||||||
|
@ -741,10 +741,10 @@ public class EndBlocks extends BlocksRegistry {
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private static BlocksRegistry getBlockRegistry() {
|
public static BlockRegistry getBlockRegistry() {
|
||||||
if (BLOCKS_REGISTRY == null) {
|
if (BlockRegistry == null) {
|
||||||
BLOCKS_REGISTRY = new EndBlocks(CreativeTabs.TAB_BLOCKS);
|
BlockRegistry = new EndBlocks(CreativeTabs.TAB_BLOCKS);
|
||||||
}
|
}
|
||||||
return BLOCKS_REGISTRY;
|
return BlockRegistry;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,12 +112,12 @@ public class EndFeatures {
|
||||||
// Bushes //
|
// Bushes //
|
||||||
public static final BCLFeature PYTHADENDRON_BUSH = redisterVegetation(
|
public static final BCLFeature PYTHADENDRON_BUSH = redisterVegetation(
|
||||||
"pythadendron_bush",
|
"pythadendron_bush",
|
||||||
new BushFeature(EndBlocks.PYTHADENDRON_LEAVES, EndBlocks.PYTHADENDRON.bark),
|
new BushFeature(EndBlocks.PYTHADENDRON_LEAVES, EndBlocks.PYTHADENDRON.getBark()),
|
||||||
4
|
4
|
||||||
);
|
);
|
||||||
public static final BCLFeature DRAGON_TREE_BUSH = redisterVegetation(
|
public static final BCLFeature DRAGON_TREE_BUSH = redisterVegetation(
|
||||||
"dragon_tree_bush",
|
"dragon_tree_bush",
|
||||||
new BushFeature(EndBlocks.DRAGON_TREE_LEAVES, EndBlocks.DRAGON_TREE.bark),
|
new BushFeature(EndBlocks.DRAGON_TREE_LEAVES, EndBlocks.DRAGON_TREE.getBark()),
|
||||||
15
|
15
|
||||||
);
|
);
|
||||||
public static final BCLFeature TENANEA_BUSH = redisterVegetation("tenanea_bush", new TenaneaBushFeature(), 10);
|
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(
|
public static final BCLFeature LUCERNIA_BUSH = redisterVegetation(
|
||||||
"lucernia_bush",
|
"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
|
10
|
||||||
);
|
);
|
||||||
public static final BCLFeature LUCERNIA_BUSH_RARE = redisterVegetation(
|
public static final BCLFeature LUCERNIA_BUSH_RARE = redisterVegetation(
|
||||||
"lucernia_bush_rare",
|
"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
|
1
|
||||||
);
|
);
|
||||||
public static final BCLFeature NEON_CACTUS = redisterVegetation("neon_cactus", new NeonCactusFeature(), 2);
|
public static final BCLFeature NEON_CACTUS = redisterVegetation("neon_cactus", new NeonCactusFeature(), 2);
|
||||||
|
|
|
@ -22,7 +22,7 @@ import ru.bclib.items.tool.BaseAxeItem;
|
||||||
import ru.bclib.items.tool.BaseHoeItem;
|
import ru.bclib.items.tool.BaseHoeItem;
|
||||||
import ru.bclib.items.tool.BaseShovelItem;
|
import ru.bclib.items.tool.BaseShovelItem;
|
||||||
import ru.bclib.items.tool.BaseSwordItem;
|
import ru.bclib.items.tool.BaseSwordItem;
|
||||||
import ru.bclib.registry.ItemsRegistry;
|
import ru.bclib.registry.ItemRegistry;
|
||||||
import ru.betterend.BetterEnd;
|
import ru.betterend.BetterEnd;
|
||||||
import ru.betterend.config.Configs;
|
import ru.betterend.config.Configs;
|
||||||
import ru.betterend.item.ArmoredElytra;
|
import ru.betterend.item.ArmoredElytra;
|
||||||
|
@ -42,7 +42,7 @@ import ru.betterend.tab.CreativeTabs;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class EndItems extends ItemsRegistry {
|
public class EndItems extends ItemRegistry {
|
||||||
// Materials //
|
// Materials //
|
||||||
public final static Item ENDER_DUST = registerEndItem("ender_dust");
|
public final static Item ENDER_DUST = registerEndItem("ender_dust");
|
||||||
public final static Item ENDER_SHARD = registerEndItem("ender_shard");
|
public final static Item ENDER_SHARD = registerEndItem("ender_shard");
|
||||||
|
@ -202,7 +202,7 @@ public class EndItems extends ItemsRegistry {
|
||||||
// Drinks //
|
// Drinks //
|
||||||
public final static Item UMBRELLA_CLUSTER_JUICE = registerEndDrink("umbrella_cluster_juice", 5, 0.7F);
|
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) {
|
protected EndItems(CreativeModeTab creativeTab) {
|
||||||
super(creativeTab);
|
super(creativeTab);
|
||||||
|
@ -284,7 +284,7 @@ public class EndItems extends ItemsRegistry {
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private static ItemsRegistry getItemRegistry() {
|
public static ItemRegistry getItemRegistry() {
|
||||||
if (itemRegistry == null) {
|
if (itemRegistry == null) {
|
||||||
itemRegistry = new EndItems(CreativeTabs.TAB_ITEMS);
|
itemRegistry = new EndItems(CreativeTabs.TAB_ITEMS);
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,7 +87,7 @@ public class TenaneaBushFeature extends DefaultFeature {
|
||||||
return info.getState();
|
return info.getState();
|
||||||
});
|
});
|
||||||
sphere.fillRecursive(world, pos);
|
sphere.fillRecursive(world, pos);
|
||||||
BlockState stem = EndBlocks.TENANEA.bark.defaultBlockState();
|
BlockState stem = EndBlocks.TENANEA.getBark().defaultBlockState();
|
||||||
BlocksHelper.setWithoutUpdate(world, pos, stem);
|
BlocksHelper.setWithoutUpdate(world, pos, stem);
|
||||||
for (Direction d : Direction.values()) {
|
for (Direction d : Direction.values()) {
|
||||||
BlockPos p = pos.relative(d);
|
BlockPos p = pos.relative(d);
|
||||||
|
|
|
@ -66,7 +66,7 @@ public class DragonTreeFeature extends DefaultFeature {
|
||||||
|
|
||||||
radius = MHelper.randRange(1.2F, 2.3F, random);
|
radius = MHelper.randRange(1.2F, 2.3F, random);
|
||||||
SDF function = SplineHelper.buildSDF(spline, radius, 1.2F, (bpos) -> {
|
SDF function = SplineHelper.buildSDF(spline, radius, 1.2F, (bpos) -> {
|
||||||
return EndBlocks.DRAGON_TREE.bark.defaultBlockState();
|
return EndBlocks.DRAGON_TREE.getBark().defaultBlockState();
|
||||||
});
|
});
|
||||||
|
|
||||||
function.setReplaceFunction(REPLACE);
|
function.setReplaceFunction(REPLACE);
|
||||||
|
@ -86,17 +86,17 @@ public class DragonTreeFeature extends DefaultFeature {
|
||||||
List<Vector3f> branch = SplineHelper.copySpline(BRANCH);
|
List<Vector3f> branch = SplineHelper.copySpline(BRANCH);
|
||||||
SplineHelper.rotateSpline(branch, angle);
|
SplineHelper.rotateSpline(branch, angle);
|
||||||
SplineHelper.scale(branch, scale);
|
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);
|
branch = SplineHelper.copySpline(SIDE1);
|
||||||
SplineHelper.rotateSpline(branch, angle);
|
SplineHelper.rotateSpline(branch, angle);
|
||||||
SplineHelper.scale(branch, scale);
|
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);
|
branch = SplineHelper.copySpline(SIDE2);
|
||||||
SplineHelper.rotateSpline(branch, angle);
|
SplineHelper.rotateSpline(branch, angle);
|
||||||
SplineHelper.scale(branch, scale);
|
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);
|
leavesBall(world, pos.above(offset), radius * 1.15F + 2, random, noise);
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ public class DragonTreeFeature extends DefaultFeature {
|
||||||
SplineHelper.scale(branch, scale);
|
SplineHelper.scale(branch, scale);
|
||||||
Vector3f last = branch.get(branch.size() - 1);
|
Vector3f last = branch.get(branch.size() - 1);
|
||||||
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
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();
|
return info.getState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
info.setState(EndBlocks.DRAGON_TREE.bark.defaultBlockState());
|
info.setState(EndBlocks.DRAGON_TREE.getBark().defaultBlockState());
|
||||||
for (int x = -6; x < 7; x++) {
|
for (int x = -6; x < 7; x++) {
|
||||||
int ax = Math.abs(x);
|
int ax = Math.abs(x);
|
||||||
mut.setX(x + info.getPos().getX());
|
mut.setX(x + info.getPos().getX());
|
||||||
|
@ -185,12 +185,12 @@ public class DragonTreeFeature extends DefaultFeature {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (place) {
|
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 {
|
static {
|
||||||
|
@ -213,7 +213,7 @@ public class DragonTreeFeature extends DefaultFeature {
|
||||||
|
|
||||||
POST = (info) -> {
|
POST = (info) -> {
|
||||||
if (EndBlocks.DRAGON_TREE.isTreeLog(info.getStateUp()) && EndBlocks.DRAGON_TREE.isTreeLog(info.getStateDown())) {
|
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();
|
return info.getState();
|
||||||
};
|
};
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class HelixTreeFeature extends DefaultFeature {
|
||||||
spline.add(new Vector3f(dx, i * 2, dz));
|
spline.add(new Vector3f(dx, i * 2, dz));
|
||||||
}
|
}
|
||||||
SDF sdf = SplineHelper.buildSDF(spline, 1.7F, 0.5F, (p) -> {
|
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 rotated = new SDFRotation().setRotation(Vector3f.YP, (float) Math.PI).setSource(sdf);
|
||||||
sdf = new SDFUnion().setSourceA(rotated).setSourceB(sdf);
|
sdf = new SDFUnion().setSourceA(rotated).setSourceB(sdf);
|
||||||
|
@ -62,7 +62,7 @@ public class HelixTreeFeature extends DefaultFeature {
|
||||||
Vector3f lastPoint = spline.get(spline.size() - 1);
|
Vector3f lastPoint = spline.get(spline.size() - 1);
|
||||||
List<Vector3f> spline2 = SplineHelper.makeSpline(0, 0, 0, 0, 20, 0, 5);
|
List<Vector3f> spline2 = SplineHelper.makeSpline(0, 0, 0, 0, 20, 0, 5);
|
||||||
SDF stem = SplineHelper.buildSDF(spline2, 1.0F, 0.5F, (p) -> {
|
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);
|
stem = new SDFTranslate().setTranslate(lastPoint.x(), lastPoint.y(), lastPoint.z()).setSource(stem);
|
||||||
sdf = new SDFSmoothUnion().setRadius(3).setSourceA(sdf).setSourceB(stem);
|
sdf = new SDFSmoothUnion().setRadius(3).setSourceA(sdf).setSourceB(stem);
|
||||||
|
@ -73,11 +73,11 @@ public class HelixTreeFeature extends DefaultFeature {
|
||||||
float dy2 = 100 * scale;
|
float dy2 = 100 * scale;
|
||||||
sdf.addPostProcess(POST).fillArea(world, pos, new AABB(pos.offset(-dx, dy1, -dx), pos.offset(dx, dy2, dx)));
|
sdf.addPostProcess(POST).fillArea(world, pos, new AABB(pos.offset(-dx, dy1, -dx), pos.offset(dx, dy2, dx)));
|
||||||
SplineHelper.scale(spline, scale);
|
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();
|
return state.getMaterial().isReplaceable();
|
||||||
});
|
});
|
||||||
SplineHelper.rotateSpline(spline, (float) Math.PI);
|
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();
|
return state.getMaterial().isReplaceable();
|
||||||
});
|
});
|
||||||
SplineHelper.scale(spline2, scale);
|
SplineHelper.scale(spline2, scale);
|
||||||
|
@ -85,7 +85,7 @@ public class HelixTreeFeature extends DefaultFeature {
|
||||||
SplineHelper.fillSplineForce(
|
SplineHelper.fillSplineForce(
|
||||||
spline2,
|
spline2,
|
||||||
world,
|
world,
|
||||||
EndBlocks.HELIX_TREE.log.defaultBlockState(),
|
EndBlocks.HELIX_TREE.getLog().defaultBlockState(),
|
||||||
leafStart,
|
leafStart,
|
||||||
(state) -> {
|
(state) -> {
|
||||||
return state.getMaterial().isReplaceable();
|
return state.getMaterial().isReplaceable();
|
||||||
|
@ -189,7 +189,7 @@ public class HelixTreeFeature extends DefaultFeature {
|
||||||
static {
|
static {
|
||||||
POST = (info) -> {
|
POST = (info) -> {
|
||||||
if (EndBlocks.HELIX_TREE.isTreeLog(info.getStateUp()) && EndBlocks.HELIX_TREE.isTreeLog(info.getStateDown())) {
|
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();
|
return info.getState();
|
||||||
};
|
};
|
||||||
|
|
|
@ -38,7 +38,7 @@ public class JellyshroomFeature extends DefaultFeature {
|
||||||
final WorldGenLevel world = featureConfig.level();
|
final WorldGenLevel world = featureConfig.level();
|
||||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
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();
|
BlockState membrane = EndBlocks.JELLYSHROOM_CAP_PURPLE.defaultBlockState();
|
||||||
|
|
||||||
int height = MHelper.randRange(5, 8, random);
|
int height = MHelper.randRange(5, 8, random);
|
||||||
|
@ -61,7 +61,7 @@ public class JellyshroomFeature extends DefaultFeature {
|
||||||
sdf.setReplaceFunction(REPLACE).addPostProcess((info) -> {
|
sdf.setReplaceFunction(REPLACE).addPostProcess((info) -> {
|
||||||
if (EndBlocks.JELLYSHROOM.isTreeLog(info.getState())) {
|
if (EndBlocks.JELLYSHROOM.isTreeLog(info.getState())) {
|
||||||
if (EndBlocks.JELLYSHROOM.isTreeLog(info.getStateUp()) && EndBlocks.JELLYSHROOM.isTreeLog(info.getStateDown())) {
|
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)) {
|
else if (info.getState().is(EndBlocks.JELLYSHROOM_CAP_PURPLE)) {
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class LacugroveFeature extends DefaultFeature {
|
||||||
|
|
||||||
radius = MHelper.randRange(1.2F, 1.8F, random);
|
radius = MHelper.randRange(1.2F, 1.8F, random);
|
||||||
SDF function = SplineHelper.buildSDF(spline, radius, 0.7F, (bpos) -> {
|
SDF function = SplineHelper.buildSDF(spline, radius, 0.7F, (bpos) -> {
|
||||||
return EndBlocks.LACUGROVE.bark.defaultBlockState();
|
return EndBlocks.LACUGROVE.getBark().defaultBlockState();
|
||||||
});
|
});
|
||||||
|
|
||||||
function.setReplaceFunction(REPLACE);
|
function.setReplaceFunction(REPLACE);
|
||||||
|
@ -65,7 +65,7 @@ public class LacugroveFeature extends DefaultFeature {
|
||||||
function.fillRecursive(world, pos);
|
function.fillRecursive(world, pos);
|
||||||
|
|
||||||
spline = spline.subList(4, 6);
|
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();
|
MutableBlockPos mut = new MutableBlockPos();
|
||||||
int offset = random.nextInt(2);
|
int offset = random.nextInt(2);
|
||||||
|
@ -97,7 +97,7 @@ public class LacugroveFeature extends DefaultFeature {
|
||||||
BlocksHelper.setWithoutUpdate(
|
BlocksHelper.setWithoutUpdate(
|
||||||
world,
|
world,
|
||||||
mut,
|
mut,
|
||||||
y == top ? EndBlocks.LACUGROVE.bark : EndBlocks.LACUGROVE.log
|
y == top ? EndBlocks.LACUGROVE.getBark() : EndBlocks.LACUGROVE.getLog()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -133,7 +133,7 @@ public class LacugroveFeature extends DefaultFeature {
|
||||||
return info.getState();
|
return info.getState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
info.setState(EndBlocks.LACUGROVE.bark.defaultBlockState());
|
info.setState(EndBlocks.LACUGROVE.getBark().defaultBlockState());
|
||||||
for (int x = -6; x < 7; x++) {
|
for (int x = -6; x < 7; x++) {
|
||||||
int ax = Math.abs(x);
|
int ax = Math.abs(x);
|
||||||
mut.setX(x + info.getPos().getX());
|
mut.setX(x + info.getPos().getX());
|
||||||
|
@ -178,12 +178,12 @@ public class LacugroveFeature extends DefaultFeature {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (place) {
|
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 {
|
static {
|
||||||
|
@ -209,7 +209,7 @@ public class LacugroveFeature extends DefaultFeature {
|
||||||
|
|
||||||
POST = (info) -> {
|
POST = (info) -> {
|
||||||
if (EndBlocks.LACUGROVE.isTreeLog(info.getStateUp()) && EndBlocks.LACUGROVE.isTreeLog(info.getStateDown())) {
|
if (EndBlocks.LACUGROVE.isTreeLog(info.getStateUp()) && EndBlocks.LACUGROVE.isTreeLog(info.getStateDown())) {
|
||||||
return EndBlocks.LACUGROVE.log.defaultBlockState();
|
return EndBlocks.LACUGROVE.getLog().defaultBlockState();
|
||||||
}
|
}
|
||||||
return info.getState();
|
return info.getState();
|
||||||
};
|
};
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class LucerniaFeature extends DefaultFeature {
|
||||||
SplineHelper.rotateSpline(spline, angle);
|
SplineHelper.rotateSpline(spline, angle);
|
||||||
SplineHelper.scale(spline, size * MHelper.randRange(0.5F, 1F, random));
|
SplineHelper.scale(spline, size * MHelper.randRange(0.5F, 1F, random));
|
||||||
SplineHelper.offsetParts(spline, random, 1F, 0, 1F);
|
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);
|
Vector3f last = spline.get(spline.size() - 1);
|
||||||
float leavesRadius = (size * 0.13F + MHelper.randRange(0.8F, 1.5F, random)) * 1.4F;
|
float leavesRadius = (size * 0.13F + MHelper.randRange(0.8F, 1.5F, random)) * 1.4F;
|
||||||
OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong());
|
OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong());
|
||||||
|
@ -88,10 +88,10 @@ public class LucerniaFeature extends DefaultFeature {
|
||||||
MutableBlockPos mut = new MutableBlockPos();
|
MutableBlockPos mut = new MutableBlockPos();
|
||||||
for (Direction d1 : BlocksHelper.HORIZONTAL) {
|
for (Direction d1 : BlocksHelper.HORIZONTAL) {
|
||||||
BlockPos p = mut.set(pos).move(Direction.UP).move(d1).immutable();
|
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) {
|
for (Direction d2 : BlocksHelper.HORIZONTAL) {
|
||||||
mut.set(p).move(Direction.UP).move(d2);
|
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();
|
return info.getState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
info.setState(EndBlocks.LUCERNIA.bark.defaultBlockState());
|
info.setState(EndBlocks.LUCERNIA.getBark().defaultBlockState());
|
||||||
}
|
}
|
||||||
|
|
||||||
MHelper.shuffle(DIRECTIONS, random);
|
MHelper.shuffle(DIRECTIONS, random);
|
||||||
|
@ -152,7 +152,7 @@ public class LucerniaFeature extends DefaultFeature {
|
||||||
return info.getState();
|
return info.getState();
|
||||||
});
|
});
|
||||||
sphere.fillRecursiveIgnore(world, pos, IGNORE);
|
sphere.fillRecursiveIgnore(world, pos, IGNORE);
|
||||||
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.LUCERNIA.bark);
|
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.LUCERNIA.getBark());
|
||||||
|
|
||||||
support.forEach((bpos) -> {
|
support.forEach((bpos) -> {
|
||||||
BlockState state = world.getBlockState(bpos);
|
BlockState state = world.getBlockState(bpos);
|
||||||
|
@ -187,7 +187,7 @@ public class LucerniaFeature extends DefaultFeature {
|
||||||
SplineHelper.scale(branch, scale);
|
SplineHelper.scale(branch, scale);
|
||||||
Vector3f last = branch.get(branch.size() - 1);
|
Vector3f last = branch.get(branch.size() - 1);
|
||||||
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,14 +58,14 @@ public class MossyGlowshroomFeature extends DefaultFeature {
|
||||||
CONE1.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP);
|
CONE1.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP);
|
||||||
CONE2.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP);
|
CONE2.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP);
|
||||||
CONE_GLOW.setBlock(EndBlocks.MOSSY_GLOWSHROOM_HYMENOPHORE);
|
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);
|
float height = MHelper.randRange(10F, 25F, random);
|
||||||
int count = MHelper.floor(height / 4);
|
int count = MHelper.floor(height / 4);
|
||||||
List<Vector3f> spline = SplineHelper.makeSpline(0, 0, 0, 0, height, 0, count);
|
List<Vector3f> spline = SplineHelper.makeSpline(0, 0, 0, 0, height, 0, count);
|
||||||
SplineHelper.offsetParts(spline, random, 1F, 0, 1F);
|
SplineHelper.offsetParts(spline, random, 1F, 0, 1F);
|
||||||
SDF sdf = SplineHelper.buildSDF(spline, 2.1F, 1.5F, (pos) -> {
|
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);
|
Vector3f pos = spline.get(spline.size() - 1);
|
||||||
float scale = MHelper.randRange(0.75F, 1.1F, random);
|
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(
|
else if (!EndBlocks.MOSSY_GLOWSHROOM.isTreeLog(info.getStateUp()) || !EndBlocks.MOSSY_GLOWSHROOM.isTreeLog(
|
||||||
info.getStateDown())) {
|
info.getStateDown())) {
|
||||||
info.setState(EndBlocks.MOSSY_GLOWSHROOM.bark.defaultBlockState());
|
info.setState(EndBlocks.MOSSY_GLOWSHROOM.getBark().defaultBlockState());
|
||||||
return info.getState();
|
return info.getState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
|
||||||
);
|
);
|
||||||
|
|
||||||
SDF function = SplineHelper.buildSDF(spline, 1.7F, 1.1F, (bpos) -> {
|
SDF function = SplineHelper.buildSDF(spline, 1.7F, 1.1F, (bpos) -> {
|
||||||
return EndBlocks.PYTHADENDRON.bark.defaultBlockState();
|
return EndBlocks.PYTHADENDRON.getBark().defaultBlockState();
|
||||||
});
|
});
|
||||||
function.setReplaceFunction(REPLACE);
|
function.setReplaceFunction(REPLACE);
|
||||||
function.addPostProcess(POST);
|
function.addPostProcess(POST);
|
||||||
|
@ -92,7 +92,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
|
||||||
boolean s1 = SplineHelper.fillSpline(
|
boolean s1 = SplineHelper.fillSpline(
|
||||||
spline,
|
spline,
|
||||||
world,
|
world,
|
||||||
EndBlocks.PYTHADENDRON.bark.defaultBlockState(),
|
EndBlocks.PYTHADENDRON.getBark().defaultBlockState(),
|
||||||
pos,
|
pos,
|
||||||
REPLACE
|
REPLACE
|
||||||
);
|
);
|
||||||
|
@ -105,7 +105,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
|
||||||
boolean s2 = SplineHelper.fillSpline(
|
boolean s2 = SplineHelper.fillSpline(
|
||||||
spline,
|
spline,
|
||||||
world,
|
world,
|
||||||
EndBlocks.PYTHADENDRON.bark.defaultBlockState(),
|
EndBlocks.PYTHADENDRON.getBark().defaultBlockState(),
|
||||||
pos,
|
pos,
|
||||||
REPLACE
|
REPLACE
|
||||||
);
|
);
|
||||||
|
@ -157,7 +157,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
|
||||||
return info.getState();
|
return info.getState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
info.setState(EndBlocks.PYTHADENDRON.bark.defaultBlockState());
|
info.setState(EndBlocks.PYTHADENDRON.getBark().defaultBlockState());
|
||||||
for (int x = -6; x < 7; x++) {
|
for (int x = -6; x < 7; x++) {
|
||||||
int ax = Math.abs(x);
|
int ax = Math.abs(x);
|
||||||
mut.setX(x + info.getPos().getX());
|
mut.setX(x + info.getPos().getX());
|
||||||
|
@ -206,7 +206,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
|
||||||
|
|
||||||
POST = (info) -> {
|
POST = (info) -> {
|
||||||
if (EndBlocks.PYTHADENDRON.isTreeLog(info.getStateUp()) && EndBlocks.PYTHADENDRON.isTreeLog(info.getStateDown())) {
|
if (EndBlocks.PYTHADENDRON.isTreeLog(info.getStateUp()) && EndBlocks.PYTHADENDRON.isTreeLog(info.getStateDown())) {
|
||||||
return EndBlocks.PYTHADENDRON.log.defaultBlockState();
|
return EndBlocks.PYTHADENDRON.getLog().defaultBlockState();
|
||||||
}
|
}
|
||||||
return info.getState();
|
return info.getState();
|
||||||
};
|
};
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class TenaneaFeature extends DefaultFeature {
|
||||||
SplineHelper.rotateSpline(spline, angle);
|
SplineHelper.rotateSpline(spline, angle);
|
||||||
SplineHelper.scale(spline, size + MHelper.randRange(0, size * 0.5F, random));
|
SplineHelper.scale(spline, size + MHelper.randRange(0, size * 0.5F, random));
|
||||||
SplineHelper.offsetParts(spline, random, 1F, 0, 1F);
|
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);
|
Vector3f last = spline.get(spline.size() - 1);
|
||||||
float leavesRadius = (size * 0.3F + MHelper.randRange(0.8F, 1.5F, random)) * 1.4F;
|
float leavesRadius = (size * 0.3F + MHelper.randRange(0.8F, 1.5F, random)) * 1.4F;
|
||||||
OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong());
|
OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong());
|
||||||
|
@ -84,10 +84,10 @@ public class TenaneaFeature extends DefaultFeature {
|
||||||
MutableBlockPos mut = new MutableBlockPos();
|
MutableBlockPos mut = new MutableBlockPos();
|
||||||
for (Direction d1 : BlocksHelper.HORIZONTAL) {
|
for (Direction d1 : BlocksHelper.HORIZONTAL) {
|
||||||
BlockPos p = mut.set(pos).move(Direction.UP).move(d1).immutable();
|
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) {
|
for (Direction d2 : BlocksHelper.HORIZONTAL) {
|
||||||
mut.set(p).move(Direction.UP).move(d2);
|
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();
|
return info.getState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
info.setState(EndBlocks.TENANEA.bark.defaultBlockState());
|
info.setState(EndBlocks.TENANEA.getBark().defaultBlockState());
|
||||||
}
|
}
|
||||||
|
|
||||||
MHelper.shuffle(DIRECTIONS, random);
|
MHelper.shuffle(DIRECTIONS, random);
|
||||||
|
@ -149,7 +149,7 @@ public class TenaneaFeature extends DefaultFeature {
|
||||||
return info.getState();
|
return info.getState();
|
||||||
});
|
});
|
||||||
sphere.fillRecursiveIgnore(world, pos, IGNORE);
|
sphere.fillRecursiveIgnore(world, pos, IGNORE);
|
||||||
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.TENANEA.bark);
|
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.TENANEA.getBark());
|
||||||
|
|
||||||
support.forEach((bpos) -> {
|
support.forEach((bpos) -> {
|
||||||
BlockState state = world.getBlockState(bpos);
|
BlockState state = world.getBlockState(bpos);
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class UmbrellaTreeFeature extends DefaultFeature {
|
||||||
final NoneFeatureConfiguration config = featureConfig.config();
|
final NoneFeatureConfiguration config = featureConfig.config();
|
||||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
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()
|
BlockState membrane = EndBlocks.UMBRELLA_TREE_MEMBRANE.defaultBlockState()
|
||||||
.setValue(UmbrellaTreeMembraneBlock.COLOR, 1);
|
.setValue(UmbrellaTreeMembraneBlock.COLOR, 1);
|
||||||
BlockState center = EndBlocks.UMBRELLA_TREE_MEMBRANE.defaultBlockState()
|
BlockState center = EndBlocks.UMBRELLA_TREE_MEMBRANE.defaultBlockState()
|
||||||
|
@ -113,7 +113,7 @@ public class UmbrellaTreeFeature extends DefaultFeature {
|
||||||
|
|
||||||
sdf.setReplaceFunction(REPLACE).addPostProcess((info) -> {
|
sdf.setReplaceFunction(REPLACE).addPostProcess((info) -> {
|
||||||
if (EndBlocks.UMBRELLA_TREE.isTreeLog(info.getStateUp()) && EndBlocks.UMBRELLA_TREE.isTreeLog(info.getStateDown())) {
|
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)) {
|
else if (info.getState().equals(membrane)) {
|
||||||
Center min = centers.get(0);
|
Center min = centers.get(0);
|
||||||
|
|
|
@ -75,14 +75,14 @@ public class GiantMossyGlowshroomStructure extends SDFStructureFeature {
|
||||||
cone1.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP);
|
cone1.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP);
|
||||||
cone2.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP);
|
cone2.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP);
|
||||||
priGlowCone.setBlock(EndBlocks.MOSSY_GLOWSHROOM_HYMENOPHORE);
|
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);
|
float height = MHelper.randRange(10F, 25F, random);
|
||||||
int count = MHelper.floor(height / 4);
|
int count = MHelper.floor(height / 4);
|
||||||
List<Vector3f> spline = SplineHelper.makeSpline(0, 0, 0, 0, height, 0, count);
|
List<Vector3f> spline = SplineHelper.makeSpline(0, 0, 0, 0, height, 0, count);
|
||||||
SplineHelper.offsetParts(spline, random, 1F, 0, 1F);
|
SplineHelper.offsetParts(spline, random, 1F, 0, 1F);
|
||||||
SDF sdf = SplineHelper.buildSDF(spline, 2.1F, 1.5F, (pos) -> {
|
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);
|
Vector3f pos = spline.get(spline.size() - 1);
|
||||||
float scale = MHelper.randRange(2F, 3.5F, random);
|
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
|
else if (!EndBlocks.MOSSY_GLOWSHROOM.isTreeLog(info.getStateUp()) || !EndBlocks.MOSSY_GLOWSHROOM
|
||||||
.isTreeLog(info.getStateDown())) {
|
.isTreeLog(info.getStateDown())) {
|
||||||
info.setState(EndBlocks.MOSSY_GLOWSHROOM.bark.defaultBlockState());
|
info.setState(EndBlocks.MOSSY_GLOWSHROOM.getBark().defaultBlockState());
|
||||||
return info.getState();
|
return info.getState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue