package pneumaticCraft.api.drone;
import net.minecraft.item.ItemStack;
import net.minecraft.world.ChunkPosition;
import cpw.mods.fml.common.eventhandler.Event;
/**
* Fired when a Drone is trying to get a special coordinate, by accessing a variable with '$' prefix.
* These event are posted on the MinecraftForge.EVENT_BUS.
*/
public abstract class SpecialVariableRetrievalEvent extends Event{
/**
* The special variable name, with the '$' stripped away.
*/
public final String specialVarName;
/**
* The returning coordinate
*/
public SpecialVariableRetrievalEvent(String specialVarName){
this.specialVarName = specialVarName;
}
public static abstract class CoordinateVariable extends SpecialVariableRetrievalEvent{
public ChunkPosition coordinate;
public CoordinateVariable(String specialVarName){
super(specialVarName);
}
public static class Drone extends CoordinateVariable{
public final IDrone drone;
public Drone(IDrone drone, String specialVarName){
super(specialVarName);
this.drone = drone;
}
}
}
public static abstract class ItemVariable extends SpecialVariableRetrievalEvent{
public ItemStack item;
public ItemVariable(String specialVarName){
super(specialVarName);
}
public static class Drone extends ItemVariable{
public final IDrone drone;
public Drone(IDrone drone, String specialVarName){
super(specialVarName);
this.drone = drone;
}
}
}
}