From 01238800edbd391a9012ab472e29c3753367a284 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Mon, 12 Jul 2021 07:13:23 +0300 Subject: [PATCH] Flower pot plant overriding --- .../ru/betterend/blocks/FlowerPotBlock.java | 18 ++++----- .../blocks/complex/StoneMaterial.java | 35 +++++++++--------- .../ru/betterend/recipe/CraftingRecipes.java | 1 + .../assets/betterend/lang/en_us.json | 11 +++++- .../assets/betterend/lang/ru_ru.json | 10 ++++- .../models/block/cave_grass_potted.json | 6 +++ .../models/block/chorus_grass_potted.json | 6 +++ .../textures/block/cave_grass_potted.png | Bin 0 -> 195 bytes .../textures/block/chorus_grass_potted.png | Bin 0 -> 447 bytes 9 files changed, 59 insertions(+), 28 deletions(-) create mode 100644 src/main/resources/assets/betterend/models/block/cave_grass_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/chorus_grass_potted.json create mode 100644 src/main/resources/assets/betterend/textures/block/cave_grass_potted.png create mode 100644 src/main/resources/assets/betterend/textures/block/chorus_grass_potted.png diff --git a/src/main/java/ru/betterend/blocks/FlowerPotBlock.java b/src/main/java/ru/betterend/blocks/FlowerPotBlock.java index cd216904..d7b3ad47 100644 --- a/src/main/java/ru/betterend/blocks/FlowerPotBlock.java +++ b/src/main/java/ru/betterend/blocks/FlowerPotBlock.java @@ -18,6 +18,8 @@ import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.PackResources; +import net.minecraft.server.packs.PackType; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; @@ -58,6 +60,8 @@ import ru.betterend.interfaces.PottablePlant; import ru.betterend.registry.EndBlocks; import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -65,6 +69,7 @@ import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.SplittableRandom; +import java.util.stream.Stream; public class FlowerPotBlock extends BaseBlockNotFull implements IRenderTyped, IPostInit { private static final IntegerProperty PLANT_ID = EndBlockProperties.PLANT_ID; @@ -243,12 +248,6 @@ public class FlowerPotBlock extends BaseBlockNotFull implements IRenderTyped, IP @Override @Environment(EnvType.CLIENT) public UnbakedModel getModelVariant(ResourceLocation stateId, BlockState blockState, Map modelCache) { - ModelResourceLocation key = new ModelResourceLocation(stateId.getNamespace(), stateId.getPath(), "plant_age=0"); - - if (modelCache.containsKey(key)) { - return modelCache.get(key); - } - MultiPartBuilder model = MultiPartBuilder.create(stateDefinition); model.part(new ModelResourceLocation(stateId.getNamespace(), stateId.getPath(), "inventory")).add(); Transformation offset = new Transformation(new Vector3f(0, 7.5F / 16F, 0), null, null, null); @@ -260,9 +259,10 @@ public class FlowerPotBlock extends BaseBlockNotFull implements IRenderTyped, IP final int compareID = i + 1; ResourceLocation modelPath = Registry.BLOCK.getKey(plants[i]); - ResourceLocation objSource = new ResourceLocation(modelPath.getNamespace(), "block/potted_" + modelPath.getPath() + ".json"); + ResourceLocation objSource = new ResourceLocation(modelPath.getNamespace(), "models/block/" + modelPath.getPath() + "_potted.json"); + if (Minecraft.getInstance().getResourceManager().hasResource(objSource)) { - objSource = new ResourceLocation(modelPath.getNamespace(), "block/potted_" + modelPath.getPath()); + objSource = new ResourceLocation(modelPath.getNamespace(), "block/" + modelPath.getPath() + "_potted"); model.part(objSource).setTransformation(offset).setCondition(state -> state.getValue(PLANT_ID) == compareID).add(); continue; } @@ -335,7 +335,7 @@ public class FlowerPotBlock extends BaseBlockNotFull implements IRenderTyped, IP } UnbakedModel result = model.build(); - modelCache.put(key, result); + modelCache.put(stateId, result); return result; } diff --git a/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java b/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java index 3eaca93f..aa1d06a8 100644 --- a/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java +++ b/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java @@ -36,14 +36,14 @@ public class StoneMaterial { public final Block slab; public final Block wall; public final Block button; - public final Block pressure_plate; + public final Block pressurePlate; public final Block pedestal; public final Block lantern; public final Block bricks; - public final Block brick_stairs; - public final Block brick_slab; - public final Block brick_wall; + public final Block brickStairs; + public final Block brickSlab; + public final Block brickWall; public final Block furnace; public final Block flowerPot; @@ -58,14 +58,14 @@ public class StoneMaterial { slab = EndBlocks.registerBlock(name + "_slab", new BaseSlabBlock(stone)); wall = EndBlocks.registerBlock(name + "_wall", new BaseWallBlock(stone)); button = EndBlocks.registerBlock(name + "_button", new BaseStoneButtonBlock(stone)); - pressure_plate = EndBlocks.registerBlock(name + "_plate", new StonePressurePlateBlock(stone)); + pressurePlate = EndBlocks.registerBlock(name + "_plate", new StonePressurePlateBlock(stone)); pedestal = EndBlocks.registerBlock(name + "_pedestal", new EndPedestal(stone)); lantern = EndBlocks.registerBlock(name + "_lantern", new StoneLanternBlock(stone)); bricks = EndBlocks.registerBlock(name + "_bricks", new BaseBlock(material)); - brick_stairs = EndBlocks.registerBlock(name + "_bricks_stairs", new BaseStairsBlock(bricks)); - brick_slab = EndBlocks.registerBlock(name + "_bricks_slab", new BaseSlabBlock(bricks)); - brick_wall = EndBlocks.registerBlock(name + "_bricks_wall", new BaseWallBlock(bricks)); + brickStairs = EndBlocks.registerBlock(name + "_bricks_stairs", new BaseStairsBlock(bricks)); + brickSlab = EndBlocks.registerBlock(name + "_bricks_slab", new BaseSlabBlock(bricks)); + brickWall = EndBlocks.registerBlock(name + "_bricks_wall", new BaseWallBlock(bricks)); furnace = EndBlocks.registerBlock(name + "_furnace", new BaseFurnaceBlock(bricks)); flowerPot = EndBlocks.registerBlock(name + "_flower_pot", new FlowerPotBlock(bricks)); @@ -77,21 +77,22 @@ public class StoneMaterial { GridRecipe.make(BetterEnd.MOD_ID, name + "_stairs", stairs).checkConfig(Configs.RECIPE_CONFIG).setOutputCount(4).setShape("# ", "## ", "###").addMaterial('#', stone).setGroup("end_stone_stairs").build(); GridRecipe.make(BetterEnd.MOD_ID, name + "_slab", slab).checkConfig(Configs.RECIPE_CONFIG).setOutputCount(6).setShape("###").addMaterial('#', stone).setGroup("end_stone_slabs").build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_stairs", brick_stairs).checkConfig(Configs.RECIPE_CONFIG).setOutputCount(4).setShape("# ", "## ", "###").addMaterial('#', bricks).setGroup("end_stone_stairs").build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_slab", brick_slab).checkConfig(Configs.RECIPE_CONFIG).setOutputCount(6).setShape("###").addMaterial('#', bricks).setGroup("end_stone_slabs").build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_stairs", brickStairs).checkConfig(Configs.RECIPE_CONFIG).setOutputCount(4).setShape("# ", "## ", "###").addMaterial('#', bricks).setGroup("end_stone_stairs").build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_slab", brickSlab).checkConfig(Configs.RECIPE_CONFIG).setOutputCount(6).setShape("###").addMaterial('#', bricks).setGroup("end_stone_slabs").build(); GridRecipe.make(BetterEnd.MOD_ID, name + "_wall", wall).checkConfig(Configs.RECIPE_CONFIG).setOutputCount(6).setShape("###", "###").addMaterial('#', stone).setGroup("end_wall").build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_wall", brick_wall).checkConfig(Configs.RECIPE_CONFIG).setOutputCount(6).setShape("###", "###").addMaterial('#', bricks).setGroup("end_wall").build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_wall", brickWall).checkConfig(Configs.RECIPE_CONFIG).setOutputCount(6).setShape("###", "###").addMaterial('#', bricks).setGroup("end_wall").build(); GridRecipe.make(BetterEnd.MOD_ID, name + "_button", button).checkConfig(Configs.RECIPE_CONFIG).setList("#").addMaterial('#', stone).setGroup("end_stone_buttons").build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_pressure_plate", pressure_plate).checkConfig(Configs.RECIPE_CONFIG).setShape("##").addMaterial('#', stone).setGroup("end_stone_plates").build(); - GridRecipe.make(BetterEnd.MOD_ID, name + "_lantern", lantern).checkConfig(Configs.RECIPE_CONFIG).setShape("S", "#", "S").addMaterial('#', EndItems.CRYSTAL_SHARDS).addMaterial('S', slab, brick_slab).setGroup("end_stone_lanterns").build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_pressure_plate", pressurePlate).checkConfig(Configs.RECIPE_CONFIG).setShape("##").addMaterial('#', stone).setGroup("end_stone_plates").build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_lantern", lantern).checkConfig(Configs.RECIPE_CONFIG).setShape("S", "#", "S").addMaterial('#', EndItems.CRYSTAL_SHARDS).addMaterial('S', slab, brickSlab).setGroup("end_stone_lanterns").build(); GridRecipe.make(BetterEnd.MOD_ID, name + "_furnace", furnace).checkConfig(Configs.RECIPE_CONFIG).setShape("###", "# #", "###").addMaterial('#', stone).setGroup("end_stone_furnaces").build(); + GridRecipe.make(BetterEnd.MOD_ID, name + "_flower_pot", flowerPot).checkConfig(Configs.RECIPE_CONFIG).setOutputCount(3).setShape("# #", " # ").addMaterial('#', bricks).setGroup("end_pots").build(); CraftingRecipes.registerPedestal(name + "_pedestal", pedestal, slab, pillar); // Item Tags // - TagHelper.addTag(ItemTags.SLABS, slab, brick_slab); + TagHelper.addTag(ItemTags.SLABS, slab, brickSlab); TagHelper.addTag(ItemTags.STONE_BRICKS, bricks); TagHelper.addTag(ItemTags.STONE_CRAFTING_MATERIALS, stone); TagHelper.addTag(ItemTags.STONE_TOOL_MATERIALS, stone); @@ -99,9 +100,9 @@ public class StoneMaterial { // Block Tags // TagHelper.addTag(BlockTags.STONE_BRICKS, bricks); - TagHelper.addTag(BlockTags.WALLS, wall, brick_wall); - TagHelper.addTag(BlockTags.SLABS, slab, brick_slab); - TagHelper.addTags(pressure_plate, BlockTags.PRESSURE_PLATES, BlockTags.STONE_PRESSURE_PLATES); + TagHelper.addTag(BlockTags.WALLS, wall, brickWall); + TagHelper.addTag(BlockTags.SLABS, slab, brickSlab); + TagHelper.addTags(pressurePlate, BlockTags.PRESSURE_PLATES, BlockTags.STONE_PRESSURE_PLATES); TagHelper.addTag(TagAPI.END_STONES, stone); TagHelper.addTag(TagAPI.DRAGON_IMMUNE, stone, stairs, slab, wall); diff --git a/src/main/java/ru/betterend/recipe/CraftingRecipes.java b/src/main/java/ru/betterend/recipe/CraftingRecipes.java index 99b022ad..d83ae9e9 100644 --- a/src/main/java/ru/betterend/recipe/CraftingRecipes.java +++ b/src/main/java/ru/betterend/recipe/CraftingRecipes.java @@ -122,6 +122,7 @@ public class CraftingRecipes { GridRecipe.make(BetterEnd.MOD_ID, "neon_cactus_block_stairs", EndBlocks.NEON_CACTUS_BLOCK_STAIRS).checkConfig(Configs.RECIPE_CONFIG).setShape("# ", "## ", "###").setOutputCount(4).addMaterial('#', EndBlocks.NEON_CACTUS_BLOCK).build(); GridRecipe.make(BetterEnd.MOD_ID, "sugar_from_root", Items.SUGAR).checkConfig(Configs.RECIPE_CONFIG).setList("###").addMaterial('#', EndItems.AMBER_ROOT_RAW).build(); + GridRecipe.make(BetterEnd.MOD_ID, "endstone_flower_pot", EndBlocks.ENDSTONE_FLOWER_POT).checkConfig(Configs.RECIPE_CONFIG).setOutputCount(3).setShape("# #", " # ").addMaterial('#', Blocks.END_STONE_BRICKS).setGroup("end_pots").build(); } private static void registerLantern(String name, Block lantern, Block slab) { diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index df012d66..62c1c097 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -874,5 +874,14 @@ "tooltip.armor.crystalite_set": "Set bonus: Regeneration I", "tooltip.armor.crystalite_chest": "Effect: Dig Speed I", - "tooltip.armor.crystalite_boots": "Effect: Swiftness I" + "tooltip.armor.crystalite_boots": "Effect: Swiftness I", + + "block.betterend.azure_jadestone_flower_pot": "Azure Jadestone Flower Pot", + "block.betterend.endstone_flower_pot": "Endstone Flower Pot", + "block.betterend.flavolite_flower_pot": "Flavolite Flower Pot", + "block.betterend.sandy_jadestone_flower_pot": "Sandy Jadestone Flower Pot", + "block.betterend.sulphuric_rock_flower_pot": "Sulphuric Rock Flower Pot", + "block.betterend.violecite_flower_pot": "Violecite Flower Pot", + "block.betterend.virid_jadestone_flower_pot": "Virid Jadestone Flower Pot", + "block.betterend.virid_jadestone_flower_pot": "Virid Jadestone Flower Pot" } diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index de2fb5b4..ada69545 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -890,5 +890,13 @@ "tooltip.armor.crystalite_set": "Бонус сета: Регенерация I", "tooltip.armor.crystalite_chest": "Эффект: Ускорение I", - "tooltip.armor.crystalite_boots": "Эффект: Стремительность I" + "tooltip.armor.crystalite_boots": "Эффект: Стремительность I", + + "block.betterend.azure_jadestone_flower_pot": "Цветочный горшок из лазурного нефрита", + "block.betterend.endstone_flower_pot": "Цветочный горшок из эндерняка", + "block.betterend.flavolite_flower_pot": "Цветочный горшок из флаволита", + "block.betterend.sandy_jadestone_flower_pot": "Цветочный горшок из песчаного нефрита", + "block.betterend.sulphuric_rock_flower_pot": "Цветочный горшок из серного камня", + "block.betterend.violecite_flower_pot": "Цветочный горшок из виолецита", + "block.betterend.virid_jadestone_flower_pot": "Цветочный горшок из зелёного нефрита" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/cave_grass_potted.json b/src/main/resources/assets/betterend/models/block/cave_grass_potted.json new file mode 100644 index 00000000..618a68dc --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/cave_grass_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/cave_grass_potted" + } +} diff --git a/src/main/resources/assets/betterend/models/block/chorus_grass_potted.json b/src/main/resources/assets/betterend/models/block/chorus_grass_potted.json new file mode 100644 index 00000000..f7a83d0c --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/chorus_grass_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/chorus_grass_potted" + } +} diff --git a/src/main/resources/assets/betterend/textures/block/cave_grass_potted.png b/src/main/resources/assets/betterend/textures/block/cave_grass_potted.png new file mode 100644 index 0000000000000000000000000000000000000000..93c166972e718ddd7cfc5c9d33f05c3907c56ee3 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~i2$DvS0Ft{ z#%qm1(j1@e?$jm4t!J|qK8xD+Eq{~ad7vCeNswPK!+!|4dMd;SDCX+v;us<^wYSfa z?|=gbQ{ct__LbR}mT)gGntie3!2L54=FyT1xIHhkM5cM2T{CfV_PVJzGnY;aITjmq j`fu(0WBr{6qH7ppa~Lk}R}Ad~8pz=3>gTe~DWM4fX+cOc literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/chorus_grass_potted.png b/src/main/resources/assets/betterend/textures/block/chorus_grass_potted.png new file mode 100644 index 0000000000000000000000000000000000000000..0683b711a943643b108cb286bf532113d2d1937c GIT binary patch literal 447 zcmV;w0YLtVP)Px$c}YY;R5*>*k}*poQ51#08)i&+AXY&Tgn+EgHrv>UporLS?}ABZX(bkdEUX~@ z2enLTZ=oV-EG#U9tb%06fTF@`!Z?v+j@8a)G=bgH0}tML_uj)fmj@pn)=eYzTVb)MmU-|N~%xQspLJ*#(g8C1pGlixepA@D+)@A zf)drB`fmac;R67BGkem@74=$$daXh`+wLpib(7o1ExVJu0?3VSTlwn`bvhk+-ZKCz z<15I_QO-HyI3@@Klcan;Z;eJnzVBQ4qMZ5%DF?+*Ma;||TaRkB pTGnhgan5mle~s_^