Skip to content

Commit 61afde9

Browse files
committed
Updated and added more mods for compat
Started the DieselGenerator
1 parent 7c1ee92 commit 61afde9

12 files changed

+211
-11
lines changed

build.gradle

+9
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ repositories {
2020
maven {
2121
url "http://dvs1.progwml6.com/files/maven"
2222
}
23+
maven {
24+
url 'http://maven.epoxide.xyz'
25+
}
26+
maven {
27+
name = "ic2"
28+
url = "http://maven.ic2.player.to/"
29+
}
2330
}
2431

2532
ext.configFile = file "build.properties"
@@ -46,6 +53,8 @@ minecraft {
4653

4754
dependencies {
4855
deobfCompile "mezz.jei:jei_" + config.minecraftVersion.toString() + ":" + config.jeiVersion.toString()
56+
deobfCompile "net.darkhax.tesla:Tesla:" + config.minecraftVersion.toString() + "-" + config.teslaVersion.toString()
57+
deobfCompile "net.industrial-craft:industrialcraft-2:" + config.ic2Version.toString() + ":api"
4958
}
5059

5160
processResources {

build.properties

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
modName=Traincraft
22
modVersion=1.0.0
33
minecraftVersion=1.10.2
4-
forgeVersion=1.10.2-12.18.1.2078
5-
mappings=snapshot_20160912
6-
jeiVersion=3.9.0.244
4+
forgeVersion=1.10.2-12.18.1.2086
5+
mappings=snapshot_20160914
6+
jeiVersion=3.9.3.252
7+
teslaVersion=1.2.1.49
8+
ic2Version=2.6.9-ex110

gradle/wrapper/gradle-wrapper.jar

1.33 KB
Binary file not shown.
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Mon Sep 14 12:28:28 PDT 2015
1+
#Wed Sep 14 20:24:52 CEST 2016
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-2.7-bin.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-3.0-bin.zip

gradlew

+1-5
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,6 @@ case "`uname`" in
4242
;;
4343
esac
4444

45-
# For Cygwin, ensure paths are in UNIX format before anything is touched.
46-
if $cygwin ; then
47-
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
48-
fi
49-
5045
# Attempt to set APP_HOME
5146
# Resolve links: $0 may be a link
5247
PRG="$0"
@@ -114,6 +109,7 @@ fi
114109
if $cygwin ; then
115110
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
116111
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
112+
JAVACMD=`cygpath --unix "$JAVACMD"`
117113

118114
# We build the pattern for arguments to be converted via cygpath
119115
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package si.meansoft.traincraft;
2+
3+
import net.minecraftforge.fml.common.Loader;
4+
5+
/**
6+
* @author canitzp
7+
*/
8+
public class Compat{
9+
10+
public static boolean isTeslaLoaded = Loader.isModLoaded("tesla");
11+
12+
}

src/main/java/si/meansoft/traincraft/Registry.java

+2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public class Registry{
2222
public static BlockHearthFurnace hearthFurnace;
2323
public static BlockCrafter crafterSteam, crafterDiesel, crafterIron;
2424
public static BlockWindmill windmill;
25+
public static BlockDieselGenerator dieselGenerator;
2526

2627
public static ItemMaterial material;
2728

@@ -35,6 +36,7 @@ public static void preInit(FMLPreInitializationEvent event){
3536
register(hearthFurnace = new BlockHearthFurnace());
3637
register(crafterSteam = new BlockCrafter(BlockCrafter.CrafterTier.STEAM), crafterDiesel = new BlockCrafter(BlockCrafter.CrafterTier.DIESEL), crafterIron = new BlockCrafter(BlockCrafter.CrafterTier.ELECTRO));
3738
register(windmill = new BlockWindmill());
39+
register(dieselGenerator = new BlockDieselGenerator());
3840

3941
//Items
4042
register(material = new ItemMaterial());
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package si.meansoft.traincraft;
2+
3+
import net.darkhax.tesla.api.ITeslaConsumer;
4+
import net.darkhax.tesla.api.ITeslaHolder;
5+
import net.darkhax.tesla.api.ITeslaProducer;
6+
import net.darkhax.tesla.capability.TeslaCapabilities;
7+
import net.minecraftforge.common.capabilities.Capability;
8+
import net.minecraftforge.energy.EnergyStorage;
9+
10+
/**
11+
* @author canitzp
12+
*/
13+
public class TeslaWrapper implements ITeslaHolder, ITeslaConsumer, ITeslaProducer{
14+
15+
private EnergyStorage storage;
16+
17+
private TeslaWrapper(EnergyStorage storage){
18+
this.storage = storage;
19+
}
20+
21+
public static <T> T getFromCapability(EnergyStorage storage, Capability<T> c){
22+
if(c == TeslaCapabilities.CAPABILITY_HOLDER || c == TeslaCapabilities.CAPABILITY_HOLDER || c == TeslaCapabilities.CAPABILITY_PRODUCER){
23+
return (T) new TeslaWrapper(storage);
24+
}
25+
return null;
26+
}
27+
28+
@Override
29+
public long getStoredPower(){
30+
return this.storage.getEnergyStored();
31+
}
32+
33+
@Override
34+
public long getCapacity(){
35+
return this.storage.getMaxEnergyStored();
36+
}
37+
38+
@Override
39+
public long givePower(long power, boolean simulated){
40+
return this.storage.receiveEnergy((int) power, simulated);
41+
}
42+
43+
@Override
44+
public long takePower(long power, boolean simulated){
45+
return this.storage.extractEnergy((int) power, simulated);
46+
}
47+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package si.meansoft.traincraft.blocks;
2+
3+
import net.minecraft.block.material.Material;
4+
import si.meansoft.traincraft.tile.TileEntityDieselGenerator;
5+
6+
/**
7+
* @author canitzp
8+
*/
9+
public class BlockDieselGenerator extends BlockContainerBase{
10+
11+
public BlockDieselGenerator(){
12+
super(Material.IRON, "generatorDiesel", TileEntityDieselGenerator.class);
13+
}
14+
15+
}

src/main/java/si/meansoft/traincraft/items/ItemSubtypeBase.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void getSubItems(Item item, CreativeTabs tab, List<ItemStack> list){
4949
@Override
5050
public void onRegister(IRegistryEntry[] otherEntries){
5151
for(int i = 0; i < this.subtypes.getEnumConstants().length; i++){
52-
String modelName = this.getRegisterName()+this.subtypes.getEnumConstants()[i].toString();
52+
String modelName = this.getRegistryName()+this.subtypes.getEnumConstants()[i].toString();
5353
CommonProxy.addForgeRender(new ItemStack(this, 1, i), new ModelResourceLocation(modelName, "inventory"));
5454
}
5555
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package si.meansoft.traincraft.tile;
2+
3+
import net.minecraft.util.ITickable;
4+
5+
/**
6+
* @author canitzp
7+
*/
8+
public class TileEntityDieselGenerator extends TileEntityEnergy implements ITickable{
9+
10+
public TileEntityDieselGenerator(){
11+
super("DieselGenerator", 1, 30000, 5000);
12+
}
13+
14+
@Override
15+
public void update(){
16+
this.receiveEnergy(1, false);
17+
System.out.println("" + this.getStoredEnergy());
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
package si.meansoft.traincraft.tile;
2+
3+
import ic2.api.tile.IEnergyStorage;
4+
import net.minecraft.util.EnumFacing;
5+
import net.minecraftforge.common.capabilities.Capability;
6+
import net.minecraftforge.energy.EnergyStorage;
7+
import net.minecraftforge.fml.common.Optional;
8+
import si.meansoft.traincraft.Compat;
9+
import si.meansoft.traincraft.TeslaWrapper;
10+
11+
/**
12+
* @author canitzp
13+
*/
14+
@Optional.Interface(modid = "IC2", iface = "ic2.api.tile.IEnergyStorage")
15+
public class TileEntityEnergy extends TileEntityInventory implements IEnergyStorage{
16+
17+
public static final int EU_TO_RF_CONVERSION_RATE = 4;
18+
19+
private EnergyStorage storage;
20+
private int maxTransfer;
21+
22+
public TileEntityEnergy(String name, int slotAmount, int capacity, int maxTransfer){
23+
super(name, slotAmount);
24+
this.maxTransfer = maxTransfer;
25+
this.storage = new EnergyStorage(capacity, maxTransfer);
26+
}
27+
28+
@Optional.Method(modid = "IC2")
29+
@Override
30+
public int getStored(){
31+
return storage.getEnergyStored() / EU_TO_RF_CONVERSION_RATE;
32+
}
33+
34+
@Optional.Method(modid = "IC2")
35+
@Override
36+
public void setStored(int energy){
37+
}
38+
39+
@Optional.Method(modid = "IC2")
40+
@Override
41+
public int addEnergy(int energy){
42+
this.storage.receiveEnergy(energy / EU_TO_RF_CONVERSION_RATE, false);
43+
return this.storage.getEnergyStored() / EU_TO_RF_CONVERSION_RATE;
44+
}
45+
46+
@Optional.Method(modid = "IC2")
47+
@Override
48+
public int getCapacity(){
49+
return this.storage.getMaxEnergyStored() / EU_TO_RF_CONVERSION_RATE;
50+
}
51+
52+
@Optional.Method(modid = "IC2")
53+
@Override
54+
public int getOutput(){
55+
return this.maxTransfer / EU_TO_RF_CONVERSION_RATE;
56+
}
57+
58+
@Optional.Method(modid = "IC2")
59+
@Override
60+
public double getOutputEnergyUnitsPerTick(){
61+
return getOutput();
62+
}
63+
64+
@Optional.Method(modid = "IC2")
65+
@Override
66+
public boolean isTeleporterCompatible(EnumFacing enumFacing){
67+
return false;
68+
}
69+
70+
@Override
71+
public <T> T getCapability(Capability<T> capability, EnumFacing facing){
72+
if(Compat.isTeslaLoaded){
73+
T cap = TeslaWrapper.getFromCapability(this.storage, capability);
74+
if(cap != null){
75+
return cap;
76+
}
77+
}
78+
return super.getCapability(capability, facing);
79+
}
80+
81+
@Override
82+
public boolean hasCapability(Capability<?> capability, EnumFacing facing){
83+
return this.getCapability(capability, facing) != null;
84+
}
85+
86+
public int receiveEnergy(int energy, boolean simulated){
87+
return this.storage.receiveEnergy(energy, simulated);
88+
}
89+
90+
public int extractEnergy(int energy, boolean simulated){
91+
return this.storage.extractEnergy(energy, simulated);
92+
}
93+
94+
public int getStoredEnergy(){
95+
return this.storage.getEnergyStored();
96+
}
97+
98+
}

0 commit comments

Comments
 (0)