mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-08-03 19:17:27 -04:00
And the award for first mod integration goes to: NEI!
This commit is contained in:
parent
a804769abd
commit
b3facc363e
20
build.gradle
20
build.gradle
@ -61,15 +61,15 @@ runServer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
/*
|
|
||||||
maven {
|
|
||||||
name = "bc"
|
|
||||||
url = "http://mod-buildcraft.com/"
|
|
||||||
}
|
|
||||||
maven {
|
maven {
|
||||||
name = "chickenbones"
|
name = "chickenbones"
|
||||||
url = "http://chickenbones.net/maven/"
|
url = "http://chickenbones.net/maven/"
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
maven {
|
||||||
|
name = "bc"
|
||||||
|
url = "http://mod-buildcraft.com/"
|
||||||
|
}
|
||||||
maven {
|
maven {
|
||||||
name = "ic2, forestry"
|
name = "ic2, forestry"
|
||||||
url = "http://maven.ic2.player.to/"
|
url = "http://maven.ic2.player.to/"
|
||||||
@ -128,7 +128,7 @@ repositories {
|
|||||||
name 'Railcraft'
|
name 'Railcraft'
|
||||||
artifactPattern "http://addons.cursecdn.com/files/${config.rc.cf}/[module]_[revision].[ext]"
|
artifactPattern "http://addons.cursecdn.com/files/${config.rc.cf}/[module]_[revision].[ext]"
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
@ -138,13 +138,14 @@ configurations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
provided "codechicken:CodeChickenCore:${config.minecraft.version}-${config.ccc.version}:dev"
|
||||||
|
provided "codechicken:CodeChickenLib:${config.minecraft.version}-${config.ccl.version}:dev"
|
||||||
|
provided "codechicken:NotEnoughItems:${config.minecraft.version}-${config.nei.version}:dev"
|
||||||
/*
|
/*
|
||||||
provided "api:rotarycraft:${config.rotc.version}"
|
provided "api:rotarycraft:${config.rotc.version}"
|
||||||
provided "appeng:appliedenergistics2:${config.ae2.version}:dev"
|
provided "appeng:appliedenergistics2:${config.ae2.version}:dev"
|
||||||
provided "codechicken:CodeChickenLib:${config.minecraft.version}-${config.ccl.version}:dev"
|
|
||||||
provided "codechicken:EnderStorage:${config.minecraft.version}-${config.es.version}:dev"
|
provided "codechicken:EnderStorage:${config.minecraft.version}-${config.es.version}:dev"
|
||||||
provided "codechicken:ForgeMultipart:${config.minecraft.version}-${config.fmp.version}:dev"
|
provided "codechicken:ForgeMultipart:${config.minecraft.version}-${config.fmp.version}:dev"
|
||||||
provided "codechicken:NotEnoughItems:${config.minecraft.version}-${config.nei.version}:dev"
|
|
||||||
provided "codechicken:WR-CBE:${config.minecraft.version}-${config.wrcbe.version}:dev"
|
provided "codechicken:WR-CBE:${config.minecraft.version}-${config.wrcbe.version}:dev"
|
||||||
provided "com.gregoriust.gregtech:gregtech_${config.minecraft.version}:${config.gt.version}:dev"
|
provided "com.gregoriust.gregtech:gregtech_${config.minecraft.version}:${config.gt.version}:dev"
|
||||||
provided "com.mod-buildcraft:buildcraft:${config.bc.version}:dev"
|
provided "com.mod-buildcraft:buildcraft:${config.bc.version}:dev"
|
||||||
@ -171,7 +172,7 @@ dependencies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
idea.module.scopes.PROVIDED.plus += configurations.provided
|
idea.module.scopes.PROVIDED.plus += configurations.provided
|
||||||
eclipse.classpath.plusConfigurations += configurations.provided
|
// eclipse.classpath.plusConfigurations += configurations.provided
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
main {
|
||||||
@ -187,7 +188,6 @@ sourceSets {
|
|||||||
exclude 'li/cil/oc/integration/ic2/**'
|
exclude 'li/cil/oc/integration/ic2/**'
|
||||||
exclude 'li/cil/oc/integration/mfr/**'
|
exclude 'li/cil/oc/integration/mfr/**'
|
||||||
exclude 'li/cil/oc/integration/mystcraft/**'
|
exclude 'li/cil/oc/integration/mystcraft/**'
|
||||||
exclude 'li/cil/oc/integration/nei/**'
|
|
||||||
exclude 'li/cil/oc/integration/railcraft/**'
|
exclude 'li/cil/oc/integration/railcraft/**'
|
||||||
exclude 'li/cil/oc/integration/stargatetech2/**'
|
exclude 'li/cil/oc/integration/stargatetech2/**'
|
||||||
exclude 'li/cil/oc/integration/tcon/**'
|
exclude 'li/cil/oc/integration/tcon/**'
|
||||||
|
@ -8,7 +8,8 @@ ae2.version=rv1-stable-1
|
|||||||
bc.version=6.1.8
|
bc.version=6.1.8
|
||||||
cc.cf=2216/236
|
cc.cf=2216/236
|
||||||
cc.version=1.65
|
cc.version=1.65
|
||||||
ccl.version=1.1.1.104
|
ccc.version=1.0.5.34
|
||||||
|
ccl.version=1.1.2.115
|
||||||
cofhlib.cf=2212/893
|
cofhlib.cf=2212/893
|
||||||
cofhlib.version=[1.7.10]1.0.0B6-dev-26
|
cofhlib.version=[1.7.10]1.0.0B6-dev-26
|
||||||
eio.cf=2219/296
|
eio.cf=2219/296
|
||||||
@ -24,7 +25,7 @@ mekanism.build=118
|
|||||||
mekanism.version=7.1.1
|
mekanism.version=7.1.1
|
||||||
mfr.cf=2213/46
|
mfr.cf=2213/46
|
||||||
mfr.version=[1.7.10]2.8.0RC3-dev-591
|
mfr.version=[1.7.10]2.8.0RC3-dev-591
|
||||||
nei.version=1.0.3.57
|
nei.version=1.0.5.82
|
||||||
projred.version=4.5.8.59
|
projred.version=4.5.8.59
|
||||||
rc.cf=2219/321
|
rc.cf=2219/321
|
||||||
rc.version=1.7.10-9.4.0.0
|
rc.version=1.7.10-9.4.0.0
|
||||||
|
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
|||||||
#Wed Jul 02 15:54:47 CDT 2014
|
#Sat Jan 03 02:25:42 CET 2015
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-1.12-bin.zip
|
||||||
|
2
gradlew.bat
vendored
2
gradlew.bat
vendored
@ -9,7 +9,7 @@
|
|||||||
if "%OS%"=="Windows_NT" setlocal
|
if "%OS%"=="Windows_NT" setlocal
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
set DEFAULT_JVM_OPTS=-Xmx1G -XX:MaxPermSize=256M
|
set DEFAULT_JVM_OPTS=
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
set DIRNAME=%~dp0
|
||||||
if "%DIRNAME%" == "" set DIRNAME=.
|
if "%DIRNAME%" == "" set DIRNAME=.
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api;
|
|
||||||
|
|
||||||
import lordfokas.stargatetech2.api.bus.IBusDevice;
|
|
||||||
import lordfokas.stargatetech2.api.bus.IBusDriver;
|
|
||||||
import lordfokas.stargatetech2.api.bus.IBusInterface;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A factory for private classes that implement
|
|
||||||
* interfaces from the public API.
|
|
||||||
*
|
|
||||||
* @author LordFokas
|
|
||||||
*/
|
|
||||||
public interface IFactory {
|
|
||||||
public IBusInterface getIBusInterface(IBusDevice device, IBusDriver driver);
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The way to get ItemStacks added to the game by StargateTech 2
|
|
||||||
*
|
|
||||||
* @author LordFokas
|
|
||||||
*/
|
|
||||||
public interface IStackManager {
|
|
||||||
/**
|
|
||||||
* Used to fetch an ItemStack by it's name, with a default size of 1.
|
|
||||||
*
|
|
||||||
* @param stack The stack we want to fetch.
|
|
||||||
* @return The stack, or null if none was found.
|
|
||||||
*/
|
|
||||||
public ItemStack get(String stack);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to fetch an ItemStack by it's name with a given size.
|
|
||||||
*
|
|
||||||
* @param stack The stack we want to fetch.
|
|
||||||
* @param size The size the stack comes with. Must be in the range 1 - 64.
|
|
||||||
* @return The stack, or null if none was found.
|
|
||||||
*/
|
|
||||||
public ItemStack get(String stack, int size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return A list with the names of all the existing stacks.
|
|
||||||
*/
|
|
||||||
public Collection<String> getAllStacks();
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api;
|
|
||||||
|
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
|
||||||
import net.minecraftforge.fluids.Fluid;
|
|
||||||
import lordfokas.stargatetech2.api.stargate.IStargateNetwork;
|
|
||||||
import lordfokas.stargatetech2.api.stargate.IStargatePlacer;
|
|
||||||
|
|
||||||
public interface IStargateTechAPI {
|
|
||||||
/**
|
|
||||||
* @return The Fluid instance corresponding to Ionized Particles.
|
|
||||||
*/
|
|
||||||
public Fluid getIonizedParticlesFluidInstance();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return The creative inventory tab used by StargateTech 2.
|
|
||||||
*/
|
|
||||||
public CreativeTabs getStargateTab();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return The IStargateNetwork singleton instance.
|
|
||||||
*/
|
|
||||||
public IStargateNetwork getStargateNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return The IStargatePlacer singleton instance, a.k.a Seeding Ship for the fans.
|
|
||||||
*/
|
|
||||||
public IStargatePlacer getSeedingShip();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return The current IFactory instance.
|
|
||||||
*/
|
|
||||||
public IFactory getFactory();
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api;
|
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Implemented by blocks that run special actions when clicked with a TabletPC in hand.
|
|
||||||
* The default action in StargateTech2 is opening a special GUI.
|
|
||||||
*
|
|
||||||
* @author LordFokas
|
|
||||||
*/
|
|
||||||
public interface ITabletAccess {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Make the block run a special action when activated with a TabletPC.
|
|
||||||
* This method is only called on the client side.
|
|
||||||
* Implementations requiring server side should use packets.
|
|
||||||
*
|
|
||||||
* @param player The player activating the block.
|
|
||||||
* @param world The world the block is in.
|
|
||||||
* @param x The block's X coordinate.
|
|
||||||
* @param y The block's Y coordinate.
|
|
||||||
* @param z The block's Z coordinate.
|
|
||||||
* @return True if a special action was executed, false otherwise.
|
|
||||||
*/
|
|
||||||
public boolean onTabletAccess(EntityPlayer player, World world, int x, int y, int z);
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api;
|
|
||||||
|
|
||||||
public abstract class StargateTechAPI implements IStargateTechAPI {
|
|
||||||
protected static IStargateTechAPI apiInstance;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* StargateTech's API is abstract, and it's implementation is not visible in the API package.
|
|
||||||
* All available methods in IStargateTechAPI are implemented elsewhere.
|
|
||||||
* This method allows you to retrieve an instance of that implementation.
|
|
||||||
*
|
|
||||||
* @return a concrete implementation of IStargateTechAPI
|
|
||||||
*/
|
|
||||||
public static IStargateTechAPI api(){
|
|
||||||
return apiInstance;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,40 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.bus;
|
|
||||||
|
|
||||||
import cpw.mods.fml.common.eventhandler.Event;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
public class BusEvent extends Event{
|
|
||||||
public final World world;
|
|
||||||
public final int x, y, z;
|
|
||||||
|
|
||||||
protected BusEvent(World world, int x, int y, int z){
|
|
||||||
this.world = world;
|
|
||||||
this.x = x;
|
|
||||||
this.y = y;
|
|
||||||
this.z = z;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fire this event on Forge's BUS_EVENT to add the IBusDevice
|
|
||||||
* in this location to a bus network, if any is available.
|
|
||||||
*
|
|
||||||
* @author LordFokas
|
|
||||||
*/
|
|
||||||
public static final class AddToNetwork extends BusEvent{
|
|
||||||
public AddToNetwork(World world, int x, int y, int z) {
|
|
||||||
super(world, x, y, z);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fire this event on Forge's BUS_EVENT to remove the IBusDevice
|
|
||||||
* in this location from any connected bus networks.
|
|
||||||
*
|
|
||||||
* @author LordFokas
|
|
||||||
*/
|
|
||||||
public static final class RemoveFromNetwork extends BusEvent{
|
|
||||||
public RemoveFromNetwork(World world, int x, int y, int z) {
|
|
||||||
super(world, x, y, z);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,93 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.bus;
|
|
||||||
|
|
||||||
import java.util.LinkedList;
|
|
||||||
|
|
||||||
public abstract class BusPacket<R>{
|
|
||||||
private LinkedList<R> responses;
|
|
||||||
private final short sender;
|
|
||||||
private final short target;
|
|
||||||
private final boolean hasLIP;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param sender The address of the Device that is sending this packet.
|
|
||||||
* @param target The address of the Device(s) that should receive this packet.
|
|
||||||
* @param hasLIP Whether or not this packet supports being converted to a plain text (LIP) format.
|
|
||||||
*/
|
|
||||||
protected BusPacket(short sender, short target, boolean hasLIP){
|
|
||||||
this.responses = new LinkedList();
|
|
||||||
this.sender = sender;
|
|
||||||
this.target = target;
|
|
||||||
this.hasLIP = hasLIP;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return The address of the device that sent this packet.
|
|
||||||
*/
|
|
||||||
public final short getSender(){
|
|
||||||
return sender;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return The address of the device(s) that should receive this packet.
|
|
||||||
*/
|
|
||||||
public final short getTarget(){
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return The ID of the protocol this packet corresponds to.
|
|
||||||
*/
|
|
||||||
public final int getProtocolID(){
|
|
||||||
return BusProtocols.getProtocolID(this.getClass());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return A plain text (LIP) version of this packet, if it has one.
|
|
||||||
*/
|
|
||||||
public final BusPacketLIP getPlainText(){
|
|
||||||
if(this instanceof BusPacketLIP){
|
|
||||||
return (BusPacketLIP) this;
|
|
||||||
}else if(hasLIP){
|
|
||||||
BusPacketLIP lip = new BusPacketLIP(sender, target);
|
|
||||||
fillPlainText(lip);
|
|
||||||
lip.finish();
|
|
||||||
return lip;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used by subclasses to convert themselves to plain text format.
|
|
||||||
*
|
|
||||||
* @param lip The Lazy Intercom Protocol (LIP) packet we're filling with our data.
|
|
||||||
*/
|
|
||||||
protected abstract void fillPlainText(BusPacketLIP lip);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Whether or not this packet supports conversion to the LIP format.
|
|
||||||
*/
|
|
||||||
public final boolean hasPlainText(){
|
|
||||||
return hasLIP;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds a response to this packet that to give the sender some feedback.
|
|
||||||
* The object type depends on the packet subclass.
|
|
||||||
*
|
|
||||||
* Note that clients converting the packet to LIP format
|
|
||||||
* lose the ability to send feedback.
|
|
||||||
*
|
|
||||||
* @param response The response to add.
|
|
||||||
*/
|
|
||||||
public final void addResponse(R response){
|
|
||||||
if(response == null) throw new IllegalArgumentException("A Response cannot be null!");
|
|
||||||
responses.add(response);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return All the responses other clients added to this packet.
|
|
||||||
*/
|
|
||||||
public final LinkedList<R> getResponses(){
|
|
||||||
return new LinkedList<R>(responses);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,112 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.bus;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Hashtable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* LIP - Lazy Intercom Protocol<br>
|
|
||||||
* <br>
|
|
||||||
* Baptized by sciguyryan (often found in #ThermalExpansion and #StargateTech on esper.net's IRC),
|
|
||||||
* this is the universal plain text format used in the Abstract Bus.<br>
|
|
||||||
* <br>
|
|
||||||
* Any packet can choose to be convertible to this format, allowing for any class anywhere to
|
|
||||||
* read data from a packet which has an unknown and / or private class by asking it to convert to
|
|
||||||
* a text format. This removes all the problems with type casting and such.
|
|
||||||
*
|
|
||||||
* @author LordFokas
|
|
||||||
*/
|
|
||||||
public final class BusPacketLIP extends BusPacket<String> {
|
|
||||||
private boolean isEditable = true;
|
|
||||||
private LIPMetadata metadata = null;
|
|
||||||
private Hashtable<String, String> data = new Hashtable();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Defines optional metadata that helps sorting this packet out / figuring out what to do with this.
|
|
||||||
* The fact this is a plain text protocol makes the possibilities so vague it'd be impossible to
|
|
||||||
* guess what kind of data this packet carries.
|
|
||||||
*
|
|
||||||
* @author LordFokas
|
|
||||||
*/
|
|
||||||
public static final class LIPMetadata{
|
|
||||||
public final String modID;
|
|
||||||
public final String deviceName;
|
|
||||||
public final String playerName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Example: new LIPMetadata("StargateTech2", "shieldEmitter", "LordFokas");
|
|
||||||
*
|
|
||||||
* @param modID The ID of the mod that generated this packet. PLEASE do fill this one.
|
|
||||||
* @param deviceName The name (or a unique identifier) of the type of machine that generated this.
|
|
||||||
* @param playerName The name of the player that made this packet be generated, if any.
|
|
||||||
*/
|
|
||||||
public LIPMetadata(String modID, String deviceName, String playerName){
|
|
||||||
this.modID = modID;
|
|
||||||
this.deviceName = deviceName;
|
|
||||||
this.playerName = playerName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public BusPacketLIP(short sender, short target) {
|
|
||||||
super(sender, target, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param metadata The LIPMetadata object to set to this packet.
|
|
||||||
*/
|
|
||||||
public void setMetadata(LIPMetadata metadata){
|
|
||||||
if(isEditable && this.metadata == null){
|
|
||||||
this.metadata = metadata;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return The LIPMetadata object on this object. May be null.
|
|
||||||
*/
|
|
||||||
public LIPMetadata getMetadata(){
|
|
||||||
return metadata;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override // We don't need this. At all.
|
|
||||||
protected void fillPlainText(BusPacketLIP lip){}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Finish creating this packet.
|
|
||||||
* As soon as you call this, it can no longer be modified.
|
|
||||||
*/
|
|
||||||
public void finish(){
|
|
||||||
isEditable = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return A list of all the keys for the data on this packet.
|
|
||||||
*/
|
|
||||||
public ArrayList<String> getEntryList(){
|
|
||||||
ArrayList<String> entries = new ArrayList();
|
|
||||||
entries.addAll(data.keySet());
|
|
||||||
return entries;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a new entry to this packet.
|
|
||||||
* If the key already exists the entry is ignored.
|
|
||||||
*
|
|
||||||
* @param key The key under which to send the data.
|
|
||||||
* @param val The data to send.
|
|
||||||
*/
|
|
||||||
public void set(String key, String val){
|
|
||||||
if(isEditable && !data.containsKey(key)){
|
|
||||||
data.put(key.toLowerCase(), val);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the value stored under that key, if any.
|
|
||||||
* Case Insensitive.
|
|
||||||
*
|
|
||||||
* @param key The key under which the data is stored.
|
|
||||||
* @return The data stored under that key, if any, null otherwise.
|
|
||||||
*/
|
|
||||||
public String get(String key){
|
|
||||||
return data.get(key.toLowerCase());
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.bus;
|
|
||||||
|
|
||||||
import java.util.LinkedList;
|
|
||||||
|
|
||||||
public final class BusPacketNetScan extends BusPacket<Void> {
|
|
||||||
private LinkedList<Device> devices = new LinkedList();
|
|
||||||
|
|
||||||
public BusPacketNetScan(short target) {
|
|
||||||
super((short)0xFFFF, target, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// We're not using this
|
|
||||||
@Override protected void fillPlainText(BusPacketLIP lip){}
|
|
||||||
|
|
||||||
public void addDevice(Device device){
|
|
||||||
devices.add(device);
|
|
||||||
}
|
|
||||||
|
|
||||||
public LinkedList<Device> getDevices(){
|
|
||||||
return new LinkedList<Device>(devices);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final class Device{
|
|
||||||
public final String description, name;
|
|
||||||
public final short address;
|
|
||||||
public final boolean enabled;
|
|
||||||
public final int x, y, z;
|
|
||||||
|
|
||||||
public Device(String desc, String name, short address, boolean enabled, int x, int y, int z){
|
|
||||||
this.description = desc;
|
|
||||||
this.name = name;
|
|
||||||
this.address = address;
|
|
||||||
this.enabled = enabled;
|
|
||||||
this.x = x;
|
|
||||||
this.y = y;
|
|
||||||
this.z = z;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.bus;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
public final class BusProtocols {
|
|
||||||
private static final ArrayList<Class<? extends BusPacket>> protocols = new ArrayList();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a protocol to the list, if it doesn't exist yet.
|
|
||||||
*
|
|
||||||
* @param packetClass the class of the packet corresponding to the protocol we're adding.
|
|
||||||
* @return the id of the protocol we just added.
|
|
||||||
*/
|
|
||||||
public static final int addProtocol(Class<? extends BusPacket> packetClass){
|
|
||||||
if(!protocols.contains(packetClass)){
|
|
||||||
protocols.add(packetClass);
|
|
||||||
}
|
|
||||||
return protocols.indexOf(packetClass);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gives you the id of the protocol correspondig to a given packet class.
|
|
||||||
*
|
|
||||||
* @param packetClass the class of the packet for which we want to know the protocol ID.
|
|
||||||
* @return the ID of the protocol corresponding to the packet class.
|
|
||||||
*/
|
|
||||||
public static final int getProtocolID(Class<? extends BusPacket> packetClass){
|
|
||||||
return protocols.indexOf(packetClass);
|
|
||||||
}
|
|
||||||
|
|
||||||
private BusProtocols(){}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// A list of all the protocols implemented by StargateTech 2
|
|
||||||
public static final int PROTOCOL_LIP = addProtocol(BusPacketLIP.class);
|
|
||||||
public static final int PROTOCOL_NETSCAN = addProtocol(BusPacketNetScan.class);
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.bus;
|
|
||||||
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To be implemented by Tile Entities that wish
|
|
||||||
* to access the Abstract Bus.
|
|
||||||
*
|
|
||||||
* @author LordFokas
|
|
||||||
*/
|
|
||||||
public interface IBusDevice {
|
|
||||||
/**
|
|
||||||
* Returns the IBusInterfaces that exist on that
|
|
||||||
* side of the Tile Entity. It may be multiple
|
|
||||||
* values or null.
|
|
||||||
*
|
|
||||||
* @param side The side of the block that is being queried.
|
|
||||||
* @return This side's IBusInterface, if any.
|
|
||||||
*/
|
|
||||||
public IBusInterface[] getInterfaces(int side);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return This device's worldObj.
|
|
||||||
*/
|
|
||||||
public World getWorld();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return This device's X Coordinate.
|
|
||||||
*/
|
|
||||||
public int getXCoord();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return This device's Y Coordinate.
|
|
||||||
*/
|
|
||||||
public int getYCoord();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return This device's Z Coordinate.
|
|
||||||
*/
|
|
||||||
public int getZCoord();
|
|
||||||
}
|
|
@ -1,65 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.bus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This provides a level of abstraction over the IBusInterface.
|
|
||||||
* Implement to your own liking.
|
|
||||||
*
|
|
||||||
* @author LordFokas
|
|
||||||
*/
|
|
||||||
public interface IBusDriver {
|
|
||||||
/**
|
|
||||||
* Used to check if this device should receive a specific
|
|
||||||
* packet type from this sender. If true is returned,
|
|
||||||
* handlePacket() is called afterwards.
|
|
||||||
*
|
|
||||||
* @param sender The Bus address of the packet's sender.
|
|
||||||
* @param protocolID The unique ID of this packet type.
|
|
||||||
* @param hasLIP whether the packet can be converted to the LIP format or not.
|
|
||||||
* @return Whether the device will accept this packet or not.
|
|
||||||
*/
|
|
||||||
public boolean canHandlePacket(short sender, int protocolID, boolean hasLIP);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called by the network to have this device handle a packet.
|
|
||||||
*
|
|
||||||
* @param packet The packet to be handled.
|
|
||||||
*/
|
|
||||||
public void handlePacket(BusPacket packet);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to make the IBusDriver give all packets in its send
|
|
||||||
* queue, one by one, to the IBusInterface so that it can
|
|
||||||
* send them accross the network.
|
|
||||||
*
|
|
||||||
* @return The next BusPacket in the queue, if any, null otherise.
|
|
||||||
*/
|
|
||||||
public BusPacket getNextPacketToSend();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called by the hardware representation (IBusInterface)
|
|
||||||
* to check if it's active or not.
|
|
||||||
* Inactive interfaces cannot send or receive packets.
|
|
||||||
*
|
|
||||||
* @return Whether this interface is active or not.
|
|
||||||
*/
|
|
||||||
public boolean isInterfaceEnabled();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called by this Driver's Interface to check it's own address.
|
|
||||||
*
|
|
||||||
* @return The address of this IBusDriver's IBusInterface.
|
|
||||||
*/
|
|
||||||
public short getInterfaceAddress();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return this driver's short name.<br>
|
|
||||||
* Should be readable and indicate what kind of device it is.<br>
|
|
||||||
* <b>Example:</b> Shield Controller
|
|
||||||
*/
|
|
||||||
public String getShortName();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return a short description of what this device is.
|
|
||||||
*/
|
|
||||||
public String getDescription();
|
|
||||||
}
|
|
@ -1,35 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.bus;
|
|
||||||
|
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <b>DO NOT IMPLEMENT THIS INTERFACE!</b> To get an instance use
|
|
||||||
* <i>StargateTechAPI.api().getFactory().getIBusInterface()</i>;
|
|
||||||
*
|
|
||||||
* @author LordFokas
|
|
||||||
*/
|
|
||||||
public interface IBusInterface {
|
|
||||||
/**
|
|
||||||
* Makes the IBusInterface call its IBusDriver's
|
|
||||||
* getNextPacketToSend() method repeatedly until it returns
|
|
||||||
* null. Every packet returned by that method will be sent
|
|
||||||
* across the network.
|
|
||||||
*/
|
|
||||||
public void sendAllPackets();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Serialize this object.
|
|
||||||
*
|
|
||||||
* @param nbt The tag compound where this object's data is.
|
|
||||||
* @param tag The name of the tag under which this object's data is stored.
|
|
||||||
*/
|
|
||||||
public void writeToNBT(NBTTagCompound nbt, String tag);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unserialize this object.
|
|
||||||
*
|
|
||||||
* @param nbt The tag compound where this object's data is.
|
|
||||||
* @param tag The name of the tag under which this object's data is stored.
|
|
||||||
*/
|
|
||||||
public void readFromNBT(NBTTagCompound nbt, String tag);
|
|
||||||
}
|
|
@ -1,82 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.stargate;
|
|
||||||
|
|
||||||
public class Address {
|
|
||||||
private Symbol[] symbols;
|
|
||||||
|
|
||||||
public static Address create(Symbol[] symbols){
|
|
||||||
try{
|
|
||||||
boolean used[] = new boolean[40];
|
|
||||||
if(symbols.length < 7) throw new Exception("Address too short: " + symbols.length);
|
|
||||||
if(symbols.length > 9) throw new Exception("Address too long: " + symbols.length);
|
|
||||||
for(int i = 0; i < used.length; i++){
|
|
||||||
used[i] = (i == 0);
|
|
||||||
}
|
|
||||||
for(Symbol symbol : symbols){
|
|
||||||
if(symbol == null || symbol == Symbol.VOID){
|
|
||||||
throw new Exception("Invalid Symbol.");
|
|
||||||
}
|
|
||||||
if(used[symbol.ordinal()]){
|
|
||||||
throw new Exception("Repeated Symbol.");
|
|
||||||
}
|
|
||||||
used[symbol.ordinal()] = true;
|
|
||||||
}
|
|
||||||
return new Address(symbols);
|
|
||||||
}catch(Exception e){
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Address(Symbol[] symbols){
|
|
||||||
this.symbols = symbols;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int length(){
|
|
||||||
return symbols.length;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Symbol getSymbol(int symbol){
|
|
||||||
if(symbol >= 0 && symbol < length()){
|
|
||||||
return symbols[symbol];
|
|
||||||
}else{
|
|
||||||
return Symbol.VOID;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString(){
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
sb.append(getSymbol(0).toString());
|
|
||||||
sb.append(getSymbol(1).toString().toLowerCase());
|
|
||||||
sb.append(getSymbol(2).toString().toLowerCase());
|
|
||||||
sb.append(" ");
|
|
||||||
sb.append(getSymbol(3).toString());
|
|
||||||
sb.append(getSymbol(4).toString().toLowerCase());
|
|
||||||
sb.append(getSymbol(5).toString().toLowerCase());
|
|
||||||
sb.append(" ");
|
|
||||||
sb.append(getSymbol(6).toString());
|
|
||||||
sb.append(getSymbol(7).toString().toLowerCase());
|
|
||||||
sb.append(getSymbol(8).toString().toLowerCase());
|
|
||||||
return sb.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o){
|
|
||||||
if(o instanceof Address){
|
|
||||||
Address a = (Address) o;
|
|
||||||
if(a.length() == length()){
|
|
||||||
for(int i = 0; i < length(); i++){
|
|
||||||
if(symbols[i] != a.symbols[i]){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode(){
|
|
||||||
return length();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.stargate;
|
|
||||||
|
|
||||||
public enum DialError{
|
|
||||||
// Dialing Errors
|
|
||||||
SOURCE_ADDRESS_NOT_FOUND,
|
|
||||||
TARGET_ADDRESS_NOT_FOUND,
|
|
||||||
SOURCE_WORLD_NOT_FOUND,
|
|
||||||
TARGET_WORLD_NOT_FOUND,
|
|
||||||
CANNOT_DIAL_SAME_WORLD,
|
|
||||||
FAILED_CHUNKLOADING_SOURCE,
|
|
||||||
FAILED_CHUNKLOADING_TARGET,
|
|
||||||
SOURCE_GATE_NOT_FOUND,
|
|
||||||
TARGET_GATE_NOT_FOUND,
|
|
||||||
NOT_ENOUGH_POWER,
|
|
||||||
TARGET_GATE_BUSY,
|
|
||||||
SOURCE_GATE_BUSY,
|
|
||||||
|
|
||||||
// Logic
|
|
||||||
DIALING_EVENT_CANCELED,
|
|
||||||
SUCCESSFULLY_DIALED,
|
|
||||||
UNKNOWN_LOGIC_ERROR;
|
|
||||||
}
|
|
@ -1,37 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.stargate;
|
|
||||||
|
|
||||||
import cpw.mods.fml.common.eventhandler.Cancelable;
|
|
||||||
|
|
||||||
public abstract class DialEvent extends StargateEvent {
|
|
||||||
public final Address sourceAddress;
|
|
||||||
public final Address destAddress;
|
|
||||||
public final int duration;
|
|
||||||
|
|
||||||
public DialEvent(Address src, Address dst, int dur) {
|
|
||||||
sourceAddress = src;
|
|
||||||
destAddress = dst;
|
|
||||||
duration = dur;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Cancelable
|
|
||||||
public static class Pre extends DialEvent {
|
|
||||||
public Pre(Address src, Address dst, int dur) {
|
|
||||||
super(src, dst, dur);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class Success extends DialEvent {
|
|
||||||
public Success(Address src, Address dst, int dur) {
|
|
||||||
super(src, dst, dur);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class Error extends DialEvent {
|
|
||||||
public final DialError error;
|
|
||||||
|
|
||||||
public Error(Address src, Address dst, DialError error) {
|
|
||||||
super(src, dst, -1);
|
|
||||||
this.error = error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.stargate;
|
|
||||||
|
|
||||||
|
|
||||||
public interface IDynamicWorldLoader {
|
|
||||||
/**
|
|
||||||
* @param address The address we're creating a new world for.
|
|
||||||
* @return Whether or not this loader will create a new world for this non-existing address.
|
|
||||||
*/
|
|
||||||
public boolean willCreateWorldFor(Address address);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Actually create a new world for this address.
|
|
||||||
* <b>This world must not exist already!</b>
|
|
||||||
* Do not forget to use the seedingShip to place a stargate on this world, or the pending
|
|
||||||
* wormhole will not connect.
|
|
||||||
*
|
|
||||||
* @param address The address we're creating a new world for.
|
|
||||||
* @param seedingShip The IStargatePlacer we'll use to place our stargate.
|
|
||||||
*/
|
|
||||||
public void loadWorldFor(Address address, IStargatePlacer seedingShip);
|
|
||||||
}
|
|
@ -1,80 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.stargate;
|
|
||||||
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
public interface IStargateNetwork {
|
|
||||||
/**
|
|
||||||
* @return Whether the Stargate Network is loaded (working) or not.
|
|
||||||
*/
|
|
||||||
public boolean isLoaded();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param address The string representation of an address. (e.g. "Proclarush Taonas At")
|
|
||||||
* @return an address object if the string is a valid address, null otherwise.
|
|
||||||
*/
|
|
||||||
public Address parseAddress(String address);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if a given address exists in the network or not.
|
|
||||||
* (i.e., if this address maps to a physical Stargate)
|
|
||||||
*
|
|
||||||
* @param address the address we want to check.
|
|
||||||
* @return whether the address exists or not.
|
|
||||||
*/
|
|
||||||
public boolean addressExists(Address address);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the address of the Stargate in a specific location if it exists or null otherwise.
|
|
||||||
*
|
|
||||||
* @param world The world the target Stargate is in.
|
|
||||||
* @param x The target Stargate's X coordinate.
|
|
||||||
* @param y The target Stargate's Y coordinate.
|
|
||||||
* @param z The target Stargate's Z coordinate.
|
|
||||||
* @return The Stargate's address, or null if the location doesn't contain a Stargate.
|
|
||||||
*/
|
|
||||||
public Address getAddressOf(World world, int x, int y, int z);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the address of the Stargate nearest to the specified location, or null if there is no gate within the specified radius
|
|
||||||
* @param world The world the target Stargate is in.
|
|
||||||
* @param x The target Stargate's X coordinate.
|
|
||||||
* @param y The target Stargate's Y coordinate.
|
|
||||||
* @param z The target Stargate's Z coordinate.
|
|
||||||
* @param radius The maximum radius to look for a Stargate. Use -1 to search the whole world.
|
|
||||||
* @return The Stargate's address, or null if no Stargate was found
|
|
||||||
*/
|
|
||||||
public Address findNearestStargate(World world, int x, int y, int z, int radius);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register a new IDynamicWorldLoader.
|
|
||||||
*
|
|
||||||
* @param dwl The IDynamicWorldLoader to register.
|
|
||||||
*/
|
|
||||||
public void registerDynamicWorldLoader(IDynamicWorldLoader dwl);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unregister a known IDynamicWorldLoader.
|
|
||||||
*
|
|
||||||
* @param dwl The IDynamicWorldLoader to unregister.
|
|
||||||
*/
|
|
||||||
public void unregisterDynamicWorldLoader(IDynamicWorldLoader dwl);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reserve an address prefix for your DWL.
|
|
||||||
* If a Stargate attempts to dial a world with that prefix,
|
|
||||||
* your DWL is given exclusivity in generating that world.
|
|
||||||
*
|
|
||||||
* @param dwl Your IDynamicWorldLoader
|
|
||||||
* @param prefix And array of exactly 3 non-null and non-void symbols representing a dimension.
|
|
||||||
* @return whether or not the prefix has been successfully reserved.
|
|
||||||
*/
|
|
||||||
public boolean reserveDimensionPrefix(IDynamicWorldLoader dwl, Symbol[] prefix);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if the specified prefix is associated with a dimension or reserved by a {@link IDynamicWorldLoader}.
|
|
||||||
*
|
|
||||||
* @param prefix An array of exactly 3 non-null and non-void symbols representing a dimension.
|
|
||||||
* @return Whether or not the prefix is either used or reserved.
|
|
||||||
*/
|
|
||||||
public boolean prefixExists(Symbol[] prefix);
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.stargate;
|
|
||||||
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
public interface IStargatePlacer {
|
|
||||||
/**
|
|
||||||
* Attempts to place a Stargate in the givel location.
|
|
||||||
*
|
|
||||||
* @param w Our world.
|
|
||||||
* @param x The stargate base's (bottom center block) X coord.
|
|
||||||
* @param y The stargate base's (bottom center block) Y coord.
|
|
||||||
* @param z The stargate base's (bottom center block) Z coord.
|
|
||||||
* @param facing The direction the stargate should be facing. Should be a value in [0 - 3].
|
|
||||||
* @return Whether the Stargate was placed or not.
|
|
||||||
*/
|
|
||||||
public boolean placeStargate(World w, int x, int y, int z, int facing);
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.stargate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents a Stargate ring.
|
|
||||||
* Stargate "base" blocks contain the ring, so they implement this as well.
|
|
||||||
*
|
|
||||||
* All you can get from the Stargate ring is the address.
|
|
||||||
*
|
|
||||||
* @author LordFokas
|
|
||||||
*/
|
|
||||||
public interface ITileStargate {
|
|
||||||
/**
|
|
||||||
* @return This Stargate's address. null values are possible on the client side.
|
|
||||||
*/
|
|
||||||
public Address getAddress();
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.stargate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents a Stargate base block (the block that supports the stargate).
|
|
||||||
*
|
|
||||||
* It contains all the important logic in the Stargate,
|
|
||||||
* like dialing, Iris control and power usage.
|
|
||||||
*
|
|
||||||
* Because the ring is inside the block that supports it, it is possible to
|
|
||||||
* call the same methods you can call on a ring.
|
|
||||||
*
|
|
||||||
* @see ITileStargate
|
|
||||||
*
|
|
||||||
* @author LordFokas
|
|
||||||
*/
|
|
||||||
public interface ITileStargateBase extends ITileStargate{
|
|
||||||
public enum DialMethod{
|
|
||||||
MANUAL, // Dialing Computers
|
|
||||||
AUTO // DHDs
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to try making the Stargate dial an address.
|
|
||||||
*
|
|
||||||
* @param address The address this Stargate should dial.
|
|
||||||
* @param timeout How many seconds the connection will last. (1 - 38; default: 38);
|
|
||||||
* @return whether the dialing sequence started (true) or failed (false).
|
|
||||||
*/
|
|
||||||
public DialError dial(Address address, int timeout, DialMethod method);
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.stargate;
|
|
||||||
|
|
||||||
import cpw.mods.fml.common.eventhandler.Cancelable;
|
|
||||||
import cpw.mods.fml.common.eventhandler.Event;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
public abstract class StargateEvent extends Event {
|
|
||||||
|
|
||||||
private static abstract class PhysicalGateEvent extends StargateEvent {
|
|
||||||
public final Address address;
|
|
||||||
public final World world;
|
|
||||||
public final int xCoord;
|
|
||||||
public final int yCoord;
|
|
||||||
public final int zCoord;
|
|
||||||
|
|
||||||
public PhysicalGateEvent(Address addr, World world, int x, int y, int z) {
|
|
||||||
this.xCoord = x;
|
|
||||||
this.yCoord = y;
|
|
||||||
this.zCoord = z;
|
|
||||||
this.world = world;
|
|
||||||
this.address = addr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Cancelable
|
|
||||||
public static class StargateWrenched extends PhysicalGateEvent {
|
|
||||||
public StargateWrenched(Address addr, World world, int x, int y, int z) {
|
|
||||||
super(addr, world, x, y, z);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class StargateDestroyed extends PhysicalGateEvent {
|
|
||||||
public StargateDestroyed(Address addr, World world, int x, int y, int z) {
|
|
||||||
super(addr, world, x, y, z);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,63 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.stargate;
|
|
||||||
|
|
||||||
public enum Symbol {
|
|
||||||
VOID(""),
|
|
||||||
AT ("At"), // 1
|
|
||||||
AL ("Al"), // 2
|
|
||||||
CLA ("Cla"), // 3
|
|
||||||
UR ("Ur"), // 4
|
|
||||||
ON ("On"), // 5
|
|
||||||
DEH ("Deh"), // 6
|
|
||||||
EC ("Ec"), // 7
|
|
||||||
MIG ("Mig"), // 8
|
|
||||||
AM ("Am"), // 9
|
|
||||||
RUM ("Rum"), // 10
|
|
||||||
AR ("Ar"), // 11
|
|
||||||
VA ("Va"), // 12
|
|
||||||
COR ("Cor"), // 13
|
|
||||||
PRA ("Pra"), // 14
|
|
||||||
OM ("Om"), // 15
|
|
||||||
ET ("Et"), // 16
|
|
||||||
AS ("As"), // 17
|
|
||||||
US ("Us"), // 18
|
|
||||||
GON ("Gon"), // 19
|
|
||||||
ORM ("Orm"), // 20
|
|
||||||
EM ("Em"), // 21
|
|
||||||
AC ("Ac"), // 22
|
|
||||||
OTH ("Oth"), // 23
|
|
||||||
LOS ("Los"), // 24
|
|
||||||
LAN ("Lan"), // 25
|
|
||||||
EST ("Est"), // 26
|
|
||||||
CRO ("Cro"), // 27
|
|
||||||
SIL ("Sil"), // 28
|
|
||||||
TA ("Ta"), // 29
|
|
||||||
BREI("Brei"), // 30
|
|
||||||
RUSH("Rush"), // 31
|
|
||||||
ERP ("Erp"), // 32
|
|
||||||
SET ("Set"), // 33
|
|
||||||
ULF ("Ulf"), // 34
|
|
||||||
PRO ("Pro"), // 35
|
|
||||||
SAL ("Sal"), // 36
|
|
||||||
TIS ("Tis"), // 37
|
|
||||||
MAC ("Mac"), // 38
|
|
||||||
IRT ("Irt"); // 39
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
private Symbol(String name){
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Symbol get(int s){
|
|
||||||
if(s >= 0 && s <= 39){
|
|
||||||
return values()[s];
|
|
||||||
}else{
|
|
||||||
return VOID;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString(){
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,28 +0,0 @@
|
|||||||
package lordfokas.stargatetech2.api.world;
|
|
||||||
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import cpw.mods.fml.common.eventhandler.Event;
|
|
||||||
import cpw.mods.fml.common.eventhandler.Event.HasResult;
|
|
||||||
|
|
||||||
@HasResult
|
|
||||||
public class EventWorldGen extends Event {
|
|
||||||
|
|
||||||
public final World world;
|
|
||||||
public final int chunkX;
|
|
||||||
public final int chunkZ;
|
|
||||||
public final GenType type;
|
|
||||||
|
|
||||||
public EventWorldGen(World world, int cX, int cZ, GenType type) {
|
|
||||||
this.world = world;
|
|
||||||
this.chunkX = cX;
|
|
||||||
this.chunkZ = cZ;
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static enum GenType {
|
|
||||||
STARGATE,
|
|
||||||
LOOT_POD,
|
|
||||||
VEIN_NAQUADAH;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
Subproject commit 774135f441fd56f295d82069b251ee7e1e084869
|
|
@ -21,20 +21,6 @@ class RobotAfterimage extends SimpleBlock with traits.SpecialBlock {
|
|||||||
setCreativeTab(null)
|
setCreativeTab(null)
|
||||||
NEI.hide(this)
|
NEI.hide(this)
|
||||||
|
|
||||||
// TODO remove
|
|
||||||
// private var icon: IIcon = _
|
|
||||||
//
|
|
||||||
// // ----------------------------------------------------------------------- //
|
|
||||||
//
|
|
||||||
// @SideOnly(Side.CLIENT)
|
|
||||||
// override def getIcon(side: EnumFacing, metadata: Int) = icon
|
|
||||||
//
|
|
||||||
// @SideOnly(Side.CLIENT)
|
|
||||||
// override def registerBlockIcons(iconRegister: IIconRegister) {
|
|
||||||
// super.registerBlockIcons(iconRegister)
|
|
||||||
// icon = iconRegister.getAtlasSprite(Settings.resourceDomain + ":GenericTop")
|
|
||||||
// }
|
|
||||||
|
|
||||||
override def shouldSideBeRendered(world: IBlockAccess, pos: BlockPos, side: EnumFacing) = false
|
override def shouldSideBeRendered(world: IBlockAccess, pos: BlockPos, side: EnumFacing) = false
|
||||||
|
|
||||||
override def isBlockSolid(world: IBlockAccess, pos: BlockPos, side: EnumFacing) = false
|
override def isBlockSolid(world: IBlockAccess, pos: BlockPos, side: EnumFacing) = false
|
||||||
|
@ -39,18 +39,6 @@ class RobotProxy extends RedstoneAware with traits.SpecialBlock {
|
|||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
// TODO remove
|
|
||||||
// private var icon: IIcon = _
|
|
||||||
//
|
|
||||||
// @SideOnly(Side.CLIENT)
|
|
||||||
// override def registerBlockIcons(iconRegister: IIconRegister) {
|
|
||||||
// super.registerBlockIcons(iconRegister)
|
|
||||||
// icon = iconRegister.getAtlasSprite(Settings.resourceDomain + ":GenericTop")
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @SideOnly(Side.CLIENT)
|
|
||||||
// override def getIcon(side: EnumFacing, metadata: Int) = icon
|
|
||||||
|
|
||||||
override def shouldSideBeRendered(world: IBlockAccess, pos: BlockPos, side: EnumFacing) = false
|
override def shouldSideBeRendered(world: IBlockAccess, pos: BlockPos, side: EnumFacing) = false
|
||||||
|
|
||||||
override def isBlockSolid(world: IBlockAccess, pos: BlockPos, side: EnumFacing) = false
|
override def isBlockSolid(world: IBlockAccess, pos: BlockPos, side: EnumFacing) = false
|
||||||
|
@ -169,35 +169,5 @@ class Delegator extends Item {
|
|||||||
case _ => super.onUpdate(stack, world, player, slot, selected)
|
case _ => super.onUpdate(stack, world, player, slot, selected)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO remove
|
|
||||||
// @SideOnly(Side.CLIENT)
|
|
||||||
// override def getIcon(stack: ItemStack, pass: Int) =
|
|
||||||
// subItem(stack) match {
|
|
||||||
// case Some(subItem) => subItem.icon(stack, pass) match {
|
|
||||||
// case Some(icon) => icon
|
|
||||||
// case _ => super.getIcon(stack, pass)
|
|
||||||
// }
|
|
||||||
// case _ => super.getIcon(stack, pass)
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @SideOnly(Side.CLIENT)
|
|
||||||
// override def getIconIndex(stack: ItemStack) = getIcon(stack, 0)
|
|
||||||
//
|
|
||||||
// @SideOnly(Side.CLIENT)
|
|
||||||
// override def getIconFromDamage(damage: Int): IIcon =
|
|
||||||
// subItem(damage) match {
|
|
||||||
// case Some(subItem) => subItem.icon match {
|
|
||||||
// case Some(icon) => icon
|
|
||||||
// case _ => super.getIconFromDamage(damage)
|
|
||||||
// }
|
|
||||||
// case _ => super.getIconFromDamage(damage)
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @SideOnly(Side.CLIENT)
|
|
||||||
// override def registerIcons(iconRegister: IIconRegister) {
|
|
||||||
// super.getAtlasSprites(iconRegister)
|
|
||||||
// subItems.foreach(_.getAtlasSprites(iconRegister))
|
|
||||||
// }
|
|
||||||
|
|
||||||
override def toString = getUnlocalizedName
|
override def toString = getUnlocalizedName
|
||||||
}
|
}
|
||||||
|
@ -21,22 +21,4 @@ class FloppyDisk(val parent: Delegator) extends Delegate {
|
|||||||
}
|
}
|
||||||
super.tooltipLines(stack, player, tooltip, advanced)
|
super.tooltipLines(stack, player, tooltip, advanced)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO remove
|
|
||||||
// val icons = Array.fill[Icon](16)(null)
|
|
||||||
//
|
|
||||||
// @SideOnly(Side.CLIENT)
|
|
||||||
// override def icon(stack: ItemStack, pass: Int) =
|
|
||||||
// if (stack.hasTagCompound && stack.getTagCompound.hasKey(Settings.namespace + "color"))
|
|
||||||
// Some(icons(stack.getTagCompound.getInteger(Settings.namespace + "color") max 0 min 15))
|
|
||||||
// else
|
|
||||||
// Some(icons(8))
|
|
||||||
//
|
|
||||||
// override def registerIcons(iconRegister: IconRegister) {
|
|
||||||
// val baseTextureName = Settings.resourceDomain + ":" + unlocalizedName + "_"
|
|
||||||
// Color.dyes.zipWithIndex.foreach {
|
|
||||||
// case (color, index) =>
|
|
||||||
// icons(index) = iconRegister.getAtlasSprite(baseTextureName + color)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
@ -24,9 +24,6 @@ import org.lwjgl.input
|
|||||||
class SimpleItem extends Item {
|
class SimpleItem extends Item {
|
||||||
setCreativeTab(CreativeTab)
|
setCreativeTab(CreativeTab)
|
||||||
|
|
||||||
// TODO remove
|
|
||||||
// iconString = Settings.resourceDomain + ":" + getClass.getSimpleName
|
|
||||||
|
|
||||||
def createItemStack(amount: Int = 1) = new ItemStack(this, amount)
|
def createItemStack(amount: Int = 1) = new ItemStack(this, amount)
|
||||||
|
|
||||||
override def isBookEnchantable(stack: ItemStack, book: ItemStack) = false
|
override def isBookEnchantable(stack: ItemStack, book: ItemStack) = false
|
||||||
|
@ -47,25 +47,6 @@ class Tablet(val parent: Delegator) extends Delegate {
|
|||||||
|
|
||||||
override def maxStackSize = 1
|
override def maxStackSize = 1
|
||||||
|
|
||||||
// TODO remove
|
|
||||||
// private var iconOn: Option[Icon] = None
|
|
||||||
// private var iconOff: Option[Icon] = None
|
|
||||||
//
|
|
||||||
// @SideOnly(Side.CLIENT)
|
|
||||||
// override def icon(stack: ItemStack, pass: Int) = {
|
|
||||||
// if (stack.hasTagCompound) {
|
|
||||||
// val data = new ItemUtils.TabletData(stack)
|
|
||||||
// if (data.isRunning) iconOn else iconOff
|
|
||||||
// } else super.icon(stack, pass)
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// override def registerIcons(iconRegister: IconRegister) = {
|
|
||||||
// super.getAtlasSprites(iconRegister)
|
|
||||||
//
|
|
||||||
// iconOn = Option(iconRegister.getAtlasSprite(Settings.resourceDomain + ":TabletOn"))
|
|
||||||
// iconOff = Option(iconRegister.getAtlasSprite(Settings.resourceDomain + ":TabletOff"))
|
|
||||||
// }
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
override def isDamageable = true
|
override def isDamageable = true
|
||||||
|
@ -5,8 +5,8 @@ import codechicken.nei.api.API
|
|||||||
import codechicken.nei.api.IConfigureNEI
|
import codechicken.nei.api.IConfigureNEI
|
||||||
import codechicken.nei.config.OptionToggleButton
|
import codechicken.nei.config.OptionToggleButton
|
||||||
import codechicken.nei.guihook.GuiContainerManager
|
import codechicken.nei.guihook.GuiContainerManager
|
||||||
import cpw.mods.fml.relauncher.Side
|
import net.minecraftforge.fml.relauncher.Side
|
||||||
import cpw.mods.fml.relauncher.SideOnly
|
import net.minecraftforge.fml.relauncher.SideOnly
|
||||||
import li.cil.oc.integration.util.NEI
|
import li.cil.oc.integration.util.NEI
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
|
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
package li.cil.oc.integration.util
|
package li.cil.oc.integration.util
|
||||||
|
|
||||||
/* TODO NEI
|
|
||||||
import codechicken.nei.LayoutManager
|
import codechicken.nei.LayoutManager
|
||||||
*/
|
|
||||||
|
|
||||||
import li.cil.oc.integration.Mods
|
import li.cil.oc.integration.Mods
|
||||||
import net.minecraft.block.Block
|
import net.minecraft.block.Block
|
||||||
import net.minecraft.client.gui.inventory.GuiContainer
|
import net.minecraft.client.gui.inventory.GuiContainer
|
||||||
@ -14,26 +11,20 @@ import scala.collection.mutable
|
|||||||
object NEI {
|
object NEI {
|
||||||
val hiddenBlocks = mutable.Set.empty[Block]
|
val hiddenBlocks = mutable.Set.empty[Block]
|
||||||
|
|
||||||
def isInputFocused = false
|
def isInputFocused =
|
||||||
|
|
||||||
/* TODO NEI
|
|
||||||
Mods.NotEnoughItems.isAvailable && (try isInputFocused0 catch {
|
Mods.NotEnoughItems.isAvailable && (try isInputFocused0 catch {
|
||||||
case _: Throwable => false
|
case _: Throwable => false
|
||||||
})
|
})
|
||||||
|
|
||||||
private def isInputFocused0 = LayoutManager.getInputFocused != null
|
private def isInputFocused0 = LayoutManager.getInputFocused != null
|
||||||
*/
|
|
||||||
|
|
||||||
def hoveredStack(container: GuiContainer, mouseX: Int, mouseY: Int): Option[ItemStack] = None
|
def hoveredStack(container: GuiContainer, mouseX: Int, mouseY: Int): Option[ItemStack] =
|
||||||
|
|
||||||
/* TODO NEI
|
|
||||||
if (Mods.NotEnoughItems.isAvailable) try Option(hoveredStack0(container, mouseX, mouseY)) catch {
|
if (Mods.NotEnoughItems.isAvailable) try Option(hoveredStack0(container, mouseX, mouseY)) catch {
|
||||||
case t: Throwable => None
|
case t: Throwable => None
|
||||||
}
|
}
|
||||||
else None
|
else None
|
||||||
|
|
||||||
private def hoveredStack0(container: GuiContainer, mouseX: Int, mouseY: Int) = LayoutManager.instance.getStackUnderMouse(container, mouseX, mouseY)
|
private def hoveredStack0(container: GuiContainer, mouseX: Int, mouseY: Int) = LayoutManager.instance.getStackUnderMouse(container, mouseX, mouseY)
|
||||||
*/
|
|
||||||
|
|
||||||
def hide(block: Block): Unit = if (Mods.NotEnoughItems.isAvailable) hiddenBlocks += block
|
def hide(block: Block): Unit = if (Mods.NotEnoughItems.isAvailable) hiddenBlocks += block
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user