mirror of
https://github.com/simon987/Much-Assembly-Required.git
synced 2025-12-13 22:59:02 +00:00
I broke everything pt. 1: Moved helditem into CubotInventory, added debug commands for CubotInventory, Added vault complete GameEvent, moved CPU to Cubot, renamed CpuHardware to HardwareModule, moved HardwareModule to Cubot & added HardwareHost interface, removed getParent() in ControllableUnit, moved items to the Item class, started moving tiles to Tile classes, renamed Programmable to MessageReceiver
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package net.simon987.npcplugin;
|
||||
|
||||
import net.simon987.npcplugin.event.CpuInitialisationListener;
|
||||
import net.simon987.npcplugin.event.VaultCompleteListener;
|
||||
import net.simon987.npcplugin.event.VaultWorldUpdateListener;
|
||||
import net.simon987.npcplugin.event.WorldCreationListener;
|
||||
import net.simon987.server.ServerConfiguration;
|
||||
@@ -23,6 +24,7 @@ public class NpcPlugin extends ServerPlugin {
|
||||
listeners.add(new WorldCreationListener(configuration.getInt("factory_spawn_rate")));
|
||||
listeners.add(new CpuInitialisationListener());
|
||||
listeners.add(new VaultWorldUpdateListener(configuration));
|
||||
listeners.add(new VaultCompleteListener());
|
||||
|
||||
registry.registerGameObject(HarvesterNPC.class);
|
||||
registry.registerGameObject(Factory.class);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.simon987.npcplugin;
|
||||
|
||||
import net.simon987.server.GameServer;
|
||||
import net.simon987.server.assembly.CpuHardware;
|
||||
import net.simon987.server.assembly.HardwareModule;
|
||||
import net.simon987.server.assembly.Status;
|
||||
import net.simon987.server.assembly.Util;
|
||||
import net.simon987.server.game.objects.Action;
|
||||
@@ -10,7 +10,7 @@ import org.bson.Document;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class RadioReceiverHardware extends CpuHardware {
|
||||
public class RadioReceiverHardware extends HardwareModule {
|
||||
|
||||
public static final char HWID = 0xC; //12
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
package net.simon987.npcplugin;
|
||||
|
||||
import net.simon987.server.GameServer;
|
||||
import net.simon987.server.game.objects.Programmable;
|
||||
import net.simon987.server.game.objects.MessageReceiver;
|
||||
import net.simon987.server.game.objects.Structure;
|
||||
import net.simon987.server.game.objects.Updatable;
|
||||
import org.bson.Document;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class RadioTower extends Structure implements Programmable, Updatable {
|
||||
public class RadioTower extends Structure implements MessageReceiver, Updatable {
|
||||
|
||||
private static final int MAP_INFO = 0x1000;
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.bson.Document;
|
||||
import java.util.Arrays;
|
||||
|
||||
|
||||
public class VaultDoor extends Structure implements Programmable, Enterable, Updatable {
|
||||
public class VaultDoor extends Structure implements MessageReceiver, Enterable, Updatable {
|
||||
|
||||
private static final int MAP_INFO = 0x0800;
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
package net.simon987.npcplugin;
|
||||
|
||||
import net.simon987.server.game.objects.ControllableUnit;
|
||||
import net.simon987.server.game.objects.GameObject;
|
||||
import net.simon987.server.game.world.Location;
|
||||
import net.simon987.server.logging.LogManager;
|
||||
import org.bson.Document;
|
||||
|
||||
/**
|
||||
@@ -31,12 +29,8 @@ public class VaultExitPortal extends Portal {
|
||||
@Override
|
||||
public boolean enter(GameObject object) {
|
||||
|
||||
if (object instanceof ControllableUnit) {
|
||||
LogManager.LOGGER.info(((ControllableUnit) object).getParent().getUsername() + " Completed vault " +
|
||||
object.getWorld().getDimension());
|
||||
|
||||
((ControllableUnit) object).getParent().getStats().addToStringSet("completedVaults", getWorld().getDimension());
|
||||
}
|
||||
//TODO: Trigger vault complete event instead
|
||||
|
||||
return super.enter(object);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import net.simon987.server.assembly.CPU;
|
||||
import net.simon987.server.event.CpuInitialisationEvent;
|
||||
import net.simon987.server.event.GameEvent;
|
||||
import net.simon987.server.event.GameEventListener;
|
||||
import net.simon987.server.user.User;
|
||||
import net.simon987.server.game.objects.ControllableUnit;
|
||||
|
||||
public class CpuInitialisationListener implements GameEventListener {
|
||||
@Override
|
||||
@@ -17,11 +17,12 @@ public class CpuInitialisationListener implements GameEventListener {
|
||||
@Override
|
||||
public void handle(GameEvent event) {
|
||||
CPU cpu = (CPU) event.getSource();
|
||||
User user = ((CpuInitialisationEvent) event).getUser();
|
||||
|
||||
RadioReceiverHardware radioHw = new RadioReceiverHardware(user.getControlledUnit());
|
||||
ControllableUnit controllableUnit = ((CpuInitialisationEvent) event).getUnit();
|
||||
|
||||
RadioReceiverHardware radioHw = new RadioReceiverHardware(controllableUnit);
|
||||
radioHw.setCpu(cpu);
|
||||
|
||||
cpu.attachHardware(radioHw, RadioReceiverHardware.DEFAULT_ADDRESS);
|
||||
cubot.attachHardware(radioHw, RadioReceiverHardware.DEFAULT_ADDRESS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package net.simon987.npcplugin.event;
|
||||
|
||||
import net.simon987.npcplugin.VaultExitPortal;
|
||||
import net.simon987.server.event.GameEvent;
|
||||
import net.simon987.server.game.objects.GameObject;
|
||||
|
||||
public class VaultCompleteEvent extends GameEvent {
|
||||
|
||||
private VaultExitPortal portal;
|
||||
|
||||
public VaultCompleteEvent(GameObject object, VaultExitPortal portal) {
|
||||
|
||||
//TODO: Add completion time?
|
||||
setSource(object);
|
||||
this.portal = portal;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameObject getSource() {
|
||||
return (GameObject) super.getSource();
|
||||
}
|
||||
|
||||
public VaultExitPortal getPortal() {
|
||||
return portal;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package net.simon987.npcplugin.event;
|
||||
|
||||
import net.simon987.server.event.GameEvent;
|
||||
import net.simon987.server.event.GameEventListener;
|
||||
import net.simon987.server.game.objects.ControllableUnit;
|
||||
import net.simon987.server.game.objects.GameObject;
|
||||
import net.simon987.server.logging.LogManager;
|
||||
|
||||
public class VaultCompleteListener implements GameEventListener {
|
||||
@Override
|
||||
public Class getListenedEventType() {
|
||||
return VaultCompleteEvent.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(GameEvent event) {
|
||||
VaultCompleteEvent vaultCompleteEvent = (VaultCompleteEvent) event;
|
||||
GameObject object = vaultCompleteEvent.getSource();
|
||||
if (object instanceof ControllableUnit) {
|
||||
LogManager.LOGGER.info(((ControllableUnit) object).getParent().getUsername() + " Completed vault " +
|
||||
object.getWorld().getDimension());
|
||||
|
||||
((ControllableUnit) object).getParent().getStats().addToStringSet("completedVaults",
|
||||
vaultCompleteEvent.getPortal().getWorld().getDimension());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user