From 4910c0568e5f275428e87e2860b1c43c8e8f467e Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 17 Dec 2020 12:03:12 +0300 Subject: [PATCH] Silk moth nest --- .../ru/betterend/blocks/BlockBrimstone.java | 2 +- .../blocks/BlockHydrothermalVent.java | 2 +- .../ru/betterend/blocks/BlockProperties.java | 2 +- .../betterend/blocks/BlockSilkMothNest.java | 52 ++++++++++++++++++ .../ru/betterend/blocks/EternalPedestal.java | 2 +- .../ru/betterend/blocks/RunedFlavolite.java | 2 +- .../java/ru/betterend/registry/EndBlocks.java | 4 ++ .../ru/betterend/rituals/EternalRitual.java | 2 +- .../features/terrain/SulphurHillFeature.java | 2 +- .../terrain/SulphuricCaveFeature.java | 4 +- .../terrain/SulphuricLakeFeature.java | 4 +- .../betterend/blockstates/silk_moth_nest.json | 9 +++ .../models/block/silk_moth_nest_bottom.json | 37 +++++++++++++ .../models/block/silk_moth_nest_top.json | 6 ++ .../betterend/models/item/silk_moth_nest.json | 3 + .../textures/block/silk_moth_nest_connect.png | Bin 0 -> 1879 bytes .../textures/block/silk_moth_nest_front.png | Bin 0 -> 301 bytes .../block/silk_moth_nest_front_silk.png | Bin 0 -> 322 bytes .../textures/block/silk_moth_nest_side.png | Bin 0 -> 276 bytes .../textures/block/silk_moth_nest_top.png | Bin 0 -> 288 bytes 20 files changed, 122 insertions(+), 11 deletions(-) create mode 100644 src/main/java/ru/betterend/blocks/BlockSilkMothNest.java create mode 100644 src/main/resources/assets/betterend/blockstates/silk_moth_nest.json create mode 100644 src/main/resources/assets/betterend/models/block/silk_moth_nest_bottom.json create mode 100644 src/main/resources/assets/betterend/models/block/silk_moth_nest_top.json create mode 100644 src/main/resources/assets/betterend/models/item/silk_moth_nest.json create mode 100644 src/main/resources/assets/betterend/textures/block/silk_moth_nest_connect.png create mode 100644 src/main/resources/assets/betterend/textures/block/silk_moth_nest_front.png create mode 100644 src/main/resources/assets/betterend/textures/block/silk_moth_nest_front_silk.png create mode 100644 src/main/resources/assets/betterend/textures/block/silk_moth_nest_side.png create mode 100644 src/main/resources/assets/betterend/textures/block/silk_moth_nest_top.png diff --git a/src/main/java/ru/betterend/blocks/BlockBrimstone.java b/src/main/java/ru/betterend/blocks/BlockBrimstone.java index 09d8963f..7cbc9008 100644 --- a/src/main/java/ru/betterend/blocks/BlockBrimstone.java +++ b/src/main/java/ru/betterend/blocks/BlockBrimstone.java @@ -18,7 +18,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; public class BlockBrimstone extends BlockBase { - public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVATED; + public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVE; public BlockBrimstone() { super(FabricBlockSettings.copyOf(Blocks.END_STONE).materialColor(MaterialColor.BROWN).ticksRandomly()); diff --git a/src/main/java/ru/betterend/blocks/BlockHydrothermalVent.java b/src/main/java/ru/betterend/blocks/BlockHydrothermalVent.java index 64f77b92..b433ebcd 100644 --- a/src/main/java/ru/betterend/blocks/BlockHydrothermalVent.java +++ b/src/main/java/ru/betterend/blocks/BlockHydrothermalVent.java @@ -44,7 +44,7 @@ import ru.betterend.util.BlocksHelper; public class BlockHydrothermalVent extends BlockBaseNotFull implements BlockEntityProvider, FluidFillable, Waterloggable { public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; - public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVATED; + public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVE; private static final VoxelShape SHAPE = Block.createCuboidShape(1, 1, 1, 15, 16, 15); public BlockHydrothermalVent() { diff --git a/src/main/java/ru/betterend/blocks/BlockProperties.java b/src/main/java/ru/betterend/blocks/BlockProperties.java index ef458715..bc10e067 100644 --- a/src/main/java/ru/betterend/blocks/BlockProperties.java +++ b/src/main/java/ru/betterend/blocks/BlockProperties.java @@ -12,7 +12,7 @@ public class BlockProperties { public static final EnumProperty PENTA_SHAPE = EnumProperty.of("shape", PentaShape.class); public static final BooleanProperty HAS_ITEM = BooleanProperty.of("has_item"); public static final BooleanProperty HAS_LIGHT = BooleanProperty.of("has_light"); - public static final BooleanProperty ACTIVATED = BooleanProperty.of("active"); + public static final BooleanProperty ACTIVE = BooleanProperty.of("active"); public static final IntProperty ROTATION = IntProperty.of("rotation", 0, 3); public static enum TripleShape implements StringIdentifiable { diff --git a/src/main/java/ru/betterend/blocks/BlockSilkMothNest.java b/src/main/java/ru/betterend/blocks/BlockSilkMothNest.java new file mode 100644 index 00000000..67adce21 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/BlockSilkMothNest.java @@ -0,0 +1,52 @@ +package ru.betterend.blocks; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Material; +import net.minecraft.block.ShapeContext; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.BooleanProperty; +import net.minecraft.state.property.DirectionProperty; +import net.minecraft.state.property.Properties; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.world.BlockView; +import ru.betterend.blocks.basis.BlockBase; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; + +public class BlockSilkMothNest extends BlockBase implements IRenderTypeable { + public static final BooleanProperty ACTIVE = BlockProperties.ACTIVE; + public static final DirectionProperty FACING = Properties.HORIZONTAL_FACING; + private static final VoxelShape TOP = createCuboidShape(6, 0, 6, 10, 16, 10); + private static final VoxelShape BOTTOM = createCuboidShape(0, 0, 0, 16, 16, 16); + + public BlockSilkMothNest() { + super(FabricBlockSettings.of(Material.WOOL).hardness(0.5F).resistance(0.1F).nonOpaque()); + this.setDefaultState(getDefaultState().with(ACTIVE, true)); + } + + @Override + protected void appendProperties(StateManager.Builder stateManager) { + stateManager.add(ACTIVE, FACING); + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext ePos) { + return state.get(ACTIVE) ? BOTTOM : TOP; + } + + @Override + public ERenderLayer getRenderLayer() { + return ERenderLayer.CUTOUT; + } + + @Override + public BlockState getPlacementState(ItemPlacementContext ctx) { + Direction dir = ctx.getPlayerFacing().getOpposite(); + return this.getDefaultState().with(FACING, dir); + } +} diff --git a/src/main/java/ru/betterend/blocks/EternalPedestal.java b/src/main/java/ru/betterend/blocks/EternalPedestal.java index 72818195..12333694 100644 --- a/src/main/java/ru/betterend/blocks/EternalPedestal.java +++ b/src/main/java/ru/betterend/blocks/EternalPedestal.java @@ -30,7 +30,7 @@ import ru.betterend.registry.EndItems; import ru.betterend.rituals.EternalRitual; public class EternalPedestal extends BlockPedestal { - public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVATED; + public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVE; public EternalPedestal() { super(EndBlocks.FLAVOLITE_RUNED_ETERNAL); diff --git a/src/main/java/ru/betterend/blocks/RunedFlavolite.java b/src/main/java/ru/betterend/blocks/RunedFlavolite.java index 47e207a8..9e4b18d4 100644 --- a/src/main/java/ru/betterend/blocks/RunedFlavolite.java +++ b/src/main/java/ru/betterend/blocks/RunedFlavolite.java @@ -10,7 +10,7 @@ import ru.betterend.blocks.basis.BlockBase; import ru.betterend.registry.EndBlocks; public class RunedFlavolite extends BlockBase { - public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVATED; + public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVE; public RunedFlavolite() { super(FabricBlockSettings.copyOf(EndBlocks.FLAVOLITE.polished).resistance(Blocks.OBSIDIAN.getBlastResistance()).luminance(state -> { diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index ffac7064..6925a9f6 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -57,6 +57,7 @@ import ru.betterend.blocks.BlockPythadendronSapling; import ru.betterend.blocks.BlockRespawnObelisk; import ru.betterend.blocks.BlockShadowBerry; import ru.betterend.blocks.BlockShadowGrass; +import ru.betterend.blocks.BlockSilkMothNest; import ru.betterend.blocks.BlockSulphurCrystal; import ru.betterend.blocks.BlockTenaneaFlowers; import ru.betterend.blocks.BlockTenaneaSapling; @@ -235,6 +236,9 @@ public class EndBlocks { public static final Block BULB_VINE_SEED = registerBlock("bulb_vine_seed", new BlockBulbVineSeed()); public static final Block BULB_VINE = registerBlock("bulb_vine", new BlockBulbVine()); + // Mob-Related + public static final Block SILK_MOTH_NEST = registerBlock("silk_moth_nest", new BlockSilkMothNest()); + // Ores // public static final Block ENDER_ORE = registerBlock("ender_ore", new BlockOre(EndItems.ENDER_SHARD, 1, 3, 5)); public static final Block AMBER_ORE = registerBlock("amber_ore", new BlockOre(EndItems.RAW_AMBER, 1, 2, 4)); diff --git a/src/main/java/ru/betterend/rituals/EternalRitual.java b/src/main/java/ru/betterend/rituals/EternalRitual.java index 4f4dabd1..b98f404b 100644 --- a/src/main/java/ru/betterend/rituals/EternalRitual.java +++ b/src/main/java/ru/betterend/rituals/EternalRitual.java @@ -56,7 +56,7 @@ public class EternalRitual { private final static Block PEDESTAL = EndBlocks.ETERNAL_PEDESTAL; private final static Block FRAME = EndBlocks.FLAVOLITE_RUNED_ETERNAL; private final static Block PORTAL = EndBlocks.END_PORTAL_BLOCK; - private final static BooleanProperty ACTIVE = BlockProperties.ACTIVATED; + private final static BooleanProperty ACTIVE = BlockProperties.ACTIVE; private World world; private Direction.Axis axis; diff --git a/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java b/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java index d5baa151..73728a0f 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java @@ -45,7 +45,7 @@ public class SulphurHillFeature extends DefaultFeature { int max = radius + 4; Mutable mut = new Mutable(); BlockState rock = EndBlocks.SULPHURIC_ROCK.stone.getDefaultState(); - BlockState brimstone = EndBlocks.BRIMSTONE.getDefaultState().with(BlockProperties.ACTIVATED, true); + BlockState brimstone = EndBlocks.BRIMSTONE.getDefaultState().with(BlockProperties.ACTIVE, true); for (int x = min; x < max; x++) { int x2 = x * x; int px = pos.getX() + x; diff --git a/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java index f1070531..de611ef1 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java @@ -156,7 +156,7 @@ public class SulphuricCaveFeature extends DefaultFeature { private void placeBrimstone(StructureWorldAccess world, BlockPos pos, Random random) { BlockState state = getBrimstone(world, pos); BlocksHelper.setWithoutUpdate(world, pos, state); - if (state.get(BlockProperties.ACTIVATED)) { + if (state.get(BlockProperties.ACTIVE)) { makeShards(world, pos, random); } } @@ -164,7 +164,7 @@ public class SulphuricCaveFeature extends DefaultFeature { private BlockState getBrimstone(StructureWorldAccess world, BlockPos pos) { for (Direction dir: BlocksHelper.DIRECTIONS) { if (world.getBlockState(pos.offset(dir)).isOf(Blocks.WATER)) { - return EndBlocks.BRIMSTONE.getDefaultState().with(BlockProperties.ACTIVATED, true); + return EndBlocks.BRIMSTONE.getDefaultState().with(BlockProperties.ACTIVE, true); } } return EndBlocks.BRIMSTONE.getDefaultState(); diff --git a/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java b/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java index a62adeac..b368a575 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java @@ -176,7 +176,7 @@ public class SulphuricLakeFeature extends DefaultFeature { private void placeBrimstone(StructureWorldAccess world, BlockPos pos, Random random) { BlockState state = getBrimstone(world, pos); BlocksHelper.setWithoutUpdate(world, pos, state); - if (state.get(BlockProperties.ACTIVATED)) { + if (state.get(BlockProperties.ACTIVE)) { makeShards(world, pos, random); } } @@ -184,7 +184,7 @@ public class SulphuricLakeFeature extends DefaultFeature { private BlockState getBrimstone(StructureWorldAccess world, BlockPos pos) { for (Direction dir: BlocksHelper.DIRECTIONS) { if (world.getBlockState(pos.offset(dir)).isOf(Blocks.WATER)) { - return EndBlocks.BRIMSTONE.getDefaultState().with(BlockProperties.ACTIVATED, true); + return EndBlocks.BRIMSTONE.getDefaultState().with(BlockProperties.ACTIVE, true); } } return EndBlocks.BRIMSTONE.getDefaultState(); diff --git a/src/main/resources/assets/betterend/blockstates/silk_moth_nest.json b/src/main/resources/assets/betterend/blockstates/silk_moth_nest.json new file mode 100644 index 00000000..332f6ffc --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/silk_moth_nest.json @@ -0,0 +1,9 @@ +{ + "variants": { + "active=false": { "model": "betterend:block/silk_moth_nest_top" }, + "active=true,facing=north": { "model": "betterend:block/silk_moth_nest_bottom" }, + "active=true,facing=south": { "model": "betterend:block/silk_moth_nest_bottom", "y": 180 }, + "active=true,facing=east": { "model": "betterend:block/silk_moth_nest_bottom", "y": 90 }, + "active=true,facing=west": { "model": "betterend:block/silk_moth_nest_bottom", "y": 270 } + } +} diff --git a/src/main/resources/assets/betterend/models/block/silk_moth_nest_bottom.json b/src/main/resources/assets/betterend/models/block/silk_moth_nest_bottom.json new file mode 100644 index 00000000..16caad7b --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/silk_moth_nest_bottom.json @@ -0,0 +1,37 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "parent": "block/block", + "textures": { + "particle": "betterend:block/silk_moth_nest_side", + "texture": "betterend:block/silk_moth_nest_side", + "top": "betterend:block/silk_moth_nest_top", + "front": "betterend:block/silk_moth_nest_front" + }, + "elements": [ + { + "__comment": "Box1", + "from": [ 0, 0, 0 ], + "to": [ 16, 12, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 4, 16, 16 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 4, 16, 16 ], "texture": "#front", "cullface": "south" }, + "west": { "uv": [ 0, 4, 16, 16 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 4, 16, 16 ], "texture": "#texture", "cullface": "east" } + } + }, + { + "__comment": "Box1", + "from": [ 3, 12, 3 ], + "to": [ 13, 16, 13 ], + "faces": { + "up": { "uv": [ 3, 3, 13, 13 ], "texture": "#top", "cullface": "up" }, + "north": { "uv": [ 3, 0, 13, 4 ], "texture": "#texture" }, + "south": { "uv": [ 3, 0, 13, 4 ], "texture": "#texture" }, + "west": { "uv": [ 3, 0, 13, 4 ], "texture": "#texture" }, + "east": { "uv": [ 3, 0, 13, 4 ], "texture": "#texture" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/silk_moth_nest_top.json b/src/main/resources/assets/betterend/models/block/silk_moth_nest_top.json new file mode 100644 index 00000000..009d4596 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/silk_moth_nest_top.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/cross_no_distortion", + "textures": { + "texture": "betterend:block/silk_moth_nest_connect" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/item/silk_moth_nest.json b/src/main/resources/assets/betterend/models/item/silk_moth_nest.json new file mode 100644 index 00000000..737ea925 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/silk_moth_nest.json @@ -0,0 +1,3 @@ +{ + "parent": "betterend:block/silk_moth_nest_bottom" +} diff --git a/src/main/resources/assets/betterend/textures/block/silk_moth_nest_connect.png b/src/main/resources/assets/betterend/textures/block/silk_moth_nest_connect.png new file mode 100644 index 0000000000000000000000000000000000000000..87943face908c6ec3def7e3e5a2b551fbaaf6768 GIT binary patch literal 1879 zcmbVNeP|nH9KKo%S!ie3lr|gK<63aiUhXSNbH~y)Cao=)Si019D6Vhr-Xymscjw); zN$W;uOE>3VWgr9R7z{yWVy*b`hl7^2LsVQ5DXjRhRZwL9QP?OV+Q#?tWh>n*1}^vB z-Sa-r^ZU5po$ZM{UF|sFz%Z=3yDQX-&NbFyx1s;~dpUqkd$g{j28Qijw2q3`oAw^W zu!p~qqXXtZ_!&V|(=H&XG3d&sHH5~n!);j&h(plCV=y5req!yjIRcj@Khf_A(_t+L zlXBOX4v&mQqT<+)$V)_9D}FdDAc8bB0iI2#6hp}Ri9D}>*4Ax`!1EAu$WH_;L3|+G zg9lX|;vScm6d5;*x9~2;OY^L|8E0vxg`!(1h9hZ4puGae^oBZ%TIkA8 zBu!HjC@Pc5xH6ne)e{uM^E^ef6w8tbK^miq39_VOG?W-Z&=7T5Gi6o5Ek+PihfP0$ zoEAbzYh_x+D5eP|jLHIyVqCNpQXVLYWt=vwr}E;GNWm0LL&Y=@mMLSkq-v^0QoRp# z`SCUZl-h8(tg)k)bh<2Im>nZ1jABA|L>tjj4N|?(P=|F9c8nmK4OTRo5Y!EsOS3e|uq4wGWf;ND3LMi!a{^5lpkY;# za*Yk#57 zB~?Tm|EMx7?`3(GC!sGUk}=L5BV%#Y&Mb@A-J&q7YYL^I{#~{Fvn_L}1V_WpT9&6Qx+u?Ss32+`O<}^( z_ZEg#G&X*K^Pf}pPnu>93-(8TgL-g7Yb4!?Gv47?m*I4`MIR$IR>-|^H?7JIsV%0q#G_Kg@AKLe5 zrR2mMU7e?MKF|K2ryi;QQEYtta`nxt$!obQ{nX_CnxnQ;FJO-L53AbsR$oov_$wgr zW(EHCyGuA>)1|qB%vJ05m#03r|oc-YR{zULQ`k_36 ztN1S0O_1xoGD|8$<+){a&k6a!eZ^-q`e&`5+W%m=;ohA759`EByjU*%U$EvK`z|H9 U?07XvkQW&|UHx3vIVCg!0I02E!TIG_U#7_9000? zgKMc=N0fk$L90|Vb-5N14{zaj-FINQ_3F+}1r;{=BM{|v^)t`!}{rXdW0;T`Rz zL90v{T*J#ll|6SUF&KMIbz)FkY0TifdZ)6Wk%}{e(X3@I?j02+49=R#kt<8X%Nd-E z)MxJsbq!@u5O&R4X}!~hK~YFaEm?clB!*J2DZ$2`t5O-tSMRK74W4GsP%&#+cmT6Y yC_}hrnu&psvIv8VvjLN_dZ{sku@caLigxEc$=cPmyAIC=dBoGz&t;ucLK6Vk=U}P; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/silk_moth_nest_side.png b/src/main/resources/assets/betterend/textures/block/silk_moth_nest_side.png new file mode 100644 index 0000000000000000000000000000000000000000..9c2ac351ee7be414efad73bdc2099dc618aaaa58 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFC~3(%ccNj@PNag-2MWkISV`@iy0XB4ude` z@%$AjK*3y37sn8Z%d&leg3X2;&B5$T%^B?tSXo({tu+3v?Rm?p_fwCh;meg?-p{)v zw=JBf)+2AID6sHo#HD+0zOMVsxZbZ-ecscV(Q7B>DGFV9^W=q~&OCn2O|N3M9r66E p;9GIxR;}C~3(%ccNj@PNag-2MWkISV`@iy0XB4ude` z@%$AjK*35+7sn8Z%e-e!^D-;)v^-=?egEL@ok~#$1(639(F_w`?w?vP%U|jxyU(ZC zKXI>4PJdQ#PpkLH!i>+B83#IkuRAY(C6K=+=f;^e?D-lS?bMFElB`^OQ*eEiZ%s_x z*{Pl7TTaeCsA123VS7`Xo0d?*r@hlm-t5z##Pl!EPk6e|X1|XhhkLsExvX