forked from Anvilcraft/pccompat
parent
9d3f087599
commit
5fc343166a
|
@ -45,6 +45,7 @@ dependencies {
|
|||
implementation "cofh:CoFHCore:[1.7.10]3.1.4-329:dev"
|
||||
implementation "universalelectricity:universalelectricity:5.2.2:deobf"
|
||||
implementation "universalelectricity:basiccomponents:2.0.1:deobf"
|
||||
implementation "appeng:appliedenergistics2:rv3-beta-21:dev"
|
||||
}
|
||||
|
||||
processResources {
|
||||
|
|
|
@ -9,6 +9,7 @@ import cpw.mods.fml.common.Loader;
|
|||
import cpw.mods.fml.common.Mod;
|
||||
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||
import net.anvilcraft.pccompat.mods.AppliedEnergisticsProxy;
|
||||
import net.anvilcraft.pccompat.mods.UniversalElectricityProxy;
|
||||
|
||||
@Mod(
|
||||
|
@ -48,5 +49,7 @@ public class PCCompat {
|
|||
private static void collectMods() {
|
||||
if (Loader.isModLoaded("basiccomponents"))
|
||||
mods.add(new UniversalElectricityProxy());
|
||||
if (Loader.isModLoaded("appliedenergistics2"))
|
||||
mods.add(new AppliedEnergisticsProxy());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package net.anvilcraft.pccompat.blocks;
|
||||
|
||||
import covers1624.powerconverters.block.BlockPowerConverter;
|
||||
import covers1624.powerconverters.gui.PCCreativeTab;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityAppliedEnergisticsConsumer;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityAppliedEnergisticsProducer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockPowerConverterAppliedEnergistics extends BlockPowerConverter {
|
||||
|
||||
public BlockPowerConverterAppliedEnergistics() {
|
||||
super(2);
|
||||
this.setCreativeTab(PCCreativeTab.tab);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return meta == 0 ? new TileEntityAppliedEnergisticsProducer() : new TileEntityAppliedEnergisticsConsumer();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
package net.anvilcraft.pccompat.items;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ItemBlockPowerConverterAppliedEnergistics extends ItemBlock {
|
||||
|
||||
public ItemBlockPowerConverterAppliedEnergistics(Block block) {
|
||||
super(block);
|
||||
this.setHasSubtypes(true);
|
||||
this.setMaxDamage(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetadata(int meta) {
|
||||
return meta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName(ItemStack stack) {
|
||||
int meta = stack.getItemDamage();
|
||||
|
||||
return "pccompat:power_converter_ae_" + meta;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public void getSubItems(Item alec1, CreativeTabs alec2, List list) {
|
||||
IntStream.range(0, 2)
|
||||
.mapToObj((i) -> new ItemStack(this, 1, i))
|
||||
.forEach(list::add);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
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.BlockPowerConverterAppliedEnergistics;
|
||||
import net.anvilcraft.pccompat.items.ItemBlockPowerConverterAppliedEnergistics;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityAppliedEnergisticsConsumer;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityAppliedEnergisticsProducer;
|
||||
import net.minecraft.block.Block;
|
||||
|
||||
public class AppliedEnergisticsProxy implements IModProxy {
|
||||
|
||||
public static PowerSystem powerSystem;
|
||||
public static Block blockPowerConverter;
|
||||
|
||||
@Override
|
||||
public void registerPowerSystem() {
|
||||
PowerSystemRegistry.registerPowerSystem(
|
||||
powerSystem = new PowerSystem(
|
||||
"Applied Energistics",
|
||||
"AE",
|
||||
2000,
|
||||
"AE"
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlocks() {
|
||||
GameRegistry.registerBlock(blockPowerConverter = new BlockPowerConverterAppliedEnergistics(), ItemBlockPowerConverterAppliedEnergistics.class, "power_converter_applied_energistics");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerTiles() {
|
||||
GameRegistry.registerTileEntity(TileEntityAppliedEnergisticsConsumer.class, "applied_energistics_consumer");
|
||||
GameRegistry.registerTileEntity(TileEntityAppliedEnergisticsProducer.class, "applied_energistics_producer");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerRecipes() {
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
package net.anvilcraft.pccompat.tiles;
|
||||
|
||||
import appeng.api.config.Actionable;
|
||||
import appeng.api.config.PowerMultiplier;
|
||||
import appeng.api.networking.IGridHost;
|
||||
import appeng.api.networking.IGridNode;
|
||||
import appeng.api.networking.energy.IEnergyGrid;
|
||||
import appeng.api.util.AECableType;
|
||||
import appeng.api.util.DimensionalCoord;
|
||||
import appeng.me.GridAccessException;
|
||||
import appeng.me.helpers.AENetworkProxy;
|
||||
import appeng.me.helpers.IGridProxyable;
|
||||
import covers1624.powerconverters.tile.main.TileEntityEnergyConsumer;
|
||||
import net.anvilcraft.pccompat.mods.AppliedEnergisticsProxy;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityAppliedEnergisticsConsumer extends TileEntityEnergyConsumer<IGridHost> implements IGridProxyable {
|
||||
|
||||
private AENetworkProxy proxy;
|
||||
private boolean init = false;
|
||||
private double lastInserted = 0.0;
|
||||
|
||||
public TileEntityAppliedEnergisticsConsumer() {
|
||||
super(AppliedEnergisticsProxy.powerSystem, 0, IGridHost.class);
|
||||
this.proxy = new AENetworkProxy(this, "proxy", new ItemStack(AppliedEnergisticsProxy.blockPowerConverter, 1, 1), true);
|
||||
this.proxy.setIdlePowerUsage(0.0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getInputRate() {
|
||||
return lastInserted;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IGridNode getGridNode(ForgeDirection dir) {
|
||||
return this.getProxy().getNode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AECableType getCableConnectionType(ForgeDirection dir) {
|
||||
return AECableType.GLASS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void securityBreak() {
|
||||
this.worldObj.func_147480_a(this.xCoord, this.yCoord, this.zCoord, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AENetworkProxy getProxy() {
|
||||
return this.proxy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DimensionalCoord getLocation() {
|
||||
return new DimensionalCoord(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gridChanged() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound tagCompound) {
|
||||
super.readFromNBT(tagCompound);
|
||||
this.getProxy().readFromNBT(tagCompound);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound tagCompound) {
|
||||
super.writeToNBT(tagCompound);
|
||||
this.getProxy().writeToNBT(tagCompound);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChunkUnload() {
|
||||
super.onChunkUnload();
|
||||
this.getProxy().onChunkUnload();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidate() {
|
||||
super.invalidate();
|
||||
this.getProxy().invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validate() {
|
||||
super.validate();
|
||||
this.getProxy().validate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
super.updateEntity();
|
||||
if (!init) {
|
||||
init = true;
|
||||
this.getProxy().onReady();
|
||||
}
|
||||
if (this.worldObj.isRemote) return;
|
||||
|
||||
double aeDemand = this.getTotalEnergyDemand() / this.getPowerSystem().getScaleAmmount();
|
||||
|
||||
try {
|
||||
IEnergyGrid grid = this.getProxy().getEnergy();
|
||||
double extracted = grid.extractAEPower(aeDemand, Actionable.MODULATE, PowerMultiplier.ONE);
|
||||
this.storeEnergy(MathHelper.floor_double(extracted * this.getPowerSystem().getScaleAmmount()), false);
|
||||
this.lastInserted = extracted;
|
||||
} catch (GridAccessException e) {
|
||||
// :P
|
||||
lastInserted = 0.0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,114 @@
|
|||
package net.anvilcraft.pccompat.tiles;
|
||||
|
||||
import appeng.api.config.Actionable;
|
||||
import appeng.api.networking.IGridHost;
|
||||
import appeng.api.networking.IGridNode;
|
||||
import appeng.api.networking.energy.IEnergyGrid;
|
||||
import appeng.api.util.AECableType;
|
||||
import appeng.api.util.DimensionalCoord;
|
||||
import appeng.me.GridAccessException;
|
||||
import appeng.me.helpers.AENetworkProxy;
|
||||
import appeng.me.helpers.IGridProxyable;
|
||||
import covers1624.powerconverters.tile.main.TileEntityEnergyProducer;
|
||||
import net.anvilcraft.pccompat.mods.AppliedEnergisticsProxy;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityAppliedEnergisticsProducer extends TileEntityEnergyProducer<IGridHost> implements IGridProxyable {
|
||||
|
||||
private AENetworkProxy proxy;
|
||||
private boolean init = false;
|
||||
|
||||
public TileEntityAppliedEnergisticsProducer() {
|
||||
super(AppliedEnergisticsProxy.powerSystem, 0, IGridHost.class);
|
||||
this.proxy = new AENetworkProxy(this, "proxy", new ItemStack(AppliedEnergisticsProxy.blockPowerConverter, 1, 0), true);
|
||||
this.proxy.setIdlePowerUsage(0.0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double produceEnergy(double energy) {
|
||||
double ae = energy / this.getPowerSystem().getScaleAmmount();
|
||||
try {
|
||||
IEnergyGrid grid = this.getProxy().getEnergy();
|
||||
double toInject = Math.min(Math.min(ae, grid.getEnergyDemand(ae)), 10000.0);
|
||||
ae -= toInject;
|
||||
grid.injectPower(toInject, Actionable.MODULATE);
|
||||
} catch (GridAccessException e) {
|
||||
// :P
|
||||
}
|
||||
|
||||
return MathHelper.floor_double(ae * this.getPowerSystem().getScaleAmmount());
|
||||
}
|
||||
|
||||
@Override
|
||||
public IGridNode getGridNode(ForgeDirection dir) {
|
||||
return this.getProxy().getNode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AECableType getCableConnectionType(ForgeDirection dir) {
|
||||
return AECableType.GLASS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void securityBreak() {
|
||||
this.worldObj.func_147480_a(this.xCoord, this.yCoord, this.zCoord, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AENetworkProxy getProxy() {
|
||||
return this.proxy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DimensionalCoord getLocation() {
|
||||
return new DimensionalCoord(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gridChanged() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound tagCompound) {
|
||||
super.readFromNBT(tagCompound);
|
||||
this.getProxy().readFromNBT(tagCompound);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound tagCompound) {
|
||||
super.writeToNBT(tagCompound);
|
||||
this.getProxy().writeToNBT(tagCompound);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChunkUnload() {
|
||||
super.onChunkUnload();
|
||||
this.getProxy().onChunkUnload();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidate() {
|
||||
super.invalidate();
|
||||
this.getProxy().invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validate() {
|
||||
super.validate();
|
||||
this.getProxy().validate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
super.updateEntity();
|
||||
if (!init) {
|
||||
init = true;
|
||||
this.getProxy().onReady();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -6,3 +6,6 @@ pccompat:power_converter_ue_4.name=UE 240V Consumer
|
|||
pccompat:power_converter_ue_5.name=UE 240V Producer
|
||||
pccompat:power_converter_ue_6.name=UE 480V Consumer
|
||||
pccompat:power_converter_ue_7.name=UE 480V Producer
|
||||
|
||||
pccompat:power_converter_ae_0.name=AE Producer
|
||||
pccompat:power_converter_ae_1.name=AE Consumer
|
||||
|
|
Loading…
Reference in a new issue