Created the BlockRitualStone and had it implement IRitualStone. Created .json files necessary
Created PropertyRuneType.
This commit is contained in:
parent
8f623de469
commit
bf912ae03f
|
@ -0,0 +1,48 @@
|
||||||
|
package WayofTime.bloodmagic.api.ritual;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
import net.minecraft.block.properties.PropertyEnum;
|
||||||
|
|
||||||
|
import com.google.common.base.Predicate;
|
||||||
|
import com.google.common.base.Predicates;
|
||||||
|
import com.google.common.collect.Collections2;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
|
public class PropertyRuneType extends PropertyEnum
|
||||||
|
{
|
||||||
|
protected PropertyRuneType(String name, Collection values)
|
||||||
|
{
|
||||||
|
super(name, EnumRuneType.class, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new PropertyRuneType with the given name
|
||||||
|
*/
|
||||||
|
public static PropertyRuneType create(String name)
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Create a new PropertyRuneType with all directions that match the given Predicate
|
||||||
|
*/
|
||||||
|
return create(name, Predicates.alwaysTrue());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new PropertyRuneType with all directions that match the given Predicate
|
||||||
|
*/
|
||||||
|
public static PropertyRuneType create(String name, Predicate filter)
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Create a new PropertyRuneType for the given direction values
|
||||||
|
*/
|
||||||
|
return create(name, Collections2.filter(Lists.newArrayList(EnumRuneType.values()), filter));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new PropertyRuneType for the given direction values
|
||||||
|
*/
|
||||||
|
public static PropertyRuneType create(String name, Collection values)
|
||||||
|
{
|
||||||
|
return new PropertyRuneType(name, values);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,83 @@
|
||||||
|
package WayofTime.bloodmagic.block;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.block.state.BlockState;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.BlockPos;
|
||||||
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
import WayofTime.bloodmagic.BloodMagic;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.IRitualStone;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.PropertyRuneType;
|
||||||
|
|
||||||
|
public class BlockRitualStone extends Block implements IRitualStone {
|
||||||
|
|
||||||
|
public static final String[] names = { "blank", "water", "fire", "earth", "air", "dusk", "dawn" };
|
||||||
|
public static final PropertyRuneType TYPE = PropertyRuneType.create("TYPE");
|
||||||
|
|
||||||
|
public BlockRitualStone() {
|
||||||
|
super(Material.iron);
|
||||||
|
|
||||||
|
setUnlocalizedName(BloodMagic.MODID + ".ritualStone.");
|
||||||
|
setCreativeTab(BloodMagic.tabBloodMagic);
|
||||||
|
setStepSound(soundTypeStone);
|
||||||
|
setHardness(2.0F);
|
||||||
|
setResistance(5.0F);
|
||||||
|
setHarvestLevel("pickaxe", 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getStateFromMeta(int meta) {
|
||||||
|
return this.getDefaultState()
|
||||||
|
.withProperty(TYPE, EnumRuneType.byMetadata(meta));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetaFromState(IBlockState state) {
|
||||||
|
return ((EnumRuneType) state.getValue(TYPE)).ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int damageDropped(IBlockState state) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected BlockState createBlockState() {
|
||||||
|
return new BlockState(this, TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getPickBlock(MovingObjectPosition target, World world, BlockPos pos, EntityPlayer player) {
|
||||||
|
return new ItemStack(this, 1, this.getMetaFromState(world
|
||||||
|
.getBlockState(pos)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public void getSubBlocks(Item item, CreativeTabs creativeTabs, List list) {
|
||||||
|
for (int i = 0; i < names.length; i++)
|
||||||
|
list.add(new ItemStack(this, 1, i));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isRuneType(World world, BlockPos pos, int meta, EnumRuneType runeType) {
|
||||||
|
return this.getRitualStone(world, pos, meta).equals(runeType);
|
||||||
|
}
|
||||||
|
|
||||||
|
private EnumRuneType getRitualStone(World world, BlockPos pos, int meta) {
|
||||||
|
IBlockState state = this.getStateFromMeta(meta);
|
||||||
|
return ((EnumRuneType) state.getValue(TYPE));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package WayofTime.bloodmagic.item.block;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.item.ItemBlock;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import WayofTime.bloodmagic.block.BlockRitualStone;
|
||||||
|
|
||||||
|
public class ItemBlockRitualStone extends ItemBlock {
|
||||||
|
|
||||||
|
public ItemBlockRitualStone(Block block) {
|
||||||
|
super(block);
|
||||||
|
setHasSubtypes(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUnlocalizedName(ItemStack stack) {
|
||||||
|
return super.getUnlocalizedName(stack) + BlockRitualStone.names[stack.getItemDamage()];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetadata(int meta) {
|
||||||
|
return meta;
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,9 +10,11 @@ import WayofTime.bloodmagic.block.BlockAltar;
|
||||||
import WayofTime.bloodmagic.block.BlockBloodRune;
|
import WayofTime.bloodmagic.block.BlockBloodRune;
|
||||||
import WayofTime.bloodmagic.block.BlockLifeEssence;
|
import WayofTime.bloodmagic.block.BlockLifeEssence;
|
||||||
import WayofTime.bloodmagic.block.BlockRitualController;
|
import WayofTime.bloodmagic.block.BlockRitualController;
|
||||||
|
import WayofTime.bloodmagic.block.BlockRitualStone;
|
||||||
import WayofTime.bloodmagic.block.BlockTestSpellBlock;
|
import WayofTime.bloodmagic.block.BlockTestSpellBlock;
|
||||||
import WayofTime.bloodmagic.item.block.ItemBlockBloodRune;
|
import WayofTime.bloodmagic.item.block.ItemBlockBloodRune;
|
||||||
import WayofTime.bloodmagic.item.block.ItemBlockRitualController;
|
import WayofTime.bloodmagic.item.block.ItemBlockRitualController;
|
||||||
|
import WayofTime.bloodmagic.item.block.ItemBlockRitualStone;
|
||||||
import WayofTime.bloodmagic.tile.TileAltar;
|
import WayofTime.bloodmagic.tile.TileAltar;
|
||||||
import WayofTime.bloodmagic.tile.TileImperfectRitualStone;
|
import WayofTime.bloodmagic.tile.TileImperfectRitualStone;
|
||||||
import WayofTime.bloodmagic.tile.TileMasterRitualStone;
|
import WayofTime.bloodmagic.tile.TileMasterRitualStone;
|
||||||
|
@ -22,6 +24,7 @@ public class ModBlocks
|
||||||
{
|
{
|
||||||
public static Block altar;
|
public static Block altar;
|
||||||
public static Block bloodRune;
|
public static Block bloodRune;
|
||||||
|
public static Block ritualController;
|
||||||
public static Block ritualStone;
|
public static Block ritualStone;
|
||||||
public static Block testSpellBlock;
|
public static Block testSpellBlock;
|
||||||
|
|
||||||
|
@ -37,7 +40,8 @@ public class ModBlocks
|
||||||
|
|
||||||
altar = registerBlock(new BlockAltar());
|
altar = registerBlock(new BlockAltar());
|
||||||
bloodRune = registerBlock(new BlockBloodRune(), ItemBlockBloodRune.class);
|
bloodRune = registerBlock(new BlockBloodRune(), ItemBlockBloodRune.class);
|
||||||
ritualStone = registerBlock(new BlockRitualController(), ItemBlockRitualController.class);
|
ritualController = registerBlock(new BlockRitualController(), ItemBlockRitualController.class);
|
||||||
|
ritualStone = registerBlock(new BlockRitualStone(), ItemBlockRitualStone.class);
|
||||||
testSpellBlock = registerBlock(new BlockTestSpellBlock());
|
testSpellBlock = registerBlock(new BlockTestSpellBlock());
|
||||||
|
|
||||||
initTiles();
|
initTiles();
|
||||||
|
@ -65,8 +69,15 @@ public class ModBlocks
|
||||||
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(bloodRune), 7);
|
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(bloodRune), 7);
|
||||||
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(bloodRune), 8);
|
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(bloodRune), 8);
|
||||||
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(bloodRune), 9);
|
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(bloodRune), 9);
|
||||||
|
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualController), 0);
|
||||||
|
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualController), 1);
|
||||||
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualStone), 0);
|
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualStone), 0);
|
||||||
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualStone), 1);
|
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualStone), 1);
|
||||||
|
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualStone), 2);
|
||||||
|
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualStone), 3);
|
||||||
|
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualStone), 4);
|
||||||
|
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualStone), 5);
|
||||||
|
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualStone), 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Block registerBlock(Block block, Class<? extends ItemBlock> itemBlock, String name) {
|
private static Block registerBlock(Block block, Class<? extends ItemBlock> itemBlock, String name) {
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"textures": { },
|
||||||
|
"model": "cube_all",
|
||||||
|
"uvlock": true
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"type": {
|
||||||
|
"blank": {
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/RitualStone"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"water": {
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/WaterRitualStone"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fire": {
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/FireRitualStone"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"earth": {
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/EarthRitualStone"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"air": {
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/AirRitualStone"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dusk": {
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/DuskRitualStone"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dawn": {
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/LightRitualStone"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/RitualStone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/WaterRitualStone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/FireRitualStone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/EarthRitualStone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/AirRitualStone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/DuskRitualStone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "bloodmagic:blocks/LightRitualStone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"parent": "bloodmagic:block/BlockRitualStone0",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "bloodmagic:block/BlockRitualStone1",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "bloodmagic:block/BlockRitualStone2",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "bloodmagic:block/BlockRitualStone3",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "bloodmagic:block/BlockRitualStone4",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "bloodmagic:block/BlockRitualStone5",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "bloodmagic:block/BlockRitualStone6",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue