From 59167a18f7b5b5182a5c67599f5721934a377d68 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Sat, 16 Jan 2021 04:17:30 +0300 Subject: [PATCH] Some tree blocks (WIP) --- .../ru/betterend/blocks/BlockProperties.java | 1 + .../ru/betterend/blocks/CapsacisCapBlock.java | 35 ++++++++++++++++++ .../blocks/HelixTreeLeavesBlock.java | 2 +- .../betterend/blocks/JellyshroomCapBlock.java | 2 +- .../blocks/UmbrellaTreeMembraneBlock.java | 2 +- .../java/ru/betterend/registry/EndBlocks.java | 19 ++++++++++ .../textures/block/capsacis_cap_black.png | Bin 0 -> 469 bytes .../textures/block/capsacis_cap_magenta.png | Bin 0 -> 521 bytes .../textures/block/capsacis_cap_white.png | Bin 0 -> 526 bytes .../textures/block/capsacis_log_side.png | Bin 0 -> 1700 bytes .../textures/block/capsacis_log_top.png | Bin 0 -> 461 bytes .../textures/block/capsacis_planks.png | Bin 0 -> 2864 bytes .../block/capsacis_stripped_log_side.png | Bin 0 -> 432 bytes .../block/capsacis_stripped_log_top.png | Bin 0 -> 374 bytes 14 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 src/main/java/ru/betterend/blocks/CapsacisCapBlock.java create mode 100644 src/main/resources/assets/betterend/textures/block/capsacis_cap_black.png create mode 100644 src/main/resources/assets/betterend/textures/block/capsacis_cap_magenta.png create mode 100644 src/main/resources/assets/betterend/textures/block/capsacis_cap_white.png create mode 100644 src/main/resources/assets/betterend/textures/block/capsacis_log_side.png create mode 100644 src/main/resources/assets/betterend/textures/block/capsacis_log_top.png create mode 100644 src/main/resources/assets/betterend/textures/block/capsacis_planks.png create mode 100644 src/main/resources/assets/betterend/textures/block/capsacis_stripped_log_side.png create mode 100644 src/main/resources/assets/betterend/textures/block/capsacis_stripped_log_top.png diff --git a/src/main/java/ru/betterend/blocks/BlockProperties.java b/src/main/java/ru/betterend/blocks/BlockProperties.java index 27e13d36..4da42d5c 100644 --- a/src/main/java/ru/betterend/blocks/BlockProperties.java +++ b/src/main/java/ru/betterend/blocks/BlockProperties.java @@ -16,6 +16,7 @@ public class BlockProperties { public static final IntProperty ROTATION = IntProperty.of("rotation", 0, 3); public static final BooleanProperty NATURAL = BooleanProperty.of("natural"); public static final IntProperty FULLNESS = IntProperty.of("fullness", 0, 3); + public static final IntProperty COLOR = IntProperty.of("color", 0, 7); public static enum TripleShape implements StringIdentifiable { TOP("top"), diff --git a/src/main/java/ru/betterend/blocks/CapsacisCapBlock.java b/src/main/java/ru/betterend/blocks/CapsacisCapBlock.java new file mode 100644 index 00000000..18f2974a --- /dev/null +++ b/src/main/java/ru/betterend/blocks/CapsacisCapBlock.java @@ -0,0 +1,35 @@ +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.Blocks; +import net.minecraft.block.MaterialColor; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.IntProperty; +import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.noise.OpenSimplexNoise; +import ru.betterend.util.MHelper; + +public class CapsacisCapBlock extends BaseBlock { + public static final IntProperty COLOR = IntProperty.of("color", 0, 7); + private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(0); + + public CapsacisCapBlock(MaterialColor color) { + super(FabricBlockSettings.copyOf(Blocks.NETHER_WART_BLOCK).materialColor(color)); + } + + @Override + public BlockState getPlacementState(ItemPlacementContext ctx) { + double px = ctx.getBlockPos().getX() * 0.1; + double py = ctx.getBlockPos().getY() * 0.1; + double pz = ctx.getBlockPos().getZ() * 0.1; + return this.getDefaultState().with(COLOR, MHelper.floor(NOISE.eval(px, py, pz) * 3.5 + 4)); + } + + @Override + protected void appendProperties(StateManager.Builder stateManager) { + stateManager.add(COLOR); + } +} diff --git a/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java b/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java index fb299993..48e03300 100644 --- a/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java +++ b/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java @@ -30,7 +30,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.util.MHelper; public class HelixTreeLeavesBlock extends BaseBlock implements IColorProvider { - public static final IntProperty COLOR = IntProperty.of("color", 0, 7); + public static final IntProperty COLOR = BlockProperties.COLOR; private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(0); public HelixTreeLeavesBlock() { diff --git a/src/main/java/ru/betterend/blocks/JellyshroomCapBlock.java b/src/main/java/ru/betterend/blocks/JellyshroomCapBlock.java index 482966fb..0812cfb4 100644 --- a/src/main/java/ru/betterend/blocks/JellyshroomCapBlock.java +++ b/src/main/java/ru/betterend/blocks/JellyshroomCapBlock.java @@ -30,7 +30,7 @@ import ru.betterend.patterns.Patterns; import ru.betterend.util.MHelper; public class JellyshroomCapBlock extends SlimeBlock implements IRenderTypeable, BlockPatterned, IColorProvider { - public static final IntProperty COLOR = IntProperty.of("color", 0, 7); + public static final IntProperty COLOR = BlockProperties.COLOR; private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(0); private final Vec3i colorStart; private final Vec3i colorEnd; diff --git a/src/main/java/ru/betterend/blocks/UmbrellaTreeMembraneBlock.java b/src/main/java/ru/betterend/blocks/UmbrellaTreeMembraneBlock.java index 75075069..3fb85637 100644 --- a/src/main/java/ru/betterend/blocks/UmbrellaTreeMembraneBlock.java +++ b/src/main/java/ru/betterend/blocks/UmbrellaTreeMembraneBlock.java @@ -32,7 +32,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.util.MHelper; public class UmbrellaTreeMembraneBlock extends SlimeBlock implements IRenderTypeable, BlockPatterned { - public static final IntProperty COLOR = IntProperty.of("color", 0, 7); + public static final IntProperty COLOR = BlockProperties.COLOR; private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(0); public UmbrellaTreeMembraneBlock() { diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 44050d9e..f29fbafc 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -20,6 +20,7 @@ import ru.betterend.blocks.BulbVineBlock; import ru.betterend.blocks.BulbVineLanternBlock; import ru.betterend.blocks.BulbVineLanternColoredBlock; import ru.betterend.blocks.BulbVineSeedBlock; +import ru.betterend.blocks.CapsacisCapBlock; import ru.betterend.blocks.CharniaBlock; import ru.betterend.blocks.ChorusGrassBlock; import ru.betterend.blocks.DenseEmeraldIceBlock; @@ -192,6 +193,24 @@ public class EndBlocks { public static final Block JELLYSHROOM_CAP_PURPLE = registerBlock("jellyshroom_cap_purple", new JellyshroomCapBlock(217, 142, 255, 164, 0, 255)); public static final WoodenMaterial JELLYSHROOM = new WoodenMaterial("jellyshroom", MaterialColor.PURPLE, MaterialColor.LIGHT_BLUE); + // Tree from original concept (+ modifications) + public static final Block CAPSACIS_SAPLING = registerBlock("capsacis_sapling", new UmbrellaTreeSaplingBlock()); + public static final Block CAPSACIS_CAP_BLACK = registerBlock("capsacis_cap_black", new CapsacisCapBlock(MaterialColor.BLACK)); + public static final Block CAPSACIS_CAP_WHITE = registerBlock("capsacis_cap_white", new CapsacisCapBlock(MaterialColor.WHITE)); + public static final Block CAPSACIS_CAP_MAGENTA = registerBlock("capsacis_cap_magenta", new CapsacisCapBlock(MaterialColor.MAGENTA)); + public static final WoodenMaterial CAPSACIS = new WoodenMaterial("capsacis", MaterialColor.PURPLE, MaterialColor.LIGHT_BLUE); + + // Small ecosystem tree + public static final WoodenMaterial INANIS = new WoodenMaterial("inanis", MaterialColor.PURPLE, MaterialColor.LIGHT_BLUE); + + // Tree from Yuki's ide + public static final Block CEMINUS_SAPLING = registerBlock("ceminus_sapling", new UmbrellaTreeSaplingBlock()); + public static final Block CEMINUS_GRID = registerBlock("ceminus_grid", new UmbrellaTreeMembraneBlock()); + public static final WoodenMaterial CEMINUS = new WoodenMaterial("ceminus", MaterialColor.PURPLE, MaterialColor.LIGHT_BLUE); + + // For megacolonies + public static final Block VOID_COLONY_MEMBRANE = registerBlock("void_colony_membrane", new UmbrellaTreeMembraneBlock()); + // Small Plants // public static final Block UMBRELLA_MOSS = registerBlock("umbrella_moss", new UmbrellaMossBlock()); public static final Block UMBRELLA_MOSS_TALL = registerBlock("umbrella_moss_tall", new UmbrellaMossTallBlock()); diff --git a/src/main/resources/assets/betterend/textures/block/capsacis_cap_black.png b/src/main/resources/assets/betterend/textures/block/capsacis_cap_black.png new file mode 100644 index 0000000000000000000000000000000000000000..5f0b2b6bdebf74a9b06b9561e214fab5bdcdc759 GIT binary patch literal 469 zcmV;`0V@89P)vo%x&HwVBY0}w=n-aF@cet=DlZCPp2p$4jon*k6RIDnbbdgpA7QG=?2 z0#&C)M?~1x^$CjPeL27wMPwidMX|WQB-)b+;Ol-TebA#5k+?Yupem>+zz6tR`?dja zwDY4rTUgx596-IKxy|$9%YWt178dt^E=1&fZYaJ!7K=nMvlrOwnsh1tCWg5!5JDl&V6$NBp*L^V40b_HE-Y`)40E>wg;T00000 LNkvXXu0mjf$eh@n literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/capsacis_cap_magenta.png b/src/main/resources/assets/betterend/textures/block/capsacis_cap_magenta.png new file mode 100644 index 0000000000000000000000000000000000000000..3dffd7a905c7af1280dbbd0584ac7499b0248e43 GIT binary patch literal 521 zcmV+k0`~ohP)-(-Q15Zg0jX%EAgpp#3sTHP&K{@nj{fI&v~de5hw zd9!~kz90e(EwfMT^+2HIY$t*QdKmy{vL^%~5V-n<4|`|v8AS=Sw9>NI1JNQgGmSKK z(gTn^(Ezm4@#z=N%LfZHhT%9n8lruos_gXuK=R0KGyn?=(XS|q;BON^`q_U1|@(e&HJ+n_-${7M=OBKAiHD@AMr?V$o=_p=U zeElB)OPQHGGkIS3U|Ul`DOQ*)Qz!%pm=}U*b-tC3t6eIyqdxKy4BWDJ|S?BLE-gfv$6Ctu?pXM6D|y=b=g4n0LL$d*AN7??@>TLc}?T z&RMwMAKpTUc<-M|9&mbh^e)4nr3Xy!uNHg>l|O7m)5S=5K~$RG4bni##)0&X<=G`Wy#c95h<jt8B2SX#N5K}3NNGu@wBVdY zNcUO1qD{XIg z8(|w;lINan z+pK}w<|?1i+#onbV(C+OS&T&lGB9{NCWjTBjk$;fFN@aZXNtfR5Tn6Gl$!$adafFG zLk-|176&OXb}L@$v@j0ZX|)&QR+=fL=u(QYku<~74%X(xlMjKUX<~q_@hnfuLOT}` zG7OcasAx25iP|hs3sQ{J>7-~YWwnwBLF!G4!N*8N&rdOUfG%i~YDiGQO-9}iBZiAW zn$DRZt7%$APr3;?jEeCp#aL+5qy$hD(l|Aug%iR>fdXM51I5r0mPuogmpCpBzbUOO zr_s7m(TFrk+ICa4?rTy3RReSw(F9P@h$QBx6jMXcfO-i2gB|JPv^6U0)&Orn%?DvP z6{zYI3+{HCfmwnV)=7#8qxxb~Q1TA&@CI-ZR@%y-kdchTN84DtleLu;p#@FPK{=EP zB5&}w28N;(X!=j6D6j#j$vkqDB=bQ)sY);*jpNu#MK^dw0F@pWfmF3flE?}+t4Py; zA)StrQZit*+ep97?k8=21_Wr@j?U+_MfW{Wh?qf4-53Ao{Z*QTiii*2K2JJGtQ&@* z#z7Hz*=DA2B9&OLq@#E>C5xgKY)G!c5}wE&mKV$fcM*aaSs)V0&(dvsW{x%*0*Lfq z!aWDmVZey;8YmAUFWyQxa7W=@Z@e&s-e;AlTafWBJwn z)%~G2d{XWalHG7-u;BZg^?~5TN5>u;9f$UGd|cQQ`=aZsGg*aLX7-&^c;1r2C-)xN6vrCZYX^ULd-i1f z#(`2j8tLP5GcL%dU+y^i`Ur=8^Tg^wq1&UM{e!7u_zLI z?D1Fnil3RcZ7qEN^Ud#Qhc^ZWf6aWjbEA;`V%yo@zFa)|*5swWzVWIP?HzeL_Vk?U ziZkqV@k8;ZBCV`-c%WnE(XsspJ{`P#@AHnY-*ejW^M4FZ_4ar+JMGm4?QmCiAb0Ee zu93{x?8eRSkRFu8BX*UJmVDkTZ+v W+Va+}7W%sRAE~UU@(euvLi?YITv0^; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/capsacis_log_top.png b/src/main/resources/assets/betterend/textures/block/capsacis_log_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6ddad95076788ab556cb3c71bbb2a085792f4b6c GIT binary patch literal 461 zcmV;;0W$uHP)WyT5QV=;L&=g2$cCUGiFaLgUGxOK{}FP5!m%VvX2lVcE?m;G+n}={IGn-z!Q;cX z`s>Fk&DgIW33ae70M<_wX--{isdg3Jv5W84PfYL1!;h!$AFrE{WqF-Rjo@`=wJ!NJ zo&iXW+|0f726?U;Uj4}N=NkYfGndmCRFzrhxG?LCssgZUYWC{}Db^+Qmx0Iq69DQQ z06D80Mxi%!r#K_svBSU5n9QKg;TMSavVsg_%;lbdESsV1*+v;aq+OInyo(VIwk0{( z7XL?EKvAa@Wq}w$jKsxzCICsRLqrSBVC1ZGG%>JQO0a$+$&)Mfe^sC#&KpT-PEuu? zPnVbU1B0c>b+IL>H`~7u;9_Lo_Smz%$->g`YF8o7=?wy0-Cmk^FH4Nj9XsUYM$$qe zN{H}%YynJ`#Q;T_&R?ky-6=-+f0Y{HFtmvE699R+B4>ry88H%>0H1y+>nG&R^?Vr` zo~wppU0%QJ(9-Hao*1gRq~5&XoN}@w&MVeW^g8kzz!&E9%bVOn00000NkvXXu0mjf D?Izg> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/capsacis_planks.png b/src/main/resources/assets/betterend/textures/block/capsacis_planks.png new file mode 100644 index 0000000000000000000000000000000000000000..6d6aef0033d7c13531b1121f8bea9b9c09a9a314 GIT binary patch literal 2864 zcmcImYitx%6rS?1P@csQ(HIy95)hr8=g#g<7+TmZw&K>ZtYN_fxpU`EcVOq?%yf6# z7!yH!Bp4L@p@fGLq6r3yK|>5CCN*LVs3h>i_^3Y+{6V4^G(-*PoqY_&w6uzBc6J_n z?)lDl&Uen-7rQzin$~nr6G0HuI@(hie4ZH`lg8oSmtVgRK>51uY<=7MOIAwO$xOv03>ti zE;4Dmh>S)g8ge2}#u5=uViUahAjz{_jA3I8C(tY>vyv<%$l8a(Xs)Kqnbe9J7QR!c zyze_Q!<0&;NJ)s;Za2dv5($Ro8J?%H1?}}(J}A?cH^1&7g*@mQj&Il&8F&P$-Qz11 zjWb>ue0&|47#4rF)YXC zmBo&nbP@1vH*4F4dX>BCe92@osA`;Cw8pSByX4&;0M^!^6!4Kk@hs2MY>ejlEEkpW zSByTu3Np)9P1Ck!=)IvShowPtQkE65h0IAem}1Fkzz3rmYf#p0*916Wh6%b6<5=Ak z8J0m#+6CLiz&JXg5=A;KcUYbeEQmT%3WX^|3`3K7U4)_}a5Mm%h6#vq8t@vR1rG8O z%W}M`Y4!Cf8}X9tBqCkRWL^WFbdKqoPU!K?SrbLBOlL8dVc&&%&aj>jcp-r6aX0 zyXZ?ZbFyimb*lgF<82qu?QfhoarOk|_rF@sPnq}9=A(P~=Qd6Um%l!>VDdYkUo-oQ zr_{a2cIVb!>pT4R%GQRdXIsCwugqDs>&?9#zn*z&aPDdF!MA^~gQxo!Z{P9QstX6E zpZRRy;VsRVbH7D@SSYN#yL|4x8FMGkIRbK1Jyjf;r`sXZG{ z4HQe4y!^I(%Uf2wD!-6~GhBD2`_}Z=&@JCC7yHO(`V)My-_?0;&dp__3WF6EQ?YZwEi0hoa7WKG5O4;^g?>w~bmVrIglG^_oII+X*{a$ptn0C#g4)AYQ2b zT4B`QJTZi3;iPQ+{unBxl*X>6%-L{BEoIyV|-+MM)&^u+7K_KkWjOh5I|0ueR~bxjclUUicb1g_8MdKKJ ze3IC|-P-!`Ag7E@da=t;kTYg_Ng~BKUf_97ppEl%yHRp(1mZpOdLMVuEu7Jx_q;Bb ar~U`F;n<`AqmZ}&0000e;|l<(WnM*4RiZ|_ z5H+Hz0Q4`|N1q?S2ZyttN?Wr&Ey!MVzk z8Q06zWB^9H?OKb21ibgSahymuZMmurO53#r2?Pmtam@t4`XVBh%tl6yW@2WumT+(E z17!MnE%#>PBV-9BgVJQ@Dngz@RkgOkY@`l~)Uq&mZFop2Ena}T+ogGHS(#bLRb%09 zIXESxu5HKw#&KGDa6X=Fg#Uss831g$h7Ao#<2)ocCcwiF<-Moscl#*^*^mF=7g~>{ UXX639=l}o!07*qoM6N<$f~l&gApigX literal 0 HcmV?d00001