From a81603bd3ea4329ccfb7f8c3c01a65e905af3bc2 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 15 Oct 2020 02:33:18 +0300 Subject: [PATCH] Custom block property --- .../mixin/common/ChorusPlantBlockMixin.java | 28 ++++++++++++++++++ .../block/pythadendron_log_side_mossy.png | Bin 375 -> 2466 bytes .../block/pythadendron_log_side_mossy_2.png | Bin 0 -> 2329 bytes 3 files changed, 28 insertions(+) create mode 100644 src/main/resources/assets/betterend/textures/block/pythadendron_log_side_mossy_2.png diff --git a/src/main/java/ru/betterend/mixin/common/ChorusPlantBlockMixin.java b/src/main/java/ru/betterend/mixin/common/ChorusPlantBlockMixin.java index 96024254..56d9999d 100644 --- a/src/main/java/ru/betterend/mixin/common/ChorusPlantBlockMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ChorusPlantBlockMixin.java @@ -3,16 +3,31 @@ package ru.betterend.mixin.common; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import net.minecraft.block.Block; import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; import net.minecraft.block.ChorusPlantBlock; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.BooleanProperty; +import net.minecraft.state.property.Properties; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.BlockView; import net.minecraft.world.WorldView; import ru.betterend.registry.BlockRegistry; +import ru.betterend.registry.BlockTagRegistry; @Mixin(ChorusPlantBlock.class) public class ChorusPlantBlockMixin { + private static final BooleanProperty ROOTS = BooleanProperty.of("roots"); + + @Inject(method = "appendProperties", at = @At("TAIL")) + private void addProperties(StateManager.Builder builder, CallbackInfo info) { + builder.add(ROOTS); + } + @Inject(method = "canPlaceAt", at = @At("HEAD"), cancellable = true) private void canPlace(BlockState state, WorldView world, BlockPos pos, CallbackInfoReturnable info) { if (world.getBlockState(pos.down()).isOf(BlockRegistry.CHORUS_NYLIUM)) { @@ -20,4 +35,17 @@ public class ChorusPlantBlockMixin { info.cancel(); } } + + @Inject(method = "withConnectionProperties", at = @At("RETURN"), cancellable = true) + private void withConnectionProperties(BlockView world, BlockPos pos, CallbackInfoReturnable info) { + BlockState plant = info.getReturnValue(); + if (plant.isOf(Blocks.CHORUS_PLANT)) { + if (!plant.get(Properties.DOWN) && world.getBlockState(pos.down()).isIn(BlockTagRegistry.END_GROUND)) { + info.setReturnValue(plant.with(Properties.DOWN, true).with(ROOTS, true)); + } + else { + info.setReturnValue(plant.with(ROOTS, false)); + } + } + } } diff --git a/src/main/resources/assets/betterend/textures/block/pythadendron_log_side_mossy.png b/src/main/resources/assets/betterend/textures/block/pythadendron_log_side_mossy.png index bc53c4c112cad9b1b29760d75a51ed9a286ab182..cb6c8ef0d1e4155ee518862e4f7d8f32f855da51 100644 GIT binary patch literal 2466 zcmb_e3sBQ$953ol=L3Z?H_9E$f-okgN%~HtAW{{SB7-8RcWOw|HiIUiNom13Z*zJ& zPjTV{!N=6;PItO_=g^zaosS)Y;(U9^7|!RpJ3Kbw=5t?5+xZ^n)@zzC$?yOB|NgIh zU67MKZcu+^e}zIZC^N&H3(iA)N55X+cgYtHJvhBCW=xh8itxj}BW!t6c#J~PH;%Iw z%7vCJk`|mQiV=!fmDec(v_g@b>J=%vn3bU-*3R)JxP8w77~&WcT%faH7BQW5a2XXY zHm@SvN>>!q1Oun0K*?Sb5I9+xg1pWWULw6F*w0IXweL0xLw<-{Y=YB#4xvIz4wNpq zSV*VRBQ&m6Lk2>H>oG#D9RaB^+<;;R6xSdaPGWjeLqLHK47|A*8<}e!8}J3LOt3?i zMG{3l9*@eSQ3)aMgRhl%6XacBD@qAWH7T5?czk46L`qSNEHcg*#rZn z-61%|5G^kS(gYHQdMOdbRhTa%KainAIMMAY@jGW|lr3SMEH6s{i-)kHLy!f@A-sS( z^!Nz}Ahi}t$j5WFIGrIEl02pigb_%{bJ3EuTx8K)RubGUnjKRHWXAcT5y^BHOUZ)E zDhMUPLgfS{L+R5x5H22UN#`X#FD zkK1~E`t8X+_`En*`yIE@(y)(GC6f#{!AkCPgV)aZi~@rvpL^t6NG z?JRhQqws%-r$_VgqG~)f;s0wq{%-AVHT3B&^gny-O&@G&uzmQJp?wQngmylb2dQ#_ zeXXqalL-n%ulP)Jnl-V>vh+Z4-Um@XwKr7Sv(|EX({Ck3oIZNt)KYU=;*s^?u*iyH~Rji*e$=bxtc25 z|N6LzIA2{;-T4t()p#bx9XsiatE**xbldu6k%PNVU#i-4JRZFnbF*z=*q+uE)m7s7 zv$Cr) z`YrEJ$fFi6x;&uk>K_da$txB%Z6A4F+z_^9e&b?WQtI%{tTIWH#Oy6?&944!+0Ofg z#wfn}-b(BKE3@ z9XV{{v{k*KH4jk5^>3~XABHuo$k}mc)`Z>+yX>7w*~gN{b$1+2#VQ-g2Z>#MbWKOwIo`@ZXbcN?OcF@?3?8WQi=RJBjcjnwF z>n}QshW@ZF(Rq7i_0Hz9E^=m{6!~1`o9QFpTGt|`PW#@@Y@QOCw_(_+hL-+e%H^#I z2TnemRpZR6&1=*eqwbE3kFM+U>+*?nWBYvh+1B^=Wi+2^__=mo*i>`DuGx`G*38FN fcQhZl@}O`1Bx>-MWAY5&zo^VH+2-w|XMFlMzR6_> delta 349 zcmV-j0iyn*6ZZm;BYy!tNklpO-=$q5QX~=W`eUI7&Asiegu>;K!_%~GsZP1 z7!yvw88`tej>6IW+Rqe|bSkf^Ue~Lt?lixD>GuX-i*Et;x~v2d!Ja-(o8AUmBF%{$ zAwb;0g(rJA++h<58Nucp*GF>37uD*a9Aca4&t0dVl!HM5(tqH?@-Q!I>)9%Cz+-m` zPEsf3%#u)-RRoDtD6@sZfYs}-&1mR_!qJ}-Ycp`ot zTFU@bbucXL{cHZUM4)tUYiV?u36_3kF#c1sP>ce$$XM8y! z!hIGM*HY9V>Q)_wvrjO==B822(#cKlpZ8SS-fr6+g9*}S>@+L53Vajs+gyXM;ZDz6 va@i*0Q`vx3VLL#6X?=4h;??}&Z5R9tZd|cPBDVQt00000NkvXXu0mjf`;n!x diff --git a/src/main/resources/assets/betterend/textures/block/pythadendron_log_side_mossy_2.png b/src/main/resources/assets/betterend/textures/block/pythadendron_log_side_mossy_2.png new file mode 100644 index 0000000000000000000000000000000000000000..0d247e65f349f43e2156330c8f25aa4caae306bc GIT binary patch literal 2329 zcmb_eeQXnD9PZ}F*a*uQXpBH|-24FXdUtKF?VWUUYd2e5VQeLAVsLNo-fPdbcjfN3 zb|5O-kPQ_W;Ul04`vZbtAcEmT7Dfm-gh&>IF+hw7i}(kLWRPeA0>0O^m2Vef)9bx= z_xzsU^ZUBD9aS^m8k6^8p2=hyZ2^XH^<#xGxiV88tY$tfyX2Be+nYL4`#r8U8p=bw5IY`<{P&7x`IV+2$J~;BG3L;nSsYv-k zS1vrP>oJZb<5el9ONxvcj3B5q z>Mk599S$KH%h1YNDorS1WCFxU+DsWCC4mB;!NnTYNYc5$lQ06KP}Vhsr8C%ASkVYdoM57rOnqJ<7!bm0Lp=d489D`&v)Rab*hviL3W|0w1jB~3H z=!zOplt{WzRcXnX+ieuaiA|X+$$}Esrru=(JwS&p+(KC>f<|8^KvA59;TU=vW#uSp z80uF9No;-)N^@2Owci6pT_XS;{3lr8IZ;ug0L3gtK?ssDIfP@GOmc1|qNvC*QfE!7 z@cTKRtm#1Jq0i&OQP^fl5;&0wS|AirGX|lP2nsfuU|G9^2#O8>d5Yy}z^3gz3g2iH zH*GHg&608W7sAjJw|+J2TQq2U6NC+0yz@Na}^mQoav zhN`EfMx+dcQmcqmY=k*dnbS#Q9*_|>yc#AVAMY{QrJPqX6f~#&*1!cB1z55%IlvnO z=fZiT)1ZK-Zc7iT$jCA}OdAhFMEaQa8-{6$sKF_fh~D8O{^aqD zY(5@Ujr%72e~l;Et;4NG-rt4EXLr5n(=Cm*4`Z3xx6nmq=Yujzm5TPYIWunbm`qt; z`aGq9DSiIceKX2t7c9G)d%)|P;+;A>c;JVUf<5hFcyl$jc=?5aqBA}7yVjlWy)ZED zOvSfLCqLJ@w5#p=-<~}czj^#{_x>MQYv}S9zkXJCa_5+yoDJtIw+u-I1vDWTdTYTrM zjkmTub#bCs`epo4Y^=FtXt3w=>%Z431AcbSsU__n*xp;TeL>{l-b8Ens@FcwD_s9V z+lJGZ>iQ2=wf*D{p4#Ll_l~=@%&Qh;&C{-xW+!^~6~6O|qoZqUUzfD1y*GPJh4jbS z?xOs84Do8#{z`M*x#bb{(>0s3Hdf;=wY)n)?%a5>{luEH`}%i1omJ5vxpL!5aaBjo zy4urK@*6oV6}hd4mrPz*yCz-O naYElP2yS|-^C}9ZZMRK}Cf02k)kZcOe_nj$Gd(-Y>RbK+Vxl5K literal 0 HcmV?d00001