ReworkedExtraInfoLoading
This commit is contained in:
parent
86adce5ada
commit
b4b8f857d1
10 changed files with 98 additions and 99 deletions
|
@ -8,26 +8,22 @@ import net.minecraft.block.material.Material;
|
|||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.FurnaceRecipes;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.Configuration;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import universalelectricity.prefab.ore.OreGenReplaceStone;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import dark.api.ProcessorRecipes;
|
||||
import dark.api.ProcessorRecipes.ProcessorType;
|
||||
import dark.core.common.CoreRecipeLoader;
|
||||
import dark.core.common.DarkMain;
|
||||
import dark.core.common.items.EnumMaterial;
|
||||
import dark.core.common.items.EnumOrePart;
|
||||
import dark.core.common.items.ItemOreDirv;
|
||||
import dark.core.prefab.IExtraObjectInfo;
|
||||
import dark.core.prefab.IExtraInfo.IExtraBlockInfo;
|
||||
import dark.core.prefab.ModPrefab;
|
||||
import dark.core.prefab.helpers.Pair;
|
||||
|
||||
public class BlockOre extends Block implements IExtraObjectInfo
|
||||
public class BlockOre extends Block implements IExtraBlockInfo
|
||||
{
|
||||
Icon[] icons = new Icon[EnumMaterial.values().length];
|
||||
|
||||
|
@ -73,24 +69,6 @@ public class BlockOre extends Block implements IExtraObjectInfo
|
|||
return Block.stone.getIcon(side, metadata);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getTileEntities(int blockID, Set<Pair<String, Class<? extends TileEntity>>> list)
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasExtraConfigs()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadExtraConfigs(Configuration config)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadOreNames()
|
||||
{
|
||||
|
@ -140,4 +118,32 @@ public class BlockOre extends Block implements IExtraObjectInfo
|
|||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasExtraConfigs()
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadExtraConfigs(Configuration config)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getTileEntities(int blockID, Set<Pair<String, Class<? extends TileEntity>>> list)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@ import net.minecraft.item.ItemBlock;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import dark.core.common.DarkMain;
|
||||
import dark.core.common.blocks.BlockOre.OreData;
|
||||
import dark.core.common.items.EnumMaterial;
|
||||
|
||||
public class ItemBlockOre extends ItemBlock
|
||||
{
|
||||
|
|
|
@ -15,12 +15,11 @@ import cpw.mods.fml.relauncher.Side;
|
|||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import dark.core.common.DMCreativeTab;
|
||||
import dark.core.common.DarkMain;
|
||||
import dark.core.prefab.IExtraObjectInfo;
|
||||
import dark.core.prefab.helpers.Pair;
|
||||
import dark.core.prefab.machine.BlockMachine;
|
||||
import dark.core.registration.ModObjectRegistry.BlockBuildData;
|
||||
|
||||
public class BlockDebug extends BlockMachine implements IExtraObjectInfo
|
||||
public class BlockDebug extends BlockMachine
|
||||
{
|
||||
public static float DebugWattOut, DebugWattDemand;
|
||||
|
||||
|
@ -110,18 +109,12 @@ public class BlockDebug extends BlockMachine implements IExtraObjectInfo
|
|||
list.add(new Pair<String, Class<? extends TileEntity>>(block.name, block.clazz));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasExtraConfigs()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadExtraConfigs(Configuration config)
|
||||
{
|
||||
super.loadExtraConfigs(config);
|
||||
for (DebugBlocks block : DebugBlocks.values())
|
||||
{
|
||||
block.enabled = config.get("Blocks", "Enable" + block.name + "Block", true).getBoolean(true);
|
||||
|
@ -129,13 +122,6 @@ public class BlockDebug extends BlockMachine implements IExtraObjectInfo
|
|||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadOreNames()
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
public static enum DebugBlocks
|
||||
{
|
||||
SOURCE("UnlimitedPower", TileEntityInfSupply.class, "infSource"),
|
||||
|
|
|
@ -16,12 +16,11 @@ import universalelectricity.core.UniversalElectricity;
|
|||
import dark.core.common.CommonProxy;
|
||||
import dark.core.common.DMCreativeTab;
|
||||
import dark.core.common.DarkMain;
|
||||
import dark.core.prefab.IExtraObjectInfo;
|
||||
import dark.core.prefab.helpers.Pair;
|
||||
import dark.core.prefab.machine.BlockMachine;
|
||||
import dark.core.registration.ModObjectRegistry.BlockBuildData;
|
||||
|
||||
public class BlockBasicMachine extends BlockMachine implements IExtraObjectInfo
|
||||
public class BlockBasicMachine extends BlockMachine
|
||||
{
|
||||
|
||||
public BlockBasicMachine()
|
||||
|
|
|
@ -2,18 +2,19 @@ package dark.core.common.machines;
|
|||
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.Configuration;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import universalelectricity.core.UniversalElectricity;
|
||||
import dark.core.client.renders.BlockRenderingHandler;
|
||||
import dark.core.common.DMCreativeTab;
|
||||
import dark.core.prefab.IExtraObjectInfo;
|
||||
import dark.core.prefab.helpers.Pair;
|
||||
import dark.core.prefab.machine.BlockMachine;
|
||||
import dark.core.registration.ModObjectRegistry.BlockBuildData;
|
||||
|
||||
public class BlockSolarPanel extends BlockMachine implements IExtraObjectInfo
|
||||
public class BlockSolarPanel extends BlockMachine
|
||||
{
|
||||
public static int tickRate = 10;
|
||||
public static float wattDay = 0.120f;
|
||||
|
@ -57,15 +58,10 @@ public class BlockSolarPanel extends BlockMachine implements IExtraObjectInfo
|
|||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasExtraConfigs()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadExtraConfigs(Configuration config)
|
||||
{
|
||||
super.loadExtraConfigs(config);
|
||||
tickRate = config.get("settings", "PanelUpdateRate", tickRate).getInt();
|
||||
wattDay = (float) (config.get("settings", "WattDayLight", 120).getDouble(120) / 1000);
|
||||
wattNight = (float) (config.get("settings", "WattMoonLight", 1).getDouble(1) / 1000);
|
||||
|
@ -75,7 +71,7 @@ public class BlockSolarPanel extends BlockMachine implements IExtraObjectInfo
|
|||
@Override
|
||||
public void loadOreNames()
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
OreDictionary.registerOre("SolarPanel", new ItemStack(this, 1, 0));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,12 +17,11 @@ import universalelectricity.core.vector.Vector3;
|
|||
import universalelectricity.prefab.tile.TileEntityConductor;
|
||||
import dark.core.common.DMCreativeTab;
|
||||
import dark.core.common.DarkMain;
|
||||
import dark.core.prefab.IExtraObjectInfo;
|
||||
import dark.core.prefab.helpers.Pair;
|
||||
import dark.core.prefab.machine.BlockMachine;
|
||||
import dark.core.registration.ModObjectRegistry.BlockBuildData;
|
||||
|
||||
public class BlockWire extends BlockMachine implements IExtraObjectInfo
|
||||
public class BlockWire extends BlockMachine
|
||||
{
|
||||
public static float wireResistance = 0.001f;
|
||||
public static float ampMax = 10000f;
|
||||
|
@ -239,6 +238,7 @@ public class BlockWire extends BlockMachine implements IExtraObjectInfo
|
|||
@Override
|
||||
public void loadExtraConfigs(Configuration config)
|
||||
{
|
||||
super.loadExtraConfigs(config);
|
||||
BlockWire.wireResistance = config.get("Settings", "miliOhms", 1, "Resistance of the wire in 1/1000 of an ohm").getInt() / 1000;
|
||||
BlockWire.ampMax = config.get("Settings", "maxAmps", 10000, "Amp limit of the wire").getInt();
|
||||
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
package dark.core.prefab;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.Configuration;
|
||||
import dark.core.prefab.helpers.Pair;
|
||||
|
||||
/** Used to handle info about the block that would normally be handled by the mod main class. Use the
|
||||
* BlockRegistry in order for these methods to be called on load of the mod.
|
||||
*
|
||||
* @author DarkGuardsman */
|
||||
public interface IExtraObjectInfo
|
||||
{
|
||||
|
||||
/** List of all tileEntities this block needs */
|
||||
public void getTileEntities(int blockID, Set<Pair<String, Class<? extends TileEntity>>> list);
|
||||
|
||||
/** True will cause a config file to be generated for this block */
|
||||
public boolean hasExtraConfigs();
|
||||
|
||||
/** Loads the config file for this block. This is a single config file that is tied to just this
|
||||
* block alone. Anything can be stored in the config file but its suggested to use it for
|
||||
* advanced settings for the block/tile. Things like power, update rate, optional features,
|
||||
* graphics, or crafting cost */
|
||||
public void loadExtraConfigs(Configuration config);
|
||||
|
||||
/** Loads the names used to reference this item in a recipe */
|
||||
public void loadOreNames();
|
||||
|
||||
}
|
|
@ -1,25 +1,34 @@
|
|||
package dark.core.prefab.machine;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.block.ITileEntityProvider;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.Configuration;
|
||||
import universalelectricity.prefab.block.BlockTile;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import dark.api.parts.INetworkPart;
|
||||
import dark.core.common.DarkMain;
|
||||
import dark.core.prefab.IExtraInfo.IExtraBlockInfo;
|
||||
import dark.core.prefab.ModPrefab;
|
||||
import dark.core.prefab.helpers.Pair;
|
||||
import dark.core.registration.ModObjectRegistry.BlockBuildData;
|
||||
|
||||
/** Basic TileEntity Container class designed to be used by generic machines. It is suggested that
|
||||
* each mod using this create there own basic block extending this to reduce need to input config
|
||||
* file each time
|
||||
*
|
||||
*
|
||||
* @author Darkguardsman */
|
||||
public abstract class BlockMachine extends BlockTile implements ITileEntityProvider
|
||||
public abstract class BlockMachine extends BlockTile implements ITileEntityProvider, IExtraBlockInfo
|
||||
{
|
||||
|
||||
public boolean zeroAnimation, zeroSound, zeroRendering;
|
||||
|
||||
public BlockMachine(BlockBuildData data)
|
||||
{
|
||||
super(data.config.getBlock(data.blockName, ModPrefab.getNextID()).getInt(), data.blockMaterial);
|
||||
|
@ -77,4 +86,35 @@ public abstract class BlockMachine extends BlockTile implements ITileEntityProvi
|
|||
return super.createTileEntity(world, metadata);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getTileEntities(int blockID, Set<Pair<String, Class<? extends TileEntity>>> list)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasExtraConfigs()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadExtraConfigs(Configuration config)
|
||||
{
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT)
|
||||
{
|
||||
this.zeroAnimation = config.get("Effects--Not_Supported_By_All_Blocks", "disableAnimation", false, "Turns off animations of the block").getBoolean(false);
|
||||
this.zeroRendering = config.get("Effects--Not_Supported_By_All_Blocks", "disableRender", false, "Turns off the block render replacing it with a normal block").getBoolean(false);
|
||||
this.zeroSound = config.get("Effects--Not_Supported_By_All_Blocks", "disableSound", false, "Turns of sound of the block for any or its actions").getBoolean(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadOreNames()
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -17,11 +17,11 @@ import universalelectricity.core.vector.Vector3;
|
|||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import dark.core.common.DarkMain;
|
||||
import dark.core.prefab.IExtraObjectInfo;
|
||||
import dark.core.prefab.IExtraInfo.IExtraBlockInfo;
|
||||
import dark.core.prefab.ModPrefab;
|
||||
import dark.core.prefab.helpers.Pair;
|
||||
|
||||
public class BlockMulti extends BlockContainer implements IExtraObjectInfo
|
||||
public class BlockMulti extends BlockContainer implements IExtraBlockInfo
|
||||
{
|
||||
public String textureName = null;
|
||||
public String channel = "";
|
||||
|
|
|
@ -20,7 +20,8 @@ import net.minecraftforge.fluids.FluidRegistry;
|
|||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import dark.core.common.DarkMain;
|
||||
import dark.core.prefab.IExtraObjectInfo;
|
||||
import dark.core.prefab.IExtraInfo;
|
||||
import dark.core.prefab.IExtraInfo.IExtraBlockInfo;
|
||||
import dark.core.prefab.ModPrefab;
|
||||
import dark.core.prefab.helpers.Pair;
|
||||
import dark.core.prefab.machine.BlockMachine;
|
||||
|
@ -197,21 +198,24 @@ public class ModObjectRegistry
|
|||
}
|
||||
}
|
||||
}
|
||||
if (block instanceof IExtraObjectInfo)
|
||||
if (block instanceof IExtraInfo)
|
||||
{
|
||||
if (((IExtraObjectInfo) block).hasExtraConfigs())
|
||||
if (((IExtraInfo) block).hasExtraConfigs())
|
||||
{
|
||||
Configuration extraBlockConfig = new Configuration(new File(Loader.instance().getConfigDir(), "Dark/blocks/" + block.getUnlocalizedName() + ".cfg"));
|
||||
extraBlockConfig.load();
|
||||
((IExtraObjectInfo) block).loadExtraConfigs(extraBlockConfig);
|
||||
((IExtraInfo) block).loadExtraConfigs(extraBlockConfig);
|
||||
extraBlockConfig.save();
|
||||
}
|
||||
((IExtraObjectInfo) block).loadOreNames();
|
||||
Set<Pair<String, Class<? extends TileEntity>>> tileListNew = new HashSet<Pair<String, Class<? extends TileEntity>>>();
|
||||
((IExtraObjectInfo) block).getTileEntities(block.blockID, tileListNew);
|
||||
for (Pair<String, Class<? extends TileEntity>> par : tileListNew)
|
||||
if (block instanceof IExtraBlockInfo)
|
||||
{
|
||||
GameRegistry.registerTileEntityWithAlternatives(par.getValue(), par.getKey(), "DM" + par.getKey());
|
||||
((IExtraBlockInfo) block).loadOreNames();
|
||||
Set<Pair<String, Class<? extends TileEntity>>> tileListNew = new HashSet<Pair<String, Class<? extends TileEntity>>>();
|
||||
((IExtraBlockInfo) block).getTileEntities(block.blockID, tileListNew);
|
||||
for (Pair<String, Class<? extends TileEntity>> par : tileListNew)
|
||||
{
|
||||
GameRegistry.registerTileEntityWithAlternatives(par.getValue(), par.getKey(), "DM" + par.getKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue