generated from tilera/1710mod
feat: implement ProjectRed converters
This commit is contained in:
parent
c473f2c255
commit
3a88ec952f
|
@ -11,6 +11,7 @@ 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.HBMProxy;
|
||||
import net.anvilcraft.pccompat.mods.ProjectRedProxy;
|
||||
import net.anvilcraft.pccompat.mods.RedPowerProxy;
|
||||
import net.anvilcraft.pccompat.mods.UniversalElectricityProxy;
|
||||
|
||||
|
@ -19,7 +20,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"
|
||||
= "required-after:PowerConverters3;after:basiccomponents;after:appliedenergistics2;after:hbm;after:RedPowerCore;after:ProjRed|Expansion"
|
||||
)
|
||||
public class PCCompat {
|
||||
public static HashSet<IModProxy> mods = new HashSet<>();
|
||||
|
@ -28,7 +29,7 @@ public class PCCompat {
|
|||
public static void preInit(FMLPreInitializationEvent ev) {
|
||||
collectMods();
|
||||
try {
|
||||
// Fix IC2 scale "Ammount" due to mod outragous developer incompetence
|
||||
// Fix IC2 scale "Ammount" due to outragous mod developer incompetence
|
||||
Field field = PowerSystem.class.getDeclaredField("scaleAmmount");
|
||||
field.setAccessible(true);
|
||||
field.setInt(PowerSystems.powerSystemIndustrialCraft, 4000);
|
||||
|
@ -58,5 +59,7 @@ public class PCCompat {
|
|||
mods.add(new HBMProxy());
|
||||
if (Loader.isModLoaded("RedPowerCore"))
|
||||
mods.add(new RedPowerProxy());
|
||||
if (Loader.isModLoaded("ProjRed|Expansion"))
|
||||
mods.add(new ProjectRedProxy());
|
||||
}
|
||||
}
|
||||
|
|
18
src/main/java/net/anvilcraft/pccompat/Utils.java
Normal file
18
src/main/java/net/anvilcraft/pccompat/Utils.java
Normal file
|
@ -0,0 +1,18 @@
|
|||
package net.anvilcraft.pccompat;
|
||||
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.util.IIcon;
|
||||
|
||||
public class Utils {
|
||||
public static void registerStandardPowerConverterBlockIcons(
|
||||
IIconRegister reg, IIcon[] icons, String modPrefix
|
||||
) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
String state = i % 2 == 0 ? "off" : "on";
|
||||
String type = i < 2 ? "consumer" : "producer";
|
||||
|
||||
icons[i]
|
||||
= reg.registerIcon("pccompat:" + modPrefix + "_" + type + "_" + state);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,6 +2,7 @@ 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.TileEntityAppliedEnergisticsConsumer;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityAppliedEnergisticsProducer;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
|
@ -16,12 +17,7 @@ public class BlockPowerConverterAppliedEnergistics extends BlockPowerConverter {
|
|||
|
||||
@Override
|
||||
public void registerBlockIcons(IIconRegister reg) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
String state = i % 2 == 0 ? "off" : "on";
|
||||
String type = i < 2 ? "consumer" : "producer";
|
||||
|
||||
this._icons[i] = reg.registerIcon("pccompat:ae_" + type + "_" + state);
|
||||
}
|
||||
Utils.registerStandardPowerConverterBlockIcons(reg, this._icons, "ae");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -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.TileEntityProjectRedConsumer;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityProjectRedProducer;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockPowerConverterProjectRed extends BlockPowerConverter {
|
||||
public BlockPowerConverterProjectRed() {
|
||||
super(2); // 1 Consumer, 1 Producer
|
||||
this.setCreativeTab(PCCreativeTab.tab);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlockIcons(IIconRegister reg) {
|
||||
Utils.registerStandardPowerConverterBlockIcons(reg, this._icons, "pr");
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return meta == 0 ? new TileEntityProjectRedConsumer()
|
||||
: new TileEntityProjectRedProducer();
|
||||
}
|
||||
}
|
|
@ -2,6 +2,7 @@ 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.TileEntityRedPowerConsumer;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityRedPowerProducer;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
|
@ -16,12 +17,7 @@ public class BlockPowerConverterRedPower extends BlockPowerConverter {
|
|||
|
||||
@Override
|
||||
public void registerBlockIcons(IIconRegister reg) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
String state = i % 2 == 0 ? "off" : "on";
|
||||
String type = i < 2 ? "consumer" : "producer";
|
||||
|
||||
this._icons[i] = reg.registerIcon("pccompat:rp_" + type + "_" + state);
|
||||
}
|
||||
Utils.registerStandardPowerConverterBlockIcons(reg, this._icons, "rp");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
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 abstract class AbstractItemBlockPowerConverter extends ItemBlock {
|
||||
public AbstractItemBlockPowerConverter(Block block) {
|
||||
super(block);
|
||||
this.setHasSubtypes(true);
|
||||
this.setMaxDamage(0);
|
||||
}
|
||||
|
||||
public abstract String getModPrefix();
|
||||
|
||||
public int getSubItemCount() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetadata(int meta) {
|
||||
return meta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName(ItemStack stack) {
|
||||
return "pccompat:power_converter_" + this.getModPrefix() + "_"
|
||||
+ stack.getItemDamage();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public void getSubItems(Item alec1, CreativeTabs alec2, List list) {
|
||||
IntStream.range(0, this.getSubItemCount())
|
||||
.mapToObj((i) -> new ItemStack(this, 1, i))
|
||||
.forEach(list::add);
|
||||
}
|
||||
}
|
|
@ -1,38 +1,15 @@
|
|||
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 class ItemBlockPowerConverterAppliedEnergistics
|
||||
extends AbstractItemBlockPowerConverter {
|
||||
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);
|
||||
public String getModPrefix() {
|
||||
return "ae";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,38 +1,14 @@
|
|||
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 ItemBlockPowerConverterHBM extends ItemBlock {
|
||||
public class ItemBlockPowerConverterHBM extends AbstractItemBlockPowerConverter {
|
||||
public ItemBlockPowerConverterHBM(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_hbm_" + 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);
|
||||
public String getModPrefix() {
|
||||
return "hbm";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
package net.anvilcraft.pccompat.items;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
|
||||
public class ItemBlockPowerConverterProjectRed extends AbstractItemBlockPowerConverter {
|
||||
public ItemBlockPowerConverterProjectRed(Block block) {
|
||||
super(block);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getModPrefix() {
|
||||
return "pr";
|
||||
}
|
||||
}
|
|
@ -1,38 +1,14 @@
|
|||
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 ItemBlockPowerConverterRedPower extends ItemBlock {
|
||||
public class ItemBlockPowerConverterRedPower extends AbstractItemBlockPowerConverter {
|
||||
public ItemBlockPowerConverterRedPower(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_rp_" + 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);
|
||||
public String getModPrefix() {
|
||||
return "rp";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,38 +1,19 @@
|
|||
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 ItemBlockPowerConverterUniversalElectricity extends ItemBlock {
|
||||
public class ItemBlockPowerConverterUniversalElectricity extends AbstractItemBlockPowerConverter {
|
||||
public ItemBlockPowerConverterUniversalElectricity(Block block) {
|
||||
super(block);
|
||||
this.setHasSubtypes(true);
|
||||
this.setMaxDamage(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetadata(int meta) {
|
||||
return meta;
|
||||
public int getSubItemCount() {
|
||||
return 8;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName(ItemStack stack) {
|
||||
int meta = stack.getItemDamage();
|
||||
|
||||
return "pccompat:power_converter_ue_" + meta;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public void getSubItems(Item alec1, CreativeTabs alec2, List list) {
|
||||
IntStream.range(0, 8)
|
||||
.mapToObj((i) -> new ItemStack(this, 1, i))
|
||||
.forEach(list::add);
|
||||
public String getModPrefix() {
|
||||
return "ue";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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.BlockPowerConverterProjectRed;
|
||||
import net.anvilcraft.pccompat.items.ItemBlockPowerConverterProjectRed;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityProjectRedConsumer;
|
||||
import net.anvilcraft.pccompat.tiles.TileEntityProjectRedProducer;
|
||||
import net.minecraft.block.Block;
|
||||
|
||||
public class ProjectRedProxy implements IModProxy {
|
||||
public static PowerSystem powerSystem;
|
||||
public static Block blockPowerConverter;
|
||||
|
||||
@Override
|
||||
public void registerPowerSystem() {
|
||||
PowerSystemRegistry.registerPowerSystem(
|
||||
powerSystem = new PowerSystem("Bluetricity", "BT", 7000, "W")
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlocks() {
|
||||
GameRegistry.registerBlock(
|
||||
blockPowerConverter = new BlockPowerConverterProjectRed(),
|
||||
ItemBlockPowerConverterProjectRed.class,
|
||||
"power_converter_project_red"
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerTiles() {
|
||||
GameRegistry.registerTileEntity(
|
||||
TileEntityProjectRedConsumer.class, "project_red_consumer"
|
||||
);
|
||||
GameRegistry.registerTileEntity(
|
||||
TileEntityProjectRedProducer.class, "project_red_producer"
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerRecipes() {}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package net.anvilcraft.pccompat.tiles;
|
||||
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import covers1624.powerconverters.tile.main.TileEntityEnergyConsumer;
|
||||
import mrtjp.projectred.expansion.TPowerStorage;
|
||||
import net.anvilcraft.pccompat.mods.ProjectRedProxy;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityProjectRedConsumer
|
||||
extends TileEntityEnergyConsumer<TPowerStorage> {
|
||||
private int btLastTick;
|
||||
|
||||
public TileEntityProjectRedConsumer() {
|
||||
super(ProjectRedProxy.powerSystem, 0, TPowerStorage.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
super.updateEntity();
|
||||
|
||||
btLastTick = 0;
|
||||
for (Entry<ForgeDirection, TPowerStorage> box : this.getTiles().entrySet()) {
|
||||
int toStore = (int) Math.min(
|
||||
box.getValue().storage(),
|
||||
getTotalEnergyDemand() / this.getPowerSystem().getScaleAmmount()
|
||||
);
|
||||
box.getValue().storage_$eq(box.getValue().storage() - toStore);
|
||||
this.storeEnergy(toStore * this.getPowerSystem().getScaleAmmount(), false);
|
||||
|
||||
TileEntity boxTE = (TileEntity) box.getValue();
|
||||
boxTE.getWorldObj().markBlockForUpdate(
|
||||
boxTE.xCoord, boxTE.yCoord, boxTE.zCoord
|
||||
);
|
||||
btLastTick += toStore;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getInputRate() {
|
||||
return this.btLastTick;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package net.anvilcraft.pccompat.tiles;
|
||||
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import covers1624.powerconverters.tile.main.TileEntityEnergyProducer;
|
||||
import mrtjp.projectred.expansion.TPowerStorage;
|
||||
import net.anvilcraft.pccompat.mods.ProjectRedProxy;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityProjectRedProducer
|
||||
extends TileEntityEnergyProducer<TPowerStorage> {
|
||||
public TileEntityProjectRedProducer() {
|
||||
super(ProjectRedProxy.powerSystem, 0, TPowerStorage.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double produceEnergy(double energy) {
|
||||
for (Entry<ForgeDirection, TPowerStorage> box : this.getTiles().entrySet()) {
|
||||
int toStore = (int) Math.min(
|
||||
(box.getValue().getMaxStorage() - box.getValue().storage()),
|
||||
energy / getPowerSystem().getScaleAmmount()
|
||||
);
|
||||
box.getValue().storage_$eq(box.getValue().storage() + toStore);
|
||||
TileEntity boxTE = (TileEntity) box.getValue();
|
||||
boxTE.getWorldObj().markBlockForUpdate(
|
||||
boxTE.xCoord, boxTE.yCoord, boxTE.zCoord
|
||||
);
|
||||
energy -= toStore * getPowerSystem().getScaleAmmount();
|
||||
}
|
||||
return energy;
|
||||
}
|
||||
}
|
|
@ -19,13 +19,13 @@ public class TileEntityRedPowerConsumer extends TileEntityEnergyConsumer<TileBat
|
|||
super.updateEntity();
|
||||
|
||||
btLastTick = 0;
|
||||
for (Entry<ForgeDirection, TileBatteryBox> box : getTiles().entrySet()) {
|
||||
for (Entry<ForgeDirection, TileBatteryBox> box : this.getTiles().entrySet()) {
|
||||
double toStore = Math.min(
|
||||
box.getValue().Storage,
|
||||
getTotalEnergyDemand() / getPowerSystem().getScaleAmmount()
|
||||
getTotalEnergyDemand() / this.getPowerSystem().getScaleAmmount()
|
||||
);
|
||||
box.getValue().Storage -= toStore;
|
||||
this.storeEnergy(toStore * getPowerSystem().getScaleAmmount(), false);
|
||||
this.storeEnergy(toStore * this.getPowerSystem().getScaleAmmount(), false);
|
||||
box.getValue().getWorldObj().markBlockForUpdate(
|
||||
box.getValue().xCoord, box.getValue().yCoord, box.getValue().zCoord
|
||||
);
|
||||
|
@ -35,6 +35,6 @@ public class TileEntityRedPowerConsumer extends TileEntityEnergyConsumer<TileBat
|
|||
|
||||
@Override
|
||||
public double getInputRate() {
|
||||
return btLastTick;
|
||||
return this.btLastTick;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,3 +15,6 @@ pccompat:power_converter_hbm_1.name=HBM Producer
|
|||
|
||||
pccompat:power_converter_rp_0.name=Bluetricity Consumer
|
||||
pccompat:power_converter_rp_1.name=Bluetricity Producer
|
||||
|
||||
pccompat:power_converter_pr_0.name=Bluetricity Consumer
|
||||
pccompat:power_converter_pr_1.name=Bluetricity Producer
|
||||
|
|
Loading…
Reference in a new issue