Beginning work on updating to 1.8. Well here we are again.
This commit is contained in:
commit
fad08ead79
|
@ -0,0 +1,14 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 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.api;
|
||||||
|
|
||||||
|
public interface IConfigurable
|
||||||
|
{
|
||||||
|
boolean isEnabled(Object... args);
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 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.api.block;
|
||||||
|
|
||||||
|
import biomesoplenty.api.IConfigurable;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
|
||||||
|
public abstract class BOPBlock extends Block implements IConfigurable
|
||||||
|
{
|
||||||
|
protected BOPBlock(Material material)
|
||||||
|
{
|
||||||
|
super(material);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
//TODO: Account for configurations (which are provided by Forge and thus, cannot be done at this time)
|
||||||
|
public boolean isEnabled(Object... args)
|
||||||
|
{
|
||||||
|
if (args[0] instanceof IBlockState)
|
||||||
|
{
|
||||||
|
IBlockState blockState = (IBlockState)args[0];
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 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.api.block;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
|
||||||
|
public class BOPBlocks
|
||||||
|
{
|
||||||
|
public static Block ash_block;
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 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.client.util;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.renderer.ItemModelMesher;
|
||||||
|
import net.minecraft.client.resources.model.ModelResourceLocation;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public class ModelHelper
|
||||||
|
{
|
||||||
|
public static void registerItem(Item item, int metadata, String itemName)
|
||||||
|
{
|
||||||
|
getItemModelMesher().register(item, metadata, new ModelResourceLocation(itemName, "inventory"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void registerBlock(Block block, int metadata, String blockName)
|
||||||
|
{
|
||||||
|
registerItem(Item.getItemFromBlock(block), metadata, blockName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void registerBlock(Block block, String blockName)
|
||||||
|
{
|
||||||
|
registerBlock(block, 0, blockName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void registerItem(Item item, String itemName)
|
||||||
|
{
|
||||||
|
registerItem(item, 0, itemName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ItemModelMesher getItemModelMesher()
|
||||||
|
{
|
||||||
|
return Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,102 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 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.state.IBlockState;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.BlockPos;
|
||||||
|
import net.minecraft.util.EnumParticleTypes;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
import biomesoplenty.api.block.BOPBlock;
|
||||||
|
import biomesoplenty.common.util.inventory.CreativeTabBOP;
|
||||||
|
|
||||||
|
//TODO: Commented methods and calls
|
||||||
|
public class BlockAsh extends BOPBlock
|
||||||
|
{
|
||||||
|
public BlockAsh()
|
||||||
|
{
|
||||||
|
super(Material.sand);
|
||||||
|
|
||||||
|
this.setHardness(0.4F);
|
||||||
|
//this.setHarvestLevel("shovel", 0);
|
||||||
|
this.setStepSound(Block.soundTypeSand);
|
||||||
|
this.setCreativeTab(CreativeTabBOP.instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AxisAlignedBB getCollisionBoundingBox(World world, BlockPos pos, IBlockState state)
|
||||||
|
{
|
||||||
|
float heightOffset = 0.125F;
|
||||||
|
return new AxisAlignedBB((double)pos.getX(), (double)pos.getY(), (double)pos.getZ(), (double)(pos.getX() + 1), (double)((float)(pos.getY() + 1) - heightOffset), (double)(pos.getZ() + 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity)
|
||||||
|
{
|
||||||
|
/*if (entity instanceof EntityPlayer)
|
||||||
|
{
|
||||||
|
InventoryPlayer inventory = ((EntityPlayer)entity).inventory;
|
||||||
|
|
||||||
|
if (inventory.armorInventory[0] != null && inventory.armorInventory[0].getItem() == BOPCItems.wadingBoots)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
entity.motionX *= 0.4D;
|
||||||
|
entity.motionZ *= 0.4D;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*@Override
|
||||||
|
public boolean isFireSource(World world, int x, int y, int z, ForgeDirection side)
|
||||||
|
{
|
||||||
|
if (side == ForgeDirection.UP)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
/*@Override
|
||||||
|
public Item getItemDropped(int metadata, Random random, int fortune)
|
||||||
|
{
|
||||||
|
return BOPCItems.misc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int damageDropped(int meta)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int quantityDropped(Random random)
|
||||||
|
{
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void randomDisplayTick(World world, BlockPos pos, IBlockState state, Random random)
|
||||||
|
{
|
||||||
|
if (random.nextInt(2) == 0)
|
||||||
|
{
|
||||||
|
world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, pos.getX() + random.nextFloat(), pos.getY() + 1.1F, pos.getZ() + random.nextFloat(), 0.0D, 0.0D, 0.0D, new int[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 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.init;
|
||||||
|
|
||||||
|
import static biomesoplenty.api.block.BOPBlocks.ash_block;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import biomesoplenty.common.block.BlockAsh;
|
||||||
|
import biomesoplenty.common.util.RegistryUtil;
|
||||||
|
import biomesoplenty.core.BiomesOPlenty;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
|
public class ModBlocks
|
||||||
|
{
|
||||||
|
public static void init()
|
||||||
|
{
|
||||||
|
ash_block = registerBlock(new BlockAsh(), "ash_block");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Block registerBlock(Block block, String name)
|
||||||
|
{
|
||||||
|
block.setUnlocalizedName(name);
|
||||||
|
block = RegistryUtil.registerBlock(block, name);
|
||||||
|
|
||||||
|
for (IBlockState state : (ImmutableList<IBlockState>)block.getBlockState().getValidStates())
|
||||||
|
{
|
||||||
|
BiomesOPlenty.proxy.registerBlockForMeshing(block, block.getMetaFromState(state), name);
|
||||||
|
}
|
||||||
|
|
||||||
|
return block;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 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.init;
|
||||||
|
|
||||||
|
public class ModItems
|
||||||
|
{
|
||||||
|
public static void init()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 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<? extends ItemBlock> itemclass, String name)
|
||||||
|
{
|
||||||
|
return registerBlock(block, itemclass, name, new Object[]{});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Block registerBlock(Block block, Class<? extends ItemBlock> itemclass, String name, Object... itemCtorArgs)
|
||||||
|
{
|
||||||
|
block = GameRegistry.registerBlock(block, itemclass, name, itemCtorArgs);
|
||||||
|
Item associatedItem = GameRegistry.findItem(BiomesOPlenty.MOD_ID, name);
|
||||||
|
|
||||||
|
Item.field_179220_a.put(block, associatedItem);
|
||||||
|
|
||||||
|
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.field_176229_d.func_148746_a(iblockstate, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
return block;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 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.inventory;
|
||||||
|
|
||||||
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
|
||||||
|
//TODO: Do this properly once Forge is updated
|
||||||
|
public class CreativeTabBOP
|
||||||
|
{
|
||||||
|
public static final CreativeTabs instance = CreativeTabs.tabMisc;
|
||||||
|
}
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 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.core;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
import net.minecraftforge.fml.common.Mod;
|
||||||
|
import net.minecraftforge.fml.common.Mod.EventHandler;
|
||||||
|
import net.minecraftforge.fml.common.Mod.Instance;
|
||||||
|
import net.minecraftforge.fml.common.SidedProxy;
|
||||||
|
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
||||||
|
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
|
||||||
|
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||||
|
import biomesoplenty.common.init.ModBlocks;
|
||||||
|
import biomesoplenty.common.init.ModItems;
|
||||||
|
|
||||||
|
@Mod(modid = BiomesOPlenty.MOD_ID, name = BiomesOPlenty.MOD_NAME)
|
||||||
|
public class BiomesOPlenty
|
||||||
|
{
|
||||||
|
public static final String MOD_NAME = "Biomes O' Plenty";
|
||||||
|
public static final String MOD_ID = "BiomesOPlenty";
|
||||||
|
|
||||||
|
@Instance(MOD_ID)
|
||||||
|
public static BiomesOPlenty instance;
|
||||||
|
|
||||||
|
@SidedProxy(clientSide = "biomesoplenty.core.ClientProxy", serverSide = "biomesoplenty.core.CommonProxy")
|
||||||
|
public static CommonProxy proxy;
|
||||||
|
|
||||||
|
private File configDirectory;
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void preInit(FMLPreInitializationEvent event)
|
||||||
|
{
|
||||||
|
configDirectory = new File(event.getModConfigurationDirectory(), "biomesoplenty");
|
||||||
|
|
||||||
|
//TODO: ModConfiguration.load();
|
||||||
|
ModItems.init();
|
||||||
|
ModBlocks.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void init(FMLInitializationEvent event)
|
||||||
|
{
|
||||||
|
proxy.registerRenderers();
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void postInit(FMLPostInitializationEvent event)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public File getConfigDirectory()
|
||||||
|
{
|
||||||
|
return configDirectory;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 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.core;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import biomesoplenty.client.util.ModelHelper;
|
||||||
|
|
||||||
|
public class ClientProxy extends CommonProxy
|
||||||
|
{
|
||||||
|
private static ArrayList<ModelEntry> blocksToRegister = new ArrayList();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerRenderers()
|
||||||
|
{
|
||||||
|
for (ModelEntry modelEntry : blocksToRegister)
|
||||||
|
{
|
||||||
|
ModelHelper.registerItem(modelEntry.item, modelEntry.metadata, BiomesOPlenty.MOD_ID + ":" + modelEntry.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerBlockForMeshing(Block block, int metadata, String name)
|
||||||
|
{
|
||||||
|
blocksToRegister.add(new ModelEntry(Item.getItemFromBlock(block), metadata, name));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class ModelEntry
|
||||||
|
{
|
||||||
|
public Item item;
|
||||||
|
public int metadata;
|
||||||
|
public String name;
|
||||||
|
|
||||||
|
public ModelEntry(Item item, int metadata, String name)
|
||||||
|
{
|
||||||
|
this.item = item;
|
||||||
|
this.metadata = metadata;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 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.core;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
|
||||||
|
public class CommonProxy
|
||||||
|
{
|
||||||
|
public void registerRenderers() {}
|
||||||
|
|
||||||
|
public void registerBlockForMeshing(Block block, int metadata, String name) {}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"normal": { "model": "biomesoplenty:ash_block" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
tile.ash_block.name=Ash Block
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "biomesoplenty:blocks/ash_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"parent": "biomesoplenty:block/ash_block",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 525 B |
Loading…
Reference in New Issue