Added to the object reg

This commit is contained in:
DarkGuardsman 2013-10-13 04:14:22 -04:00
parent 16f4403a82
commit 784e05ef30
2 changed files with 46 additions and 7 deletions

View file

@ -37,9 +37,9 @@ import dark.api.energy.IPowerLess;
import dark.core.common.ExternalModHandler;
/** Basic energy tile that can consume power
*
*
* Based off both UE universal electrical tile, and electrical tile prefabs
*
*
* @author DarkGuardsman */
public class TileEntityEnergyMachine extends TileEntityMachine implements IElectrical, IElectricalStorage, IEnergySink, IEnergySource, IPowerReceptor, IPowerLess
{
@ -417,7 +417,7 @@ public class TileEntityEnergyMachine extends TileEntityMachine implements IElect
}
/** Produces UE power towards a specific direction.
*
*
* @param outputDirection - The output direction. */
public void produceUE(ForgeDirection outputDirection)
{
@ -446,7 +446,7 @@ public class TileEntityEnergyMachine extends TileEntityMachine implements IElect
}
/** The electrical input direction.
*
*
* @return The direction that electricity is entered into the tile. Return null for no input. By
* default you can accept power from all sides. */
public EnumSet<ForgeDirection> getInputDirections()
@ -455,7 +455,7 @@ public class TileEntityEnergyMachine extends TileEntityMachine implements IElect
}
/** The electrical output direction.
*
*
* @return The direction that electricity is output from the tile. Return null for no output. By
* default it will return an empty EnumSet. */
public EnumSet<ForgeDirection> getOutputDirections()

View file

@ -2,7 +2,10 @@ package dark.core.registration;
import java.io.File;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map.Entry;
import java.util.Set;
import net.minecraft.block.Block;
@ -25,10 +28,11 @@ import dark.core.prefab.ModPrefab;
import dark.core.prefab.machine.BlockMachine;
/** Handler to make registering all parts of a mod's objects that are loaded into the game by forge
*
*
* @author DarkGuardsman */
public class ModObjectRegistry
{
public static HashMap<Block, String> registredBlocks = new HashMap<Block, String>();
@SidedProxy(clientSide = "dark.core.registration.ClientRegistryProxy", serverSide = "dark.core.registration.RegistryProxy")
public static RegistryProxy proxy;
@ -55,6 +59,7 @@ public class ModObjectRegistry
Block block = null;
if (blockClass != null && (!canDisable || canDisable && masterBlockConfig.get("Enabled_List", "Enabled_" + name, true).getBoolean(true)))
{
//TODO redesign to catch blockID conflict
try
{
block = blockClass.newInstance();
@ -65,6 +70,7 @@ public class ModObjectRegistry
}
if (block != null)
{
registredBlocks.put(block, name);
proxy.registerBlock(block, itemClass, name, modID);
ModObjectRegistry.finishCreation(block, null);
}
@ -166,6 +172,39 @@ public class ModObjectRegistry
}
/** Method to get block via name
*
* @param blockName
* @return Block requested */
public static Block getBlock(String blockName)
{
for (Entry<Block,String> entry : registredBlocks.entrySet())
{
String name = entry.getKey().getUnlocalizedName().replace("tile.", "");
if (name.equalsIgnoreCase(blockName))
{
return entry.getKey();
}
}
return null;
}
/** Method to get block via id
*
* @param blockID
* @return Block requested */
public static Block getBlock(int blockID)
{
for (Entry<Block,String> entry : registredBlocks.entrySet())
{
if (entry.getKey().blockID == blockID)
{
return entry.getKey();
}
}
return null;
}
public static Block createNewFluidBlock(String modDomainPrefix, Configuration config, Fluid fluid)
{
Block fluidBlock = null;
@ -244,7 +283,7 @@ public class ModObjectRegistry
}
/** Adds a tileEntity to be registered when this block is registered
*
*
* @param name - mod name for the tileEntity, should be unique
* @param class1 - new instance of the TileEntity to register */
public BlockBuildData addTileEntity(String name, Class<? extends TileEntity> class1)