generated from tilera/1710mod
parent
f8ab90cda0
commit
4e4b32d541
7 changed files with 298 additions and 9 deletions
|
@ -14,6 +14,7 @@ import net.anvilcraft.pccompat.mods.GregTechProxy;
|
|||
import net.anvilcraft.pccompat.mods.HBMProxy;
|
||||
import net.anvilcraft.pccompat.mods.ProjectRedProxy;
|
||||
import net.anvilcraft.pccompat.mods.RedPowerProxy;
|
||||
import net.anvilcraft.pccompat.mods.UltraTechProxy;
|
||||
import net.anvilcraft.pccompat.mods.UniversalElectricityProxy;
|
||||
|
||||
@Mod(
|
||||
|
@ -21,7 +22,7 @@ import net.anvilcraft.pccompat.mods.UniversalElectricityProxy;
|
|||
name = "PC Compat",
|
||||
version = "0.1.0",
|
||||
dependencies
|
||||
= "required-after:PowerConverters3;after:basiccomponents;after:appliedenergistics2;after:hbm;after:RedPowerCore;after:ProjRed|Expansion;after:gregtech"
|
||||
= "required-after:PowerConverters3;after:basiccomponents;after:appliedenergistics2;after:hbm;after:RedPowerCore;after:ProjRed|Expansion;after:gregtech;after:UltraTech"
|
||||
)
|
||||
public class PCCompat {
|
||||
public static HashSet<IModProxy> mods = new HashSet<>();
|
||||
|
@ -64,5 +65,7 @@ public class PCCompat {
|
|||
mods.add(new ProjectRedProxy());
|
||||
if (Loader.isModLoaded("gregtech"))
|
||||
mods.add(new GregTechProxy());
|
||||
if (Loader.isModLoaded("UltraTech"))
|
||||
mods.add(new UltraTechProxy());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
package net.anvilcraft.pccompat.blocks;
|
||||
|
||||
import covers1624.powerconverters.block.BlockPowerConverter;
|
||||
import covers1624.powerconverters.gui.PCCreativeTab;
|
||||
import net.anvilcraft.pccompat.Utils;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityUltraTechConsumer;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityUltraTechProducer;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockPowerConverterUltraTech extends BlockPowerConverter {
|
||||
public BlockPowerConverterUltraTech() {
|
||||
super(2); // 1 Consumer, 1 Producer
|
||||
this.setCreativeTab(PCCreativeTab.tab);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlockIcons(IIconRegister reg) {
|
||||
Utils.registerStandardPowerConverterBlockIcons(reg, this._icons, "ut");
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return meta == 0 ? new TileEntityUltraTechConsumer()
|
||||
: new TileEntityUltraTechProducer();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package net.anvilcraft.pccompat.items;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
|
||||
public class ItemBlockPowerConverterUltraTech extends AbstractItemBlockPowerConverter {
|
||||
public ItemBlockPowerConverterUltraTech(Block block) {
|
||||
super(block);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getModPrefix() {
|
||||
return "ut";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package net.anvilcraft.pccompat.mods;
|
||||
|
||||
import covers1624.powerconverters.api.registry.PowerSystemRegistry;
|
||||
import covers1624.powerconverters.api.registry.PowerSystemRegistry.PowerSystem;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import net.anvilcraft.pccompat.IModProxy;
|
||||
import net.anvilcraft.pccompat.blocks.BlockPowerConverterUltraTech;
|
||||
import net.anvilcraft.pccompat.items.ItemBlockPowerConverterUltraTech;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityUltraTechConsumer;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityUltraTechProducer;
|
||||
import net.minecraft.block.Block;
|
||||
|
||||
public class UltraTechProxy implements IModProxy {
|
||||
public static PowerSystem powerSystem;
|
||||
public static Block blockPowerConverter;
|
||||
|
||||
@Override
|
||||
public void registerPowerSystem() {
|
||||
PowerSystemRegistry.registerPowerSystem(
|
||||
powerSystem = new PowerSystem("Quantum Power", "QP", 20000, "QP/t")
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlocks() {
|
||||
GameRegistry.registerBlock(
|
||||
blockPowerConverter = new BlockPowerConverterUltraTech(),
|
||||
ItemBlockPowerConverterUltraTech.class,
|
||||
"power_converter_ultra_tech"
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerTiles() {
|
||||
GameRegistry.registerTileEntity(
|
||||
TileEntityUltraTechConsumer.class, "ultra_tech_consumer"
|
||||
);
|
||||
GameRegistry.registerTileEntity(
|
||||
TileEntityUltraTechProducer.class, "ultra_tech_producer"
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerRecipes() {}
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
package net.anvilcraft.pccompat.tiles;
|
||||
|
||||
import covers1624.powerconverters.tile.main.TileEntityEnergyConsumer;
|
||||
import net.anvilcraft.pccompat.mods.UltraTechProxy;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import ultratech.api.power.NetworkManagerRegistry;
|
||||
import ultratech.api.power.PowerInterface;
|
||||
import ultratech.api.power.StorageInterface;
|
||||
import ultratech.api.power.StorageInterface.PowerIO;
|
||||
import ultratech.api.power.interfaces.ICable;
|
||||
import ultratech.api.power.interfaces.IPowerConductor;
|
||||
import ultratech.api.power.prefab.CableInterfaceBlock;
|
||||
|
||||
public class TileEntityUltraTechConsumer
|
||||
extends TileEntityEnergyConsumer<IPowerConductor> implements IPowerConductor {
|
||||
private double lastTransfer;
|
||||
private StorageInterface interf;
|
||||
|
||||
public TileEntityUltraTechConsumer() {
|
||||
super(UltraTechProxy.powerSystem, 0, IPowerConductor.class);
|
||||
this.interf
|
||||
= new StorageInterface(this, new CableInterfaceBlock(this), 10000, 1);
|
||||
this.interf.configIO = PowerIO.Input;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
super.updateEntity();
|
||||
this.interf.MachineUpdate();
|
||||
|
||||
if (this.worldObj.isRemote)
|
||||
return;
|
||||
|
||||
double demand
|
||||
= this.getTotalEnergyDemand() / this.getPowerSystem().getScaleAmmount();
|
||||
double toConsume = Math.min(demand, this.interf.getCharge());
|
||||
this.interf.removeCharge(toConsume);
|
||||
this.storeEnergy(toConsume * this.getPowerSystem().getScaleAmmount(), false);
|
||||
this.lastTransfer = toConsume;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
this.interf.readFromNBT(nbt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
this.interf.writeToNBT(nbt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSideConnected(int side_) {
|
||||
ForgeDirection side = ForgeDirection.getOrientation(side_);
|
||||
TileEntity adjTE = this.worldObj.getTileEntity(
|
||||
this.xCoord + side.offsetX,
|
||||
this.yCoord + side.offsetY,
|
||||
this.zCoord + side.offsetZ
|
||||
);
|
||||
|
||||
if (adjTE instanceof IPowerConductor)
|
||||
return true;
|
||||
|
||||
if (adjTE == null)
|
||||
return false;
|
||||
|
||||
for (ICable cable : NetworkManagerRegistry.getConnections(adjTE))
|
||||
if (cable.shouldConnectWithThis(this.interf.getCable(), side.getOpposite()))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSideConnectedClient(int side) {
|
||||
return this.isSideConnected(side);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConnected() {
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
|
||||
if (this.isSideConnected(dir.ordinal()))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PowerInterface getPower() {
|
||||
return this.interf;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getInputRate() {
|
||||
return lastTransfer;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,95 @@
|
|||
package net.anvilcraft.pccompat.tiles;
|
||||
|
||||
import covers1624.powerconverters.tile.main.TileEntityEnergyProducer;
|
||||
import net.anvilcraft.pccompat.mods.UltraTechProxy;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import ultratech.api.power.NetworkManagerRegistry;
|
||||
import ultratech.api.power.PowerInterface;
|
||||
import ultratech.api.power.StorageInterface;
|
||||
import ultratech.api.power.StorageInterface.PowerIO;
|
||||
import ultratech.api.power.interfaces.ICable;
|
||||
import ultratech.api.power.interfaces.IPowerConductor;
|
||||
import ultratech.api.power.prefab.CableInterfaceBlock;
|
||||
|
||||
public class TileEntityUltraTechProducer
|
||||
extends TileEntityEnergyProducer<IPowerConductor> implements IPowerConductor {
|
||||
private StorageInterface interf;
|
||||
|
||||
public TileEntityUltraTechProducer() {
|
||||
super(UltraTechProxy.powerSystem, 0, IPowerConductor.class);
|
||||
this.interf = new StorageInterface(this, new CableInterfaceBlock(this), 10000, 1);
|
||||
this.interf.configIO = PowerIO.Output;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
super.updateEntity();
|
||||
this.interf.MachineUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
this.interf.readFromNBT(nbt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
this.interf.writeToNBT(nbt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSideConnected(int side_) {
|
||||
ForgeDirection side = ForgeDirection.getOrientation(side_);
|
||||
TileEntity adjTE = this.worldObj.getTileEntity(
|
||||
this.xCoord + side.offsetX,
|
||||
this.yCoord + side.offsetY,
|
||||
this.zCoord + side.offsetZ
|
||||
);
|
||||
|
||||
if (adjTE instanceof IPowerConductor)
|
||||
return true;
|
||||
|
||||
if (adjTE == null)
|
||||
return false;
|
||||
|
||||
for (ICable cable : NetworkManagerRegistry.getConnections(adjTE))
|
||||
if (cable.shouldConnectWithThis(this.interf.getCable(), side.getOpposite()))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSideConnectedClient(int side) {
|
||||
return this.isSideConnected(side);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConnected() {
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
|
||||
if (this.isSideConnected(dir.ordinal()))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PowerInterface getPower() {
|
||||
return this.interf;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double produceEnergy(double energy) {
|
||||
double toProduce = Math.min(
|
||||
energy / this.getPowerSystem().getScaleAmmount(),
|
||||
this.interf.getCapacity() - this.interf.getCharge()
|
||||
);
|
||||
this.interf.addCharge(toProduce);
|
||||
|
||||
return energy - toProduce * this.getPowerSystem().getScaleAmmount();
|
||||
}
|
||||
}
|
|
@ -19,11 +19,14 @@ pccompat:power_converter_rp_1.name=Bluetricity Producer
|
|||
pccompat:power_converter_pr_0.name=Bluetricity Consumer
|
||||
pccompat:power_converter_pr_1.name=Bluetricity Producer
|
||||
|
||||
pccompat:power_converter_gregtech_0.name=GregTech LV Consumer
|
||||
pccompat:power_converter_gregtech_1.name=GregTech LV Producer
|
||||
pccompat:power_converter_gregtech_2.name=GregTech MV Consumer
|
||||
pccompat:power_converter_gregtech_3.name=GregTech MV Producer
|
||||
pccompat:power_converter_gregtech_4.name=GregTech HV Consumer
|
||||
pccompat:power_converter_gregtech_5.name=GregTech HV Producer
|
||||
pccompat:power_converter_gregtech_6.name=GregTech EV Consumer
|
||||
pccompat:power_converter_gregtech_7.name=GregTech EV Producer
|
||||
pccompat:power_converter_gt_0.name=GregTech LV Consumer
|
||||
pccompat:power_converter_gt_1.name=GregTech LV Producer
|
||||
pccompat:power_converter_gt_2.name=GregTech MV Consumer
|
||||
pccompat:power_converter_gt_3.name=GregTech MV Producer
|
||||
pccompat:power_converter_gt_4.name=GregTech HV Consumer
|
||||
pccompat:power_converter_gt_5.name=GregTech HV Producer
|
||||
pccompat:power_converter_gt_6.name=GregTech EV Consumer
|
||||
pccompat:power_converter_gt_7.name=GregTech EV Producer
|
||||
|
||||
pccompat:power_converter_ut_0.name=Quantum Power Consumer
|
||||
pccompat:power_converter_ut_1.name=Quantum Power Producer
|
||||
|
|
Loading…
Reference in a new issue