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.BlockLifeEssence;
|
||||
import WayofTime.bloodmagic.block.BlockRitualController;
|
||||
import WayofTime.bloodmagic.block.BlockRitualStone;
|
||||
import WayofTime.bloodmagic.block.BlockTestSpellBlock;
|
||||
import WayofTime.bloodmagic.item.block.ItemBlockBloodRune;
|
||||
import WayofTime.bloodmagic.item.block.ItemBlockRitualController;
|
||||
import WayofTime.bloodmagic.item.block.ItemBlockRitualStone;
|
||||
import WayofTime.bloodmagic.tile.TileAltar;
|
||||
import WayofTime.bloodmagic.tile.TileImperfectRitualStone;
|
||||
import WayofTime.bloodmagic.tile.TileMasterRitualStone;
|
||||
|
@ -22,6 +24,7 @@ public class ModBlocks
|
|||
{
|
||||
public static Block altar;
|
||||
public static Block bloodRune;
|
||||
public static Block ritualController;
|
||||
public static Block ritualStone;
|
||||
public static Block testSpellBlock;
|
||||
|
||||
|
@ -37,7 +40,8 @@ public class ModBlocks
|
|||
|
||||
altar = registerBlock(new BlockAltar());
|
||||
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());
|
||||
|
||||
initTiles();
|
||||
|
@ -65,8 +69,15 @@ public class ModBlocks
|
|||
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(bloodRune), 7);
|
||||
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(bloodRune), 8);
|
||||
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), 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) {
|
||||
|
|
|
@ -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