diff --git a/src/main/java/biomesoplenty/api/block/BOPBlocks.java b/src/main/java/biomesoplenty/api/block/BOPBlocks.java index bb2efd089..9d15911bb 100644 --- a/src/main/java/biomesoplenty/api/block/BOPBlocks.java +++ b/src/main/java/biomesoplenty/api/block/BOPBlocks.java @@ -34,4 +34,14 @@ public class BOPBlocks public static Block grass; public static Block waterlily; public static Block dirt; + public static Block stone_formations; + public static Block fruit_block; + public static Block ash_stone; + public static Block hard_sand; + public static Block hard_dirt; + public static Block hard_ice; + public static Block dried_dirt; + public static Block crag_rock; + public static Block mud_brick; + public static Block crystal; } diff --git a/src/main/java/biomesoplenty/api/item/BOPItems.java b/src/main/java/biomesoplenty/api/item/BOPItems.java index ea78daa9e..822a15008 100644 --- a/src/main/java/biomesoplenty/api/item/BOPItems.java +++ b/src/main/java/biomesoplenty/api/item/BOPItems.java @@ -16,4 +16,8 @@ public class BOPItems public static Item mudball; public static Item turnip; public static Item turnip_seeds; + public static Item persimmon; + public static Item peach; + public static Item pear; + public static Item crystal_shard; } \ No newline at end of file diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPDirt.java b/src/main/java/biomesoplenty/common/block/BlockBOPDirt.java index e24a0a813..6ad807ca9 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPDirt.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPDirt.java @@ -8,8 +8,6 @@ package biomesoplenty.common.block; -import java.util.List; - import net.minecraft.block.Block; import net.minecraft.block.BlockDirt; import net.minecraft.block.material.Material; @@ -18,11 +16,11 @@ import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.IStringSerializable; +import net.minecraft.world.IBlockAccess; import biomesoplenty.api.block.BOPBlock; import biomesoplenty.api.block.BOPBlocks; @@ -72,6 +70,31 @@ public class BlockBOPDirt extends BOPBlock return (Boolean.TRUE.equals(state.getValue(COARSE)) ? "coarse_" : "") + ((BOPDirtType) state.getValue(VARIANT_PROP)).getName() + "_dirt"; } + @Override + public boolean canSustainPlant(IBlockAccess world, BlockPos pos, EnumFacing direction, net.minecraftforge.common.IPlantable plantable) + { + net.minecraftforge.common.EnumPlantType plantType = plantable.getPlantType(world, pos.offset(direction)); + + switch (plantType) + { + // support desert and plains plants + case Desert: case Plains: return true; + // support cave plants + case Cave: return isSideSolid(world, pos, EnumFacing.UP); + // support beach plants if there's water alongside + case Beach: + return ( + world.getBlockState(pos.east()).getBlock().getMaterial() == Material.water || + world.getBlockState(pos.west()).getBlock().getMaterial() == Material.water || + world.getBlockState(pos.north()).getBlock().getMaterial() == Material.water || + world.getBlockState(pos.south()).getBlock().getMaterial() == Material.water + ); + // don't support nether plants, water plants, or crops (require farmland), or anything else by default + default: + return false; + } + } + // enum representing the variants of dirt public static enum BOPDirtType implements IStringSerializable { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java b/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java new file mode 100644 index 000000000..4d8f067c7 --- /dev/null +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * 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.block; + +import biomesoplenty.api.block.BOPBlock; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class BlockBOPGeneric extends BOPBlock +{ + public BlockBOPGeneric() { + // use rock as default material + this(Material.rock); + } + + public BlockBOPGeneric(Material material) + { + super(material); + // set some defaults + this.setHardness(1.0F); + this.setStepSound(Block.soundTypePiston); + } + +} \ No newline at end of file diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java index 93e4b5105..25a12efb2 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java @@ -39,7 +39,6 @@ import net.minecraft.world.biome.BiomeColorHelper; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -// TODO: add snowiness? public class BlockBOPGrass extends BOPBlock implements IGrowable { public static final PropertyEnum VARIANT_PROP = PropertyEnum.create("variant", BOPGrassType.class); @@ -134,6 +133,10 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable // smoldering grass supports no plants case SMOLDERING: return false; + + // origin grass supports all plants (including crop type - no need for hoe) + case ORIGIN: + return true; default: switch (plantType) @@ -163,21 +166,14 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable { IBlockState state = world.getBlockState(pos); switch ((BOPGrassType) state.getValue(VARIANT_PROP)) - { - // spectral moss burns from below in the end - // TODO: 1.7 code had dimension=-1 here - check -1 corresponds to end - case SPECTRALMOSS: - if ((world.provider instanceof net.minecraft.world.WorldProviderEnd) && side == EnumFacing.UP) {return true;} - break; - - // smoldering grass always burns + { + // smoldering grass is a fire source case SMOLDERING: - return false; + return true; default: - break; + return false; } - return super.isFireSource(world, pos, side); } @Override @@ -331,7 +327,8 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable } // This is called when bonemeal is applied on the block - // The algorithm is functionally exactly the same as in the vanilla BlockGrass grow function, but has been rewritten to make its behavior clearer + // The algorithm is functionally equivalent to the vanilla BlockGrass grow function, but has been rewritten to make its behavior clearer + // TODO: grows spreads from BOP grass to vanilla grass, need to find a way to make growth on vanilla grass also spread to BOP grass @Override public void grow(World worldIn, Random rand, BlockPos pos, IBlockState state) { @@ -350,7 +347,8 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable { // shift a random distance currPos = currPos.add(rand.nextInt(3) - 1, (rand.nextInt(3) - 1) * rand.nextInt(3) / 2, rand.nextInt(3) - 1); - if (worldIn.getBlockState(currPos.down()).getBlock() != BOPBlocks.grass || worldIn.getBlockState(currPos).getBlock().isNormalCube()) + Block currBlockBelow = worldIn.getBlockState(currPos.down()).getBlock(); + if ( (currBlockBelow != Blocks.grass && currBlockBelow != BOPBlocks.grass) || worldIn.getBlockState(currPos).getBlock().isNormalCube()) { // this block can't spread the growth walkOk = false; @@ -428,7 +426,7 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable // enum representing the variants of grass public static enum BOPGrassType implements IStringSerializable { - SPECTRALMOSS, SMOLDERING, LOAMY, SANDY, SILTY; + SPECTRALMOSS, SMOLDERING, LOAMY, SANDY, SILTY, ORIGIN; @Override public String getName() @@ -462,7 +460,7 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable return BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT_PROP, BlockBOPDirt.BOPDirtType.SANDY); case SILTY: return BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT_PROP, BlockBOPDirt.BOPDirtType.SILTY); - case SMOLDERING: default: + case SMOLDERING: case ORIGIN: default: return Blocks.dirt.getStateFromMeta(BlockDirt.DirtType.DIRT.getMetadata()); } } @@ -518,6 +516,17 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable { return null; } + + // origin grass spreads to any kind of dirt + case ORIGIN: + if ((target.getBlock() == Blocks.dirt && target.getValue(BlockDirt.VARIANT) == BlockDirt.DirtType.DIRT) || (target.getBlock() == BOPBlocks.dirt && Boolean.FALSE.equals(target.getValue(BlockBOPDirt.COARSE)))) + { + return BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT_PROP, BlockBOPGrass.BOPGrassType.ORIGIN); + } + else + { + return null; + } // smoldering grass doesn't spread at all case SMOLDERING: default: diff --git a/src/main/java/biomesoplenty/common/block/BlockCrystal.java b/src/main/java/biomesoplenty/common/block/BlockCrystal.java new file mode 100644 index 000000000..9a10f51a4 --- /dev/null +++ b/src/main/java/biomesoplenty/common/block/BlockCrystal.java @@ -0,0 +1,42 @@ +/******************************************************************************* + * 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.block; + +import java.util.Random; + +import biomesoplenty.api.block.BOPBlock; +import biomesoplenty.api.item.BOPItems; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.item.Item; + +public class BlockCrystal extends BOPBlock +{ + public BlockCrystal() { + super(Material.glass); + this.setHardness(0.15F); + this.setResistance(5.0F); + this.setLightLevel(1.0F); + this.setStepSound(Block.soundTypeGlass); + } + + @Override + public Item getItemDropped(IBlockState state, Random rand, int fortune) + { + return BOPItems.crystal_shard; + } + + @Override + public int quantityDropped(Random random) + { + return 4; + } + +} \ No newline at end of file diff --git a/src/main/java/biomesoplenty/common/block/BlockFruit.java b/src/main/java/biomesoplenty/common/block/BlockFruit.java new file mode 100644 index 000000000..9d40eee00 --- /dev/null +++ b/src/main/java/biomesoplenty/common/block/BlockFruit.java @@ -0,0 +1,141 @@ +/******************************************************************************* + * 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.block; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +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.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.IStringSerializable; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import biomesoplenty.api.block.BOPPlant; +import biomesoplenty.api.item.BOPItems; + +public class BlockFruit extends BOPPlant +{ + public static final PropertyEnum VARIANT_PROP = PropertyEnum.create("variant", FruitType.class); + + public BlockFruit() + { + super(Material.plants); + this.setStepSound(soundTypeGrass); + this.setBlockBounds(0.25F, 0.25F, 0.25F, 0.75F, 1.0F, 0.75F); + // TODO: once the mechanism for farming fruit is established: this.setCreativeTab(null); + } + + @Override + public IBlockState getStateFromMeta(int meta) + { + // only one property to worry about, the variant, so just map [0 => STALAGMITE, 1 => STALACTITE] + return this.getDefaultState().withProperty(VARIANT_PROP, FruitType.values()[meta]); + } + + @Override + public int getMetaFromState(IBlockState state) + { + // only one property to worry about, the variant, so just map [0 => STALAGMITE, 1 => STALACTITE] + return ((FruitType) state.getValue(VARIANT_PROP)).ordinal(); + } + + @Override + protected BlockState createBlockState() + { + return new BlockState(this, new IProperty[] { VARIANT_PROP }); + } + + @Override + public IProperty[] getPresetProperties() + { + return new IProperty[] { VARIANT_PROP }; + } + + @Override + public String getStateName(IBlockState state, boolean fullName) + { + return ((FruitType) state.getValue(VARIANT_PROP)).getName() + "_block"; + } + + // only allow fruit to hang from leaves + @Override + public boolean canBlockStay(World world, BlockPos pos, IBlockState state) + { + Block blockAbove = world.getBlockState(pos.up()).getBlock(); + return blockAbove == Blocks.leaves || blockAbove == Blocks.leaves2; /* TODO: add BOP leave types - maybe check the material instead? */ + } + + // In creative mode, pick block to get the fruit item + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, BlockPos pos) + { + IBlockState state = world.getBlockState(pos); + Item item = ((FruitType) state.getValue(VARIANT_PROP)).getItem(); + int meta = damageDropped(state); + return new ItemStack(item, 1, meta); + } + + // fruit blocks drop the corresponding fruit item when broken + @Override + public Item getItemDropped(IBlockState state, Random rand, int fortune) + { + return ((FruitType) state.getValue(VARIANT_PROP)).getItem(); + } + + // prevent fruit block meta value affecting fruit item dropped + @Override + public int damageDropped(IBlockState state) + { + return 0; + } + + // enum representing the fruit variants + // TODO: take outside the class so it can be reused in leaves? + public static enum FruitType implements IStringSerializable + { + + APPLE, PERSIMMON, PEACH, PEAR; + + @Override + public String getName() + { + return this.name().toLowerCase(); + } + + @Override + public String toString() + { + return getName(); + } + + // get the item dropped when this type of fruit block is broken/picked + public Item getItem() { + switch (this) + { + case PERSIMMON: + return BOPItems.persimmon; + case PEACH: + return BOPItems.peach; + case PEAR: + return BOPItems.pear; + case APPLE: default: + return Items.apple; + } + } + } + +} diff --git a/src/main/java/biomesoplenty/common/block/BlockStoneFormations.java b/src/main/java/biomesoplenty/common/block/BlockStoneFormations.java new file mode 100644 index 000000000..9f29d4609 --- /dev/null +++ b/src/main/java/biomesoplenty/common/block/BlockStoneFormations.java @@ -0,0 +1,119 @@ +/******************************************************************************* + * 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.block; + +import net.minecraft.block.material.Material; +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.init.Blocks; +import net.minecraft.util.BlockPos; +import net.minecraft.util.IStringSerializable; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import biomesoplenty.api.block.BOPPlant; + +public class BlockStoneFormations extends BOPPlant +{ + public static final PropertyEnum VARIANT_PROP = PropertyEnum.create("variant", StoneFormationType.class); + + public BlockStoneFormations() + { + super(Material.vine); + this.setHardness(0.5F); + this.setStepSound(soundTypePiston); + } + + // bounding box is not full size + @Override + public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos) { + float radius = 0.3F; + float height = 0.6F; + switch ((StoneFormationType) worldIn.getBlockState(pos).getValue(VARIANT_PROP)) + { + case STALACTITE: + // against top of block for stalactites + this.setBlockBounds(0.5F - radius, 1.0F - height, 0.5F - radius, 0.5F + radius, 1.0F, 0.5F + radius); + break; + case STALAGMITE: + // against bottom of block for stalagmites + this.setBlockBounds(0.5F - radius, 0.0F, 0.5F - radius, 0.5F + radius, height, 0.5F + radius); + break; + } + } + + @Override + public IBlockState getStateFromMeta(int meta) + { + // only one property to worry about, the variant, so just map [0 => STALAGMITE, 1 => STALACTITE] + return this.getDefaultState().withProperty(VARIANT_PROP, StoneFormationType.values()[meta]); + } + + @Override + public int getMetaFromState(IBlockState state) + { + // only one property to worry about, the variant, so just map [0 => STALAGMITE, 1 => STALACTITE] + return ((StoneFormationType) state.getValue(VARIANT_PROP)).ordinal(); + } + + @Override + protected BlockState createBlockState() + { + return new BlockState(this, new IProperty[] { VARIANT_PROP }); + } + + @Override + public IProperty[] getPresetProperties() + { + return new IProperty[] { VARIANT_PROP }; + } + + @Override + public String getStateName(IBlockState state, boolean fullName) + { + return ((StoneFormationType) state.getValue(VARIANT_PROP)).getName(); + } + + // only allow stalactites hanging from stone, and only allow stalagmites on top of stone + @Override + public boolean canBlockStay(World world, BlockPos pos, IBlockState state) + { + IBlockState touching; + switch ((StoneFormationType)state.getValue(VARIANT_PROP)) + { + case STALACTITE: + touching = world.getBlockState(pos.up()); + break; + case STALAGMITE: default: + touching = world.getBlockState(pos.down()); + break; + } + return touching.getBlock() == Blocks.stone; + } + + // enum representing the 2 variants of stone formations + public static enum StoneFormationType implements IStringSerializable + { + STALAGMITE, STALACTITE; + + @Override + public String getName() + { + return this.name().toLowerCase(); + } + + @Override + public String toString() + { + return getName(); + } + } + +} diff --git a/src/main/java/biomesoplenty/common/init/ModBlocks.java b/src/main/java/biomesoplenty/common/init/ModBlocks.java index 40852e3da..996a7934c 100644 --- a/src/main/java/biomesoplenty/common/init/ModBlocks.java +++ b/src/main/java/biomesoplenty/common/init/ModBlocks.java @@ -10,6 +10,7 @@ package biomesoplenty.common.init; import static biomesoplenty.api.block.BOPBlocks.*; import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.item.Item; import net.minecraftforge.fml.common.registry.GameRegistry; @@ -18,6 +19,7 @@ import biomesoplenty.common.block.BlockAsh; import biomesoplenty.common.block.BlockBOPDirt; import biomesoplenty.common.block.BlockBOPFlower; import biomesoplenty.common.block.BlockBOPFlower2; +import biomesoplenty.common.block.BlockBOPGeneric; import biomesoplenty.common.block.BlockBOPGrass; import biomesoplenty.common.block.BlockBOPLilypad; import biomesoplenty.common.block.BlockBOPLog; @@ -30,10 +32,13 @@ import biomesoplenty.common.block.BlockBOPStone; import biomesoplenty.common.block.BlockBamboo; import biomesoplenty.common.block.BlockBones; import biomesoplenty.common.block.BlockCoral; +import biomesoplenty.common.block.BlockCrystal; +import biomesoplenty.common.block.BlockFruit; import biomesoplenty.common.block.BlockGem; import biomesoplenty.common.block.BlockGemOre; import biomesoplenty.common.block.BlockHive; import biomesoplenty.common.block.BlockMud; +import biomesoplenty.common.block.BlockStoneFormations; import biomesoplenty.common.block.BlockTurnip; import biomesoplenty.common.block.BlockFlesh; import biomesoplenty.common.handler.GuiEventHandler; @@ -66,7 +71,24 @@ public class ModBlocks grass = registerBlock(new BlockBOPGrass(), "grass"); waterlily = registerBlock(new BlockBOPLilypad(), "waterlily"); dirt = registerBlock(new BlockBOPDirt(), "dirt"); + stone_formations = registerBlock(new BlockStoneFormations(),"stone_formations"); + fruit_block = registerBlock(new BlockFruit(), "fruit_block"); + crystal = registerBlock(new BlockCrystal(), "crystal"); + // generics + ash_stone = registerBlock(new BlockBOPGeneric(), "ash_stone"); + crag_rock = registerBlock((new BlockBOPGeneric()).setStepSound(Block.soundTypeStone), "crag_rock"); + dried_dirt = registerBlock(new BlockBOPGeneric(), "dried_dirt"); dried_dirt.setHarvestLevel("pickaxe",0); + hard_dirt = registerBlock((new BlockBOPGeneric()).setHardness(0.7F), "hard_dirt"); + hard_ice = registerBlock((new BlockBOPGeneric()).setHardness(0.75F), "hard_ice"); + hard_sand = registerBlock((new BlockBOPGeneric(Material.sand)).setHardness(0.9F).setStepSound(Block.soundTypeSand), "hard_sand"); + mud_brick = registerBlock((new BlockBOPGeneric()).setResistance(2.0F), "mud_brick"); + + + } + + private static Block registerBlock(Block block, String name) { + return registerBlock((BOPBlock)block,name); } private static Block registerBlock(BOPBlock block, String name) diff --git a/src/main/java/biomesoplenty/common/init/ModItems.java b/src/main/java/biomesoplenty/common/init/ModItems.java index 05f7c9841..4443f9042 100644 --- a/src/main/java/biomesoplenty/common/init/ModItems.java +++ b/src/main/java/biomesoplenty/common/init/ModItems.java @@ -24,10 +24,14 @@ public class ModItems { public static void init() { - fleshchunk = registerItem(new Item(),"fleshchunk"); - mudball = registerItem(new ItemMudball(),"mudball"); - turnip_seeds = registerItem(new ItemSeeds(BOPBlocks.turnip_block, Blocks.farmland),"turnip_seeds"); - turnip = registerItem(new ItemFood(3, 0.4F, false),"turnip"); + fleshchunk = registerItem(new Item(), "fleshchunk"); + mudball = registerItem(new ItemMudball(), "mudball"); + turnip_seeds = registerItem(new ItemSeeds(BOPBlocks.turnip_block, Blocks.farmland), "turnip_seeds"); + turnip = registerItem(new ItemFood(3, 0.4F, false), "turnip"); + persimmon = registerItem(new ItemFood(5, 0.2F, false), "persimmon"); + peach = registerItem(new ItemFood(5, 0.5F, false), "peach"); + pear = registerItem(new ItemFood(5, 0.3F, false), "pear"); + crystal_shard = registerItem(new Item(), "crystal_shard"); } private static Item registerItem(Item item, String name) diff --git a/src/main/resources/assets/biomesoplenty/blockstates/ash_stone.json b/src/main/resources/assets/biomesoplenty/blockstates/ash_stone.json new file mode 100644 index 000000000..2e792333e --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/ash_stone.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:ash_stone" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/crag_rock.json b/src/main/resources/assets/biomesoplenty/blockstates/crag_rock.json new file mode 100644 index 000000000..527ce062a --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/crag_rock.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:crag_rock" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/crystal.json b/src/main/resources/assets/biomesoplenty/blockstates/crystal.json new file mode 100644 index 000000000..8c949439e --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/crystal.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:crystal" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/dried_dirt.json b/src/main/resources/assets/biomesoplenty/blockstates/dried_dirt.json new file mode 100644 index 000000000..8b98cb633 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/dried_dirt.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:dried_dirt" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/fruit_block.json b/src/main/resources/assets/biomesoplenty/blockstates/fruit_block.json new file mode 100644 index 000000000..031c122f1 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/fruit_block.json @@ -0,0 +1,8 @@ +{ + "variants": { + "variant=apple": { "model": "biomesoplenty:apple_block" }, + "variant=persimmon": { "model": "biomesoplenty:persimmon_block" }, + "variant=peach": { "model": "biomesoplenty:peach_block" }, + "variant=pear": { "model": "biomesoplenty:pear_block" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/grass.json b/src/main/resources/assets/biomesoplenty/blockstates/grass.json index cbda40f0c..952a066b4 100644 --- a/src/main/resources/assets/biomesoplenty/blockstates/grass.json +++ b/src/main/resources/assets/biomesoplenty/blockstates/grass.json @@ -9,6 +9,8 @@ "snowy=false,variant=sandy_grass_block": { "model": "biomesoplenty:sandy_grass_block" }, "snowy=true,variant=sandy_grass_block": { "model": "biomesoplenty:sandy_grass_block_snowed" }, "snowy=false,variant=silty_grass_block": { "model": "biomesoplenty:silty_grass_block" }, - "snowy=true,variant=silty_grass_block": { "model": "biomesoplenty:silty_grass_block_snowed" } + "snowy=true,variant=silty_grass_block": { "model": "biomesoplenty:silty_grass_block_snowed" }, + "snowy=false,variant=origin_grass_block": { "model": "biomesoplenty:origin_grass_block" }, + "snowy=true,variant=origin_grass_block": { "model": "biomesoplenty:origin_grass_block_snowed" } } } diff --git a/src/main/resources/assets/biomesoplenty/blockstates/hard_dirt.json b/src/main/resources/assets/biomesoplenty/blockstates/hard_dirt.json new file mode 100644 index 000000000..ef44e17dc --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/hard_dirt.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:hard_dirt" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/hard_ice.json b/src/main/resources/assets/biomesoplenty/blockstates/hard_ice.json new file mode 100644 index 000000000..441c1d150 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/hard_ice.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:hard_ice" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/hard_sand.json b/src/main/resources/assets/biomesoplenty/blockstates/hard_sand.json new file mode 100644 index 000000000..debeafcd7 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/hard_sand.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:hard_sand" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/mud_brick.json b/src/main/resources/assets/biomesoplenty/blockstates/mud_brick.json new file mode 100644 index 000000000..a711c767a --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/mud_brick.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:mud_brick" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/stone_formations.json b/src/main/resources/assets/biomesoplenty/blockstates/stone_formations.json new file mode 100644 index 000000000..e05c40182 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/stone_formations.json @@ -0,0 +1,6 @@ +{ + "variants": { + "variant=stalagmite": { "model": "biomesoplenty:stalagmite" }, + "variant=stalactite": { "model": "biomesoplenty:stalactite" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/lang/en_US.lang b/src/main/resources/assets/biomesoplenty/lang/en_US.lang index 8b3a364ea..31a5414bc 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_US.lang +++ b/src/main/resources/assets/biomesoplenty/lang/en_US.lang @@ -16,6 +16,7 @@ tile.grass.smoldering_grass_block.name=Smoldering Grass Block tile.grass.loamy_grass_block.name=Loamy Grass Block tile.grass.sandy_grass_block.name=Sandy Grass Block tile.grass.silty_grass_block.name=Silty Grass Block +tile.grass.origin_grass_block.name=Origin Grass Block tile.coral.pink.name=Pink Coral tile.coral.orange.name=Orange Coral @@ -140,7 +141,28 @@ tile.dirt.coarse_loamy_dirt.name=Coarse Loamy Dirt tile.dirt.coarse_sandy_dirt.name=Coarse Sandy Dirt tile.dirt.coarse_silty_dirt.name=Coarse Silty Dirt +tile.stone_formations.stalagmite.name=Stalagmite +tile.stone_formations.stalactite.name=Stalactite + +tile.fruit_block.apple_block.name=Apple Block +tile.fruit_block.persimmon_block.name=Persimmon Block +tile.fruit_block.peach_block.name=Peach Block +tile.fruit_block.pear_block.name=Pear Block + +tile.ash_stone.name=Ash Stone +tile.hard_sand.name=Hardened Sand +tile.hard_dirt.name=Hardened Dirt +tile.hard_ice.name=Hardened Ice +tile.dried_dirt.name=Dried Dirt +tile.crag_rock.name=Crag Rock +tile.mud_brick.name=Mud Bricks +tile.crystal.name=Celestial Crystal + item.fleshchunk.name=Chunk of Flesh item.mudball.name=Mud Ball item.turnip.name=Turnip -item.turnip_seeds.name=Turnip Seeds \ No newline at end of file +item.turnip_seeds.name=Turnip Seeds +item.persimmon.name=Persimmon +item.peach.name=Peach +item.pear.name=Pear +item.crystal_shard.name=Celestial Crystal Shard diff --git a/src/main/resources/assets/biomesoplenty/models/block/apple_block.json b/src/main/resources/assets/biomesoplenty/models/block/apple_block.json new file mode 100644 index 000000000..64facfea3 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/apple_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/apple_block" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/ash_stone.json b/src/main/resources/assets/biomesoplenty/models/block/ash_stone.json new file mode 100644 index 000000000..e014a9d04 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/ash_stone.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/ash_stone" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/crag_rock.json b/src/main/resources/assets/biomesoplenty/models/block/crag_rock.json new file mode 100644 index 000000000..eb48f0eac --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/crag_rock.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/crag_rock" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/crystal.json b/src/main/resources/assets/biomesoplenty/models/block/crystal.json new file mode 100644 index 000000000..45f8574fa --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/crystal.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/crystal" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/dried_dirt.json b/src/main/resources/assets/biomesoplenty/models/block/dried_dirt.json new file mode 100644 index 000000000..20716bf46 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/dried_dirt.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/dried_dirt" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/hard_dirt.json b/src/main/resources/assets/biomesoplenty/models/block/hard_dirt.json new file mode 100644 index 000000000..93e0b76d7 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/hard_dirt.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/hard_dirt" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/hard_ice.json b/src/main/resources/assets/biomesoplenty/models/block/hard_ice.json new file mode 100644 index 000000000..3610557d9 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/hard_ice.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/hard_ice" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/hard_sand.json b/src/main/resources/assets/biomesoplenty/models/block/hard_sand.json new file mode 100644 index 000000000..587489107 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/hard_sand.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/hard_sand" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/mud_brick.json b/src/main/resources/assets/biomesoplenty/models/block/mud_brick.json new file mode 100644 index 000000000..17b066570 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/mud_brick.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/mud_brick" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/origin_grass_block.json b/src/main/resources/assets/biomesoplenty/models/block/origin_grass_block.json new file mode 100644 index 000000000..4db84c393 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/origin_grass_block.json @@ -0,0 +1,9 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "particle": "biomesoplenty:blocks/dirt_origin", + "bottom": "biomesoplenty:blocks/dirt_origin", + "top": "biomesoplenty:blocks/grass_origin_top", + "side": "biomesoplenty:blocks/grass_origin_side" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/origin_grass_block_snowed.json b/src/main/resources/assets/biomesoplenty/models/block/origin_grass_block_snowed.json new file mode 100644 index 000000000..89b3dd5ce --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/origin_grass_block_snowed.json @@ -0,0 +1,9 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "particle": "biomesoplenty:blocks/dirt_origin", + "bottom": "biomesoplenty:blocks/dirt_origin", + "top": "biomesoplenty:blocks/grass_origin_top", + "side": "biomesoplenty:blocks/grass_origin_side_snowed" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/biomesoplenty/models/block/peach_block.json b/src/main/resources/assets/biomesoplenty/models/block/peach_block.json new file mode 100644 index 000000000..1f1d33f3c --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/peach_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/peach_block" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/pear_block.json b/src/main/resources/assets/biomesoplenty/models/block/pear_block.json new file mode 100644 index 000000000..d77a2c57b --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/pear_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/pear_block" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/persimmon_block.json b/src/main/resources/assets/biomesoplenty/models/block/persimmon_block.json new file mode 100644 index 000000000..775822e23 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/persimmon_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/persimmon_block" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/stalactite.json b/src/main/resources/assets/biomesoplenty/models/block/stalactite.json new file mode 100644 index 000000000..b4fde795b --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/stalactite.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/stalactite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/biomesoplenty/models/block/stalagmite.json b/src/main/resources/assets/biomesoplenty/models/block/stalagmite.json new file mode 100644 index 000000000..d22609fac --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/stalagmite.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/stalagmite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/biomesoplenty/models/item/ash_stone.json b/src/main/resources/assets/biomesoplenty/models/item/ash_stone.json new file mode 100644 index 000000000..fc4394d94 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/ash_stone.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/ash_stone", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/crag_rock.json b/src/main/resources/assets/biomesoplenty/models/item/crag_rock.json new file mode 100644 index 000000000..a15ec0b56 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/crag_rock.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/crag_rock", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/crystal.json b/src/main/resources/assets/biomesoplenty/models/item/crystal.json new file mode 100644 index 000000000..a30f14b12 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/crystal.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/crystal", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/crystal_shard.json b/src/main/resources/assets/biomesoplenty/models/item/crystal_shard.json new file mode 100644 index 000000000..c0f90acaa --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/crystal_shard.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:items/crystal_shard" + }, + "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/dried_dirt.json b/src/main/resources/assets/biomesoplenty/models/item/dried_dirt.json new file mode 100644 index 000000000..eed489321 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/dried_dirt.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/dried_dirt", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/hard_dirt.json b/src/main/resources/assets/biomesoplenty/models/item/hard_dirt.json new file mode 100644 index 000000000..50c9ad3ed --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/hard_dirt.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/hard_dirt", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/hard_ice.json b/src/main/resources/assets/biomesoplenty/models/item/hard_ice.json new file mode 100644 index 000000000..f36b3e451 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/hard_ice.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/hard_ice", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/hard_sand.json b/src/main/resources/assets/biomesoplenty/models/item/hard_sand.json new file mode 100644 index 000000000..7f39fb00f --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/hard_sand.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/hard_sand", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/mud_brick.json b/src/main/resources/assets/biomesoplenty/models/item/mud_brick.json new file mode 100644 index 000000000..86d5470d3 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/mud_brick.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/mud_brick", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/origin_grass_block.json b/src/main/resources/assets/biomesoplenty/models/item/origin_grass_block.json new file mode 100644 index 000000000..f961331a3 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/origin_grass_block.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/origin_grass_block", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/peach.json b/src/main/resources/assets/biomesoplenty/models/item/peach.json new file mode 100644 index 000000000..7d20d3cfc --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/peach.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:items/peach" + }, + "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/pear.json b/src/main/resources/assets/biomesoplenty/models/item/pear.json new file mode 100644 index 000000000..5c8ae32b2 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/pear.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:items/pear" + }, + "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/persimmon.json b/src/main/resources/assets/biomesoplenty/models/item/persimmon.json new file mode 100644 index 000000000..f8c06b030 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/persimmon.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:items/persimmon" + }, + "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/stalactite.json b/src/main/resources/assets/biomesoplenty/models/item/stalactite.json new file mode 100644 index 000000000..b2dc21e0e --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/stalactite.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:blocks/stalactite" + }, + "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/stalagmite.json b/src/main/resources/assets/biomesoplenty/models/item/stalagmite.json new file mode 100644 index 000000000..e26e5c37a --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/stalagmite.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:blocks/stalagmite" + }, + "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/apple_block.png b/src/main/resources/assets/biomesoplenty/textures/blocks/apple_block.png new file mode 100644 index 000000000..4cbb125cb Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/apple_block.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/ash_stone.png b/src/main/resources/assets/biomesoplenty/textures/blocks/ash_stone.png new file mode 100644 index 000000000..3a6bd877b Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/ash_stone.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/crag_rock.png b/src/main/resources/assets/biomesoplenty/textures/blocks/crag_rock.png new file mode 100644 index 000000000..7f402d12b Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/crag_rock.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/crystal.png b/src/main/resources/assets/biomesoplenty/textures/blocks/crystal.png new file mode 100644 index 000000000..6ec662670 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/crystal.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/dirt_origin.png b/src/main/resources/assets/biomesoplenty/textures/blocks/dirt_origin.png new file mode 100644 index 000000000..504a6c671 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/dirt_origin.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/dried_dirt.png b/src/main/resources/assets/biomesoplenty/textures/blocks/dried_dirt.png new file mode 100644 index 000000000..494b033dc Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/dried_dirt.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_side.png b/src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_side.png new file mode 100644 index 000000000..ff32f30e4 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_side.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_side_snowed.png b/src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_side_snowed.png new file mode 100644 index 000000000..d01e458a9 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_side_snowed.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_top.png b/src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_top.png new file mode 100644 index 000000000..0e0a6bbf1 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_top.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/hard_dirt.png b/src/main/resources/assets/biomesoplenty/textures/blocks/hard_dirt.png new file mode 100644 index 000000000..2bc15b2ce Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/hard_dirt.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/hard_ice.png b/src/main/resources/assets/biomesoplenty/textures/blocks/hard_ice.png new file mode 100644 index 000000000..3ee1a9053 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/hard_ice.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/hard_sand.png b/src/main/resources/assets/biomesoplenty/textures/blocks/hard_sand.png new file mode 100644 index 000000000..adfe20302 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/hard_sand.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/mud_brick.png b/src/main/resources/assets/biomesoplenty/textures/blocks/mud_brick.png new file mode 100644 index 000000000..04f70770e Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/mud_brick.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/peach_block.png b/src/main/resources/assets/biomesoplenty/textures/blocks/peach_block.png new file mode 100644 index 000000000..e8af494cf Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/peach_block.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/pear_block.png b/src/main/resources/assets/biomesoplenty/textures/blocks/pear_block.png new file mode 100644 index 000000000..70ca146c9 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/pear_block.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/persimmon_block.png b/src/main/resources/assets/biomesoplenty/textures/blocks/persimmon_block.png new file mode 100644 index 000000000..b2b007b51 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/persimmon_block.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/stalactite.png b/src/main/resources/assets/biomesoplenty/textures/blocks/stalactite.png new file mode 100644 index 000000000..ee8c0e4db Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/stalactite.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/stalagmite.png b/src/main/resources/assets/biomesoplenty/textures/blocks/stalagmite.png new file mode 100644 index 000000000..e0d8b1e11 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/stalagmite.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/items/crystal_shard.png b/src/main/resources/assets/biomesoplenty/textures/items/crystal_shard.png new file mode 100644 index 000000000..5e426c885 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/items/crystal_shard.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/items/peach.png b/src/main/resources/assets/biomesoplenty/textures/items/peach.png new file mode 100644 index 000000000..bc78e023b Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/items/peach.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/items/pear.png b/src/main/resources/assets/biomesoplenty/textures/items/pear.png new file mode 100644 index 000000000..8333f50dc Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/items/pear.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/items/persimmon.png b/src/main/resources/assets/biomesoplenty/textures/items/persimmon.png new file mode 100644 index 000000000..bcc011e17 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/items/persimmon.png differ