Moved infinite blocks to Calclavia Core

This commit is contained in:
Calclavia 2014-01-27 22:46:48 +08:00
parent 7d2f3ec6d2
commit f69f928cc0
12 changed files with 0 additions and 491 deletions

View file

@ -10,7 +10,6 @@ import net.minecraftforge.fluids.FluidRegistry;
import org.modstats.ModstatInfo;
import org.modstats.Modstats;
import resonantinduction.core.debug.BlockDebug;
import resonantinduction.core.handler.FluidEventHandler;
import resonantinduction.core.handler.LinkEventHandler;
import resonantinduction.core.prefab.part.PacketMultiPart;
@ -21,7 +20,6 @@ import resonantinduction.core.resource.item.ItemOreResource;
import calclavia.lib.content.ContentRegistry;
import calclavia.lib.network.PacketHandler;
import calclavia.lib.network.PacketTile;
import calclavia.lib.prefab.item.ItemBlockHolder;
import calclavia.lib.utility.LanguageUtility;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.Mod;
@ -72,7 +70,6 @@ public class ResonantInduction
public static ItemOreResource itemRefinedDust;
public static Block blockFluidMixture;
public static Block blockGas;
public static Block blockDebug;
public static Fluid fluidMixture = null;
@ -107,8 +104,6 @@ public class ResonantInduction
GameRegistry.registerBlock(blockFluidMixture, blockFluidMixture.getUnlocalizedName());
GameRegistry.registerTileEntity(TileLiquidMixture.class, blockFluidMixture.getUnlocalizedName());
blockDebug = contentRegistry.createBlock(BlockDebug.class, ItemBlockHolder.class);
Settings.save();
proxy.preInit();
}

View file

@ -1,161 +0,0 @@
package resonantinduction.core.debug;
import java.util.List;
import java.util.Set;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Icon;
import net.minecraft.world.World;
import resonantinduction.core.Reference;
import resonantinduction.core.prefab.block.BlockRI;
import calclavia.lib.content.IBlockInfo;
import com.builtbroken.common.Pair;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class BlockDebug extends BlockRI implements IBlockInfo
{
public static float DebugWattOut, DebugWattDemand;
public BlockDebug()
{
super("DebugBlock");
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IconRegister iconReg)
{
super.registerIcons(iconReg);
for (DebugBlocks block : DebugBlocks.values())
{
block.icon = iconReg.registerIcon(Reference.PREFIX + block.getTextureName());
}
}
@Override
@SideOnly(Side.CLIENT)
public Icon getIcon(int side, int meta)
{
if (meta < DebugBlocks.values().length)
{
return DebugBlocks.values()[meta].icon;
}
return this.blockIcon;
}
@Override
public TileEntity createTileEntity(World world, int metadata)
{
if (metadata < DebugBlocks.values().length)
{
try
{
return DebugBlocks.values()[metadata].clazz.newInstance();
}
catch (Exception e)
{
e.printStackTrace();
}
}
return super.createTileEntity(world, metadata);
}
@Override
public TileEntity createNewTileEntity(World world)
{
return null;
}
@Override
public void getSubBlocks(int blockID, CreativeTabs tab, List creativeTabList)
{
for (DebugBlocks block : DebugBlocks.values())
{
creativeTabList.add(new ItemStack(blockID, 1, block.ordinal()));
}
}
@Override
public void getTileEntities(int blockID, Set<Pair<String, Class<? extends TileEntity>>> list)
{
for (DebugBlocks block : DebugBlocks.values())
{
list.add(new Pair<String, Class<? extends TileEntity>>(block.name, block.clazz));
}
}
@Override
public boolean onMachineActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float hitX, float hitY, float hitZ)
{
return false;
}
@Override
public boolean onSneakMachineActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float hitX, float hitY, float hitZ)
{
return false;
}
@Override
public boolean onUseWrench(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float hitX, float hitY, float hitZ)
{
return false;
}
@Override
public boolean onSneakUseWrench(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float hitX, float hitY, float hitZ)
{
return this.onUseWrench(world, x, y, z, entityPlayer, side, hitX, hitY, hitZ);
}
public static enum DebugBlocks
{
SOURCE("UnlimitedPower", TileInfiniteEnergySource.class, "infSource"),
FLUID("UnlimitedFluid", TileInfiniteFluidSource.class, "infFluid"),
VOID("FluidVoid", TileInfiniteFluidSink.class, "void"),
LOAD("PowerVampire", TileInfiniteEnergySink.class, "infLoad");
public Icon icon;
public String name;
public String texture;
Class<? extends TileEntity> clazz;
private DebugBlocks(String name, Class<? extends TileEntity> clazz)
{
this.name = name;
this.clazz = clazz;
}
private DebugBlocks(String name, Class<? extends TileEntity> clazz, String texture)
{
this(name, clazz);
this.texture = texture;
}
public String getTextureName()
{
if (texture == null || texture.isEmpty())
{
return name;
}
return texture;
}
}
@Override
public void getClientTileEntityRenderers(List<Pair<Class<? extends TileEntity>, TileEntitySpecialRenderer>> list)
{
// TODO Auto-generated method stub
}
}

View file

@ -1,58 +0,0 @@
package resonantinduction.core.debug;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import resonantinduction.core.Settings;
/**
* Creative mod tool to quickly create a large hole in the ground. Is designed only for debug
* testing of ore generation.
*
* @author DarkGuardsman
*/
public class ItemInstaHole extends Item
{
public ItemInstaHole()
{
super(Settings.CONFIGURATION.getItem("InstaHole", Settings.getNextItemID()).getInt());
this.setUnlocalizedName("InstaHole");
this.setCreativeTab(CreativeTabs.tabTools);
}
@Override
public boolean onItemUse(ItemStack item, EntityPlayer player, World world, int xx, int yy, int zz, int par7, float par8, float par9, float par10)
{
if (player != null && player.capabilities.isCreativeMode)
{
if (world.isRemote)
{
return true;
}
for (int y = yy; y > 0; y--)
{
for (int x = xx - 10; x < xx + 10; x++)
{
for (int z = zz - 10; z < zz + 10; z++)
{
int id = world.getBlockId(x, y, z);
if (id == 0)
{
world.setBlock(x, y, z, 20);
}
else if (id == Block.sand.blockID || id == Block.gravel.blockID || id == 1 || id == Block.dirt.blockID || id == Block.grass.blockID)
{
world.setBlock(x, y, z, 0);
}
}
}
}
return true;
}
return false;
}
}

View file

@ -1,26 +0,0 @@
package resonantinduction.core.debug;
import net.minecraftforge.common.ForgeDirection;
import calclavia.lib.prefab.tile.TileElectrical;
public class TileInfiniteEnergySink extends TileElectrical
{
@Override
public long onReceiveEnergy(ForgeDirection from, long receive, boolean doReceive)
{
return receive;
}
@Override
public long onExtractEnergy(ForgeDirection from, long request, boolean doExtract)
{
return 0;
}
@Override
public boolean canConnect(ForgeDirection direction)
{
return true;
}
}

View file

@ -1,54 +0,0 @@
package resonantinduction.core.debug;
import java.util.EnumSet;
import net.minecraftforge.common.ForgeDirection;
import universalelectricity.api.energy.EnergyStorageHandler;
import calclavia.lib.prefab.tile.TileElectrical;
public class TileInfiniteEnergySource extends TileElectrical
{
public TileInfiniteEnergySource()
{
this.energy = new EnergyStorageHandler(Long.MAX_VALUE);
this.energy.setMaxExtract(Long.MAX_VALUE);
}
@Override
public void updateEntity()
{
super.updateEntity();
this.energy.setEnergy(Long.MAX_VALUE);
this.produce();
}
@Override
public EnumSet<ForgeDirection> getOutputDirections()
{
return EnumSet.allOf(ForgeDirection.class);
}
@Override
public EnumSet<ForgeDirection> getInputDirections()
{
return EnumSet.noneOf(ForgeDirection.class);
}
@Override
public long onReceiveEnergy(ForgeDirection from, long receive, boolean doReceive)
{
return 0;
}
@Override
public long onExtractEnergy(ForgeDirection from, long request, boolean doExtract)
{
return request;
}
@Override
public boolean canConnect(ForgeDirection direction)
{
return true;
}
}

View file

@ -1,66 +0,0 @@
package resonantinduction.core.debug;
import java.util.HashMap;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTank;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
import calclavia.lib.prefab.tile.TileAdvanced;
/**
* Designed to debug fluid devices by draining everything that comes in at one time
*
* @author DarkGuardsman
*/
public class TileInfiniteFluidSink extends TileAdvanced implements IFluidHandler
{
// TODO later add to this to make it actually have an ingame use other than debug
public static HashMap<FluidStack, Long> storage = new HashMap<FluidStack, Long>();
FluidTank tank = new FluidTank(1000000);
@Override
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
{
// TODO add wrench toggle options to change amount actually drained
return resource != null && this.canFill(from, resource.getFluid()) ? resource.amount : 0;
}
@Override
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain)
{
// TODO Auto-generated method stub
return null;
}
@Override
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain)
{
// TODO Auto-generated method stub
return null;
}
@Override
public boolean canFill(ForgeDirection from, Fluid fluid)
{
// TODO add wrench settings to close off sides for testing
return true;
}
@Override
public boolean canDrain(ForgeDirection from, Fluid fluid)
{
// TODO Auto-generated method stub
return false;
}
@Override
public FluidTankInfo[] getTankInfo(ForgeDirection from)
{
return new FluidTankInfo[] { this.tank.getInfo() };
}
}

View file

@ -1,116 +0,0 @@
package resonantinduction.core.debug;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ChatMessageComponent;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTank;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
import universalelectricity.api.vector.Vector3;
import calclavia.lib.multiblock.fake.IBlockActivate;
import calclavia.lib.prefab.tile.TileAdvanced;
import calclavia.lib.utility.FluidUtility;
import com.builtbroken.common.lang.TextHelper.TextColor;
public class TileInfiniteFluidSource extends TileAdvanced implements IFluidHandler, IBlockActivate
{
FluidTank tank = new FluidTank(Integer.MAX_VALUE);
boolean autoEmpty = false;
@Override
public void updateEntity()
{
if (!this.worldObj.isRemote && autoEmpty && this.tank != null && this.tank.getFluid() != null)
{
FluidUtility.fillTanksAllSides(this.worldObj, new Vector3(this), FluidUtility.getStack(this.tank.getFluid(), 600), true);
}
}
@Override
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
{
return 0;
}
@Override
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain)
{
if (resource != null)
{
if (tank == null || tank.getFluid() == null)
{
tank = new FluidTank(Integer.MAX_VALUE);
tank.setFluid(new FluidStack(FluidRegistry.WATER, Integer.MAX_VALUE));
}
if (tank != null && tank.getFluid() != null && tank.getFluid().containsFluid(resource))
{
return resource.copy();
}
}
return null;
}
@Override
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain)
{
return this.tank != null && this.tank.getFluid() != null ? this.drain(from, FluidUtility.getStack(this.tank.getFluid(), maxDrain), doDrain) : null;
}
@Override
public boolean canFill(ForgeDirection from, Fluid fluid)
{
return false;
}
@Override
public boolean canDrain(ForgeDirection from, Fluid fluid)
{
return fluid != null && this.tank != null && this.tank.getFluid() != null && this.tank.getFluid().getFluid().equals(fluid);
}
@Override
public FluidTankInfo[] getTankInfo(ForgeDirection from)
{
return new FluidTankInfo[] { this.tank.getInfo() };
}
@Override
public boolean onActivated(EntityPlayer entityPlayer)
{
if (entityPlayer != null && entityPlayer.getHeldItem() != null)
{
ItemStack held = entityPlayer.getHeldItem();
if (held.itemID == Item.stick.itemID)
{
if (!this.worldObj.isRemote)
{
this.autoEmpty = !autoEmpty;
entityPlayer.sendChatToPlayer(ChatMessageComponent.createFromText("AutoPump > " + (autoEmpty ? TextColor.DARKGREEN + "On" : TextColor.RED + "Off")));
}
return true;
}
FluidStack fluidStack = FluidContainerRegistry.getFluidForFilledItem(held);
if (fluidStack != null)
{
if (!this.worldObj.isRemote)
{
fluidStack = fluidStack.copy();
fluidStack.amount = Integer.MAX_VALUE;
this.tank.setFluid(fluidStack);
entityPlayer.sendChatToPlayer(ChatMessageComponent.createFromText("Fluid Set to > " + fluidStack.getFluid().getName()));
}
return true;
}
}
return false;
}
}

View file

@ -16,11 +16,6 @@ item.resonantinduction\:oreDust.name=%v Dust
item.resonantinduction\:oreRefinedDust.name=%v Refined Dust
item.resonantinduction\:oreRubble.name=%v Rubble
tile.resonantinduction\:DebugBlock.0.name=Infinite Power
tile.resonantinduction\:DebugBlock.1.name=Infinite Fluid
tile.resonantinduction\:DebugBlock.2.name=Fluid Void
tile.resonantinduction\:DebugBlock.3.name=Power Void
### Archaic Module
## Materials
tile.resonantinduction\:material.0.name=Industrial Brick

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 B