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:
Simon
2018-05-31 22:13:07 -04:00
parent ee9eeeef55
commit a7bdbd2513
60 changed files with 858 additions and 295 deletions

View File

@@ -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);

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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);
}
}

View File

@@ -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;
}
}

View File

@@ -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());
}
}
}