JSON models hurt my head

This commit is contained in:
Nick 2015-10-30 21:20:23 -07:00
parent f3645a35fa
commit b45172294d
6 changed files with 132 additions and 0 deletions

View file

@ -0,0 +1,68 @@
package WayofTime.alchemicalWizardry.block;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyInteger;
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 java.util.List;
public class BlockRitualHome extends Block {
public static final String[] names = { "master", "imperfect" };
public static final PropertyInteger META = PropertyInteger.create("meta", 0, names.length - 1);
public BlockRitualHome() {
super(Material.rock);
setUnlocalizedName(AlchemicalWizardry.MODID + ".stone.ritual.");
setCreativeTab(AlchemicalWizardry.tabBloodMagic);
setStepSound(soundTypeStone);
setHardness(2.0F);
setHarvestLevel("pickaxe", 2);
}
@Override
@SideOnly(Side.CLIENT)
@SuppressWarnings("unchecked")
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
for (int i = 0; i < names.length; i++)
list.add(new ItemStack(this, 1, i));
}
@Override
public IBlockState getStateFromMeta(int meta) {
return this.getDefaultState().withProperty(META, meta);
}
@Override
public int getMetaFromState(IBlockState state) {
return (Integer) state.getValue(META);
}
@Override
public int damageDropped(IBlockState state) {
return getMetaFromState(state);
}
@Override
protected BlockState createBlockState() {
return new BlockState(this, META);
}
@Override
public ItemStack getPickBlock(MovingObjectPosition target, World world, BlockPos pos, EntityPlayer player) {
return new ItemStack(this, 1, this.getMetaFromState(world.getBlockState(pos)));
}
}

View file

@ -0,0 +1,25 @@
package WayofTime.alchemicalWizardry.item.block;
import WayofTime.alchemicalWizardry.block.BlockRitualHome;
import net.minecraft.block.Block;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
public class ItemBlockRitualHome extends ItemBlock {
public ItemBlockRitualHome(Block block) {
super(block);
setHasSubtypes(true);
}
@Override
public String getUnlocalizedName(ItemStack stack) {
return super.getUnlocalizedName(stack) + BlockRitualHome.names[stack.getItemDamage()];
}
@Override
public int getMetadata(int meta) {
return meta;
}
}

View file

@ -4,6 +4,8 @@ import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ConfigHandler;
import WayofTime.alchemicalWizardry.block.BlockAltar;
import WayofTime.alchemicalWizardry.block.BlockLifeEssence;
import WayofTime.alchemicalWizardry.block.BlockRitualHome;
import WayofTime.alchemicalWizardry.item.block.ItemBlockRitualHome;
import WayofTime.alchemicalWizardry.util.helper.InventoryRenderHelper;
import net.minecraft.block.Block;
import net.minecraft.item.ItemBlock;
@ -13,6 +15,7 @@ import net.minecraftforge.fml.common.registry.GameRegistry;
public class ModBlocks {
public static Block altar;
public static Block ritualStone;
public static Block lifeEssence;
@ -23,7 +26,9 @@ public class ModBlocks {
public static void init() {
FluidRegistry.registerFluid(BlockLifeEssence.getLifeEssence());
lifeEssence = registerBlock(new BlockLifeEssence());
altar = registerBlock(new BlockAltar());
ritualStone = registerBlock(new BlockRitualHome(), ItemBlockRitualHome.class);
initTiles();
}
@ -36,6 +41,8 @@ public class ModBlocks {
InventoryRenderHelper renderHelper = AlchemicalWizardry.instance.getRenderHelper();
renderHelper.fluidRender(lifeEssence);
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualStone), 0);
renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(ritualStone), 1);
}
private static Block registerBlock(Block block, Class<? extends ItemBlock> itemBlock, String name) {
@ -45,6 +52,10 @@ public class ModBlocks {
return block;
}
private static Block registerBlock(Block block, Class<? extends ItemBlock> itemBlock) {
return registerBlock(block, itemBlock, block.getClass().getSimpleName());
}
private static Block registerBlock(Block block, String name) {
if (!ConfigHandler.blockBlacklist.contains(name))
GameRegistry.registerBlock(block, name);

View file

@ -64,6 +64,10 @@ public class InventoryRenderHelper {
itemRender(item, meta, item.getClass().getSimpleName() + meta);
}
public void itemRender(Item item, String name) {
itemRender(item, 0, name);
}
/**
* Shorthand of {@code itemRender(Item, int)}
*

View file

@ -0,0 +1,24 @@
{
"forge_marker": 1,
"defaults": {
"textures": {
"all": "alchemicalwizardry:blocks/MasterRitualStone"
},
"model": "cube_all",
"uvlock": true
},
"variants": {
"meta": {
0: {
"textures": {
"all": "alchemicalwizardry:blocks/MasterRitualStone"
}
},
1: {
"textures": {
"all": "alchemicalwizardry:blocks/ImperfectRitualStone"
}
}
}
}
}