From c8239fa3a4e77e3eae542e4fe4d4312cfd0311b9 Mon Sep 17 00:00:00 2001 From: Adubbz Date: Sun, 12 Oct 2014 11:11:57 +1100 Subject: [PATCH] Finished readding the first set of flowers, updated to the latest FML --- build.properties | 2 +- .../biomesoplenty/api/block/BOPPlant.java | 17 ++++- .../common/block/BlockBOPFlower.java | 60 +++++++++++++++--- .../biomesoplenty/common/init/ModBlocks.java | 6 +- .../common/util/RegistryUtil.java | 49 -------------- .../biomesoplenty/blockstates/flower.json | 5 +- .../assets/biomesoplenty/lang/en_US.lang | 3 + .../biomesoplenty/models/block/bromeliad.json | 6 ++ .../biomesoplenty/models/block/dandelion.json | 6 ++ .../models/block/enderlotus.json | 6 ++ .../biomesoplenty/models/item/bromeliad.json | 18 ++++++ .../biomesoplenty/models/item/dandelion.json | 18 ++++++ .../biomesoplenty/models/item/enderlotus.json | 18 ++++++ .../textures/blocks/bromeliad.png | Bin 0 -> 545 bytes .../textures/blocks/dandelion.png | Bin 0 -> 507 bytes .../textures/blocks/enderlotus.png | Bin 0 -> 658 bytes .../textures/blocks/waterlily.png | Bin 0 -> 665 bytes 17 files changed, 150 insertions(+), 64 deletions(-) delete mode 100644 src/main/java/biomesoplenty/common/util/RegistryUtil.java create mode 100644 src/main/resources/assets/biomesoplenty/models/block/bromeliad.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/dandelion.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/enderlotus.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/bromeliad.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/dandelion.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/enderlotus.json create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/bromeliad.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/dandelion.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/enderlotus.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/waterlily.png diff --git a/build.properties b/build.properties index 6c9c2ce36..0231ce683 100644 --- a/build.properties +++ b/build.properties @@ -1,3 +1,3 @@ minecraft_version=1.8 -forge_version=7.10.93.1001-1.8 +forge_version=8.0.2.1009-1.8 mod_version=3.0.0 diff --git a/src/main/java/biomesoplenty/api/block/BOPPlant.java b/src/main/java/biomesoplenty/api/block/BOPPlant.java index f3ac83ff5..3edb36c65 100644 --- a/src/main/java/biomesoplenty/api/block/BOPPlant.java +++ b/src/main/java/biomesoplenty/api/block/BOPPlant.java @@ -15,8 +15,10 @@ import net.minecraft.block.material.Material; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.IBlockState; import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; @@ -34,10 +36,16 @@ public class BOPPlant extends BOPBlock this.setStepSound(Block.soundTypeGrass); } + @Override + public boolean canReplace(World world, BlockPos pos, EnumFacing side, ItemStack stack) + { + return super.canPlaceBlockOnSide(world, pos, side) && this.canBlockStay(world, pos, this.getStateFromMeta(stack.getMetadata())); + } + @Override public boolean canPlaceBlockAt(World world, BlockPos pos) { - return super.canPlaceBlockAt(world, pos) && this.canBlockStay(world, pos, world.getBlockState(pos)); + return super.canPlaceBlockAt(world, pos) && this.canBlockStay(world, pos, this.getDefaultState()); } public boolean canBlockStay(World world, BlockPos pos, IBlockState state) @@ -93,4 +101,11 @@ public class BOPPlant extends BOPBlock { return EnumWorldBlockLayer.CUTOUT; } + + @Override + @SideOnly(Side.CLIENT) + public Block.EnumOffsetType getOffsetType() + { + return Block.EnumOffsetType.XZ; + } } diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPFlower.java b/src/main/java/biomesoplenty/common/block/BlockBOPFlower.java index 2461d07a0..2ac408af9 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPFlower.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPFlower.java @@ -16,6 +16,15 @@ import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemShears; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; @@ -39,7 +48,34 @@ public class BlockBOPFlower extends BOPPlant super(VARIANT_PROP); } - //TODO: Add light for glowflowers (Requires Forge) + //TODO: Add light for glowflowers and enderlotus (Requires Forge) + + //TODO: Make enderlotus require spectral moss + //TODO: Make bromeliads require hard dirt, hardened clay or sand + + @Override + public void harvestBlock(World world, EntityPlayer player, BlockPos pos, IBlockState state, TileEntity tileentity) + { + super.harvestBlock(world, player, pos, state, tileentity); + + FlowerType type = (FlowerType)state.getValue(VARIANT_PROP); + + if (type == FlowerType.DEATHBLOOM && (player.getCurrentEquippedItem() == null || !(player.getCurrentEquippedItem().getItem() instanceof ItemShears))) + { + player.addPotionEffect(new PotionEffect(Potion.wither.id, 300)); + } + } + + @Override + public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity) + { + FlowerType type = (FlowerType)state.getValue(VARIANT_PROP); + + if (entity instanceof EntityLivingBase && type == FlowerType.DEATHBLOOM) + { + ((EntityLivingBase)entity).addPotionEffect(new PotionEffect(Potion.wither.id, 200)); + } + } @Override protected BlockState createBlockState() @@ -70,19 +106,20 @@ public class BlockBOPFlower extends BOPPlant this.setBlockBounds(0.3F, 0.0F, 0.3F, 0.7F, 0.5F, 0.7F); break; + case ENDERLOTUS: + this.setBlockBounds(0.3F, 0.0F, 0.3F, 0.7F, 0.4F, 0.7F); + break; + + case DANDELION: + this.setBlockBounds(0.3F, 0.0F, 0.3F, 0.7F, 0.6F, 0.7F); + break; + default: this.setBlockBounds(0.1F, 0.0F, 0.1F, 0.9F, 0.8F, 0.9F); break; } } - @Override - @SideOnly(Side.CLIENT) - public Block.EnumOffsetType getOffsetType() - { - return Block.EnumOffsetType.XZ; - } - @Override @SideOnly(Side.CLIENT) public void randomDisplayTick(World world, BlockPos pos, IBlockState state, Random rand) @@ -94,6 +131,8 @@ public class BlockBOPFlower extends BOPPlant } } + //TODO: Readd eyebulb in as a seperate block + //TODO: Readd dandelion blowing public static enum FlowerType implements IBOPVariant { CLOVER, @@ -105,7 +144,10 @@ public class BlockBOPFlower extends BOPPlant PINK_DAFFODIL, WILDFLOWER, VIOLET, - WHITE_ANEMONE; + WHITE_ANEMONE, + ENDERLOTUS, + BROMELIAD, + DANDELION; @Override public String getBaseName() diff --git a/src/main/java/biomesoplenty/common/init/ModBlocks.java b/src/main/java/biomesoplenty/common/init/ModBlocks.java index 13b4698dc..c33fecf50 100644 --- a/src/main/java/biomesoplenty/common/init/ModBlocks.java +++ b/src/main/java/biomesoplenty/common/init/ModBlocks.java @@ -11,6 +11,7 @@ package biomesoplenty.common.init; import static biomesoplenty.api.block.BOPBlocks.*; import net.minecraft.block.Block; import net.minecraft.item.Item; +import net.minecraftforge.fml.common.registry.GameRegistry; import biomesoplenty.api.block.BOPBlock; import biomesoplenty.api.block.IBOPVariant; import biomesoplenty.client.util.ModelHelper; @@ -22,7 +23,6 @@ import biomesoplenty.common.block.BlockBOPLog2; import biomesoplenty.common.block.BlockBOPLog3; import biomesoplenty.common.block.BlockBOPLog4; import biomesoplenty.common.item.ItemBlockWithVariants; -import biomesoplenty.common.util.RegistryUtil; import biomesoplenty.core.BiomesOPlenty; public class ModBlocks @@ -44,7 +44,7 @@ public class ModBlocks if (block.hasVariants()) { - RegistryUtil.registerBlock(block, ItemBlockWithVariants.class, name); + GameRegistry.registerBlock(block, ItemBlockWithVariants.class, name); for (IBOPVariant variant : block.getVariants()) { @@ -56,7 +56,7 @@ public class ModBlocks } else { - RegistryUtil.registerBlock(block, name); + GameRegistry.registerBlock(block, name); ModelHelper.addVariantName(Item.getItemFromBlock(block), BiomesOPlenty.MOD_ID + ":" + name); BiomesOPlenty.proxy.registerBlockForMeshing(block, 0, name); diff --git a/src/main/java/biomesoplenty/common/util/RegistryUtil.java b/src/main/java/biomesoplenty/common/util/RegistryUtil.java deleted file mode 100644 index 59735b070..000000000 --- a/src/main/java/biomesoplenty/common/util/RegistryUtil.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright 2014, the Biomes O' Plenty Team - * - * This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License. - * - * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. - ******************************************************************************/ - -package biomesoplenty.common.util; - -import java.util.Iterator; -import java.util.Map; - -import biomesoplenty.core.BiomesOPlenty; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraftforge.fml.common.ObfuscationReflectionHelper; -import net.minecraftforge.fml.common.registry.GameRegistry; - -public class RegistryUtil -{ - public static Block registerBlock(Block block, String name) - { - return registerBlock(block, ItemBlock.class, name); - } - - public static Block registerBlock(Block block, Class itemclass, String name) - { - return registerBlock(block, itemclass, name, new Object[]{}); - } - - public static Block registerBlock(Block block, Class itemclass, String name, Object... itemCtorArgs) - { - block = GameRegistry.registerBlock(block, itemclass, name, itemCtorArgs); - - Iterator iterator = block.getBlockState().getValidStates().iterator(); - - while (iterator.hasNext()) - { - IBlockState iblockstate = (IBlockState)iterator.next(); - int id = Block.blockRegistry.getIDForObject(block) << 4 | block.getMetaFromState(iblockstate); - Block.BLOCK_STATE_IDS.put(iblockstate, id); - } - - return block; - } -} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/flower.json b/src/main/resources/assets/biomesoplenty/blockstates/flower.json index 7d925b05a..8ecde031d 100755 --- a/src/main/resources/assets/biomesoplenty/blockstates/flower.json +++ b/src/main/resources/assets/biomesoplenty/blockstates/flower.json @@ -9,6 +9,9 @@ "variant=pink_daffodil": { "model": "biomesoplenty:pink_daffodil" }, "variant=wildflower": { "model": "biomesoplenty:wildflower" }, "variant=violet": { "model": "biomesoplenty:violet" }, - "variant=white_anemone": { "model": "biomesoplenty:white_anemone" } + "variant=white_anemone": { "model": "biomesoplenty:white_anemone" }, + "variant=enderlotus": { "model": "biomesoplenty:enderlotus" }, + "variant=bromeliad": { "model": "biomesoplenty:bromeliad" }, + "variant=dandelion": { "model": "biomesoplenty:dandelion" } } } diff --git a/src/main/resources/assets/biomesoplenty/lang/en_US.lang b/src/main/resources/assets/biomesoplenty/lang/en_US.lang index 9c4e75f95..6dee65d3d 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_US.lang +++ b/src/main/resources/assets/biomesoplenty/lang/en_US.lang @@ -10,6 +10,9 @@ tile.flower.pink_daffodil.name=Pink Dafodil tile.flower.wildflower.name=Wildflower tile.flower.violet.name=Violet tile.flower.white_anemone.name=White Anemone +tile.flower.enderlotus.name=Enderlotus +tile.flower.bromeliad.name=Bromeliad +tile.flower.dandelion.name=Dandelion Puff tile.log.sacred_oak.name=Sacred Oak Wood tile.log.cherry.name=Cherry Wood diff --git a/src/main/resources/assets/biomesoplenty/models/block/bromeliad.json b/src/main/resources/assets/biomesoplenty/models/block/bromeliad.json new file mode 100644 index 000000000..377034969 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/bromeliad.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/bromeliad" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/dandelion.json b/src/main/resources/assets/biomesoplenty/models/block/dandelion.json new file mode 100644 index 000000000..eb3af97bd --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/dandelion.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/dandelion" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/enderlotus.json b/src/main/resources/assets/biomesoplenty/models/block/enderlotus.json new file mode 100644 index 000000000..cfa4bf16f --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/enderlotus.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/enderlotus" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/bromeliad.json b/src/main/resources/assets/biomesoplenty/models/item/bromeliad.json new file mode 100644 index 000000000..d8e9a8b66 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/bromeliad.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:blocks/bromeliad" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/dandelion.json b/src/main/resources/assets/biomesoplenty/models/item/dandelion.json new file mode 100644 index 000000000..e145c7d32 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/dandelion.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:blocks/dandelion" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/enderlotus.json b/src/main/resources/assets/biomesoplenty/models/item/enderlotus.json new file mode 100644 index 000000000..2d34b0c12 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/enderlotus.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:blocks/enderlotus" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/bromeliad.png b/src/main/resources/assets/biomesoplenty/textures/blocks/bromeliad.png new file mode 100644 index 0000000000000000000000000000000000000000..c30a63abbd1dc9ed4bb5c39b583960332850f25c GIT binary patch literal 545 zcmV++0^a?JP)N2bPDNB8 zb~7$DE-^4L^m3s900EszL_t(IPu-B+D}!Me#`muXp@fvP&CE8NZDEdveXw_IGs%JZ zoXsX_MEOW9#lN74I1%|i@ZBg55Hn;bXAUksciYRna^TQach7a-&wc%#-dFTb^x|zq z-2PoLkAol&_1YxZTcG(z_;Zi*bIw9BXE|T~@F6-BvHgw1Na zxb(E}9(3c$QHFb)h7UY8==l32-C5N*wUkn^p1sCqN7V|xKdw>Y#-gO2f!Ha~;c5^Y z3q5psU??U);?tN<0Do099O9RDmjmQ?mi<_p>mo1sSFPg)_@+4;Uha+JE8uK1NIrHk zlN|ak$AAu9ArsZsq8E{qNeZ0r48b#HfqS9~SNmf$W4>vqLI`vXYS7THMDws7E3@sm zJ{TvU)i1;LQZIR1pB%M5sW8m>RjBHa(2{*XMd$i_H-*ESBQSOsQ5oD~VOZzPgT|f% zi7^FQM=lI)VpMk)!sHPX$mEfs$draMS3dMD1yEQsAvLB7K}>3UHk7t3$js@G*JVJ# jWm1rZ7$m+Hmq_#hd87MI$Xj~U00000NkvXXu0mjfL7ePn literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/dandelion.png b/src/main/resources/assets/biomesoplenty/textures/blocks/dandelion.png new file mode 100644 index 0000000000000000000000000000000000000000..bc6063a4c790d0bf8fb741b2560c4f099b1f3425 GIT binary patch literal 507 zcmVN2bPDNB8 zb~7$DE-^7j^FlWO00DPNL_t(IPkoZVPQyS9#@(iA+9XYA5DXv~crO?j*g)bD5E5)G zJV)j(UHWHkrA8StMT+_!rr$>$t_AU1d}p8S@9r$e3VX)3<&OSjwQ9@yIR zJX$&|q0{Mb9fsk7|6kl>vssq017awIwZ%aY1V0MU4L~|T&_K+REe^0xlH_~S@Av6| z1#Msle0FD7!JpWH(P%{La{L~6*aHskv?q!pDa%s#+ZMYrU{gyp1(3a3t(dskY!v&Z zY4rHqa5$tTc25AQI9yc~i)^=BCc}@paB-)mchB=-(HX(_ zQ=aE~{ha8@i)eT&ECMj8p#4r9b_eLN2bPDNB8 zb~7$DE-^7j^FlWO00It4L_t(IPi;_LOOs(3e%OELB%%l{mu}9z+uNqK(ixVSWr&({ z)1}haKZwYWFf$B_qK*nW>9B(`%0x=~Fq9&LDC(s1oo?)VyYsr-v$eJh?)SRx@B4X` z#@hSa1y$0E&nL*h`iDE@pWhylEAVDkkTE0e^ly zA?qO;D@(I#;pt`SFQ4v}4XVJI)5G#^d5#(zV6PV@>1+Jhct{=#UKEP|G0+o|SI@4h z@z5m}!0$g5qz?6u$@0r<>TKYA^=8xXio<3|c<`KjUAwRPP7X-(`hw#yiF$C zypl?#80)dt$aH%P4TEyIoYJ`|f3svV8ESq|6pO{E{oA)~lBn5ZhXt2Fhs-9q(b+25 zY*yitcs$O9$ZpqQ^`nQRbN3Dwz@pKp!WG!8V~Iq9tn&FhMbPbF5~q!L4C?vr zBNB;3)c8RU{jQpwf`#ZwCX-tO@X>}7M_Ww6bp6Je4&NqiN2bPDNB8 zb~7$DE-^7j^FlWO00I?BL_t(IPd$>yZc|YZhUe*cI3!j`*&#Lv5E2_A0Rkh(X-;g% zc3k3K;)3n#-m84@_oJJ|)tobD<}WkX27`gc9}D)7%-dt8Y)^$}i^iWUm96NUOqY~T zq>2`fq%2o#SmYsV`BKx0m9|;G-&YYIKsM982WX3lj+Y1ymPyJoFc zOBX-@U;{L81{8HzVW>m^$)l9nS*O#n)oNwcYE>H<4u>`xjRf3ow{5XlXw`lkkH`9V z{G5ttoKB~9JRWuL^?E8=E|(hed_EV+X0x$ww=0tEc59yJnb>FsjR*q;fs3ev~J`|sQDQPyEkWF+@Da)`6_s$4kaj30#p+CM%roD?ljo{ z&7WVn*Ka?$({JleLvy}=BGx6{Ij0Ds@BQ7!UrgMcR;tDiUqh