1
0
mirror of https://github.com/simon987/Much-Assembly-Required.git synced 2025-04-22 12:06:42 +00:00

Remove NpcPlugin class

This commit is contained in:
simon987 2020-07-29 18:58:34 -04:00
parent 21a391e077
commit cc5627902e
9 changed files with 19 additions and 32 deletions

@ -63,7 +63,7 @@ public class Factory extends Structure implements Updatable, MessageReceiver {
@Override
public void update() {
Settlement settlement = NpcPlugin.settlementMap.get(getWorld().getId());
Settlement settlement = Settlement.MAP.get(getWorld().getId());
if (settlement == null) {
//Only happens when server is killed during save function
@ -133,7 +133,7 @@ public class Factory extends Structure implements Updatable, MessageReceiver {
public boolean sendMessage(char[] message) {
if (locked) {
Settlement settlement = NpcPlugin.settlementMap.get(getWorld().getId());
Settlement settlement = Settlement.MAP.get(getWorld().getId());
if (Arrays.equals(settlement.getPassword(), message)) {
this.locked = false;

@ -20,6 +20,8 @@ import java.util.Map;
public class HackedNPC extends NonPlayerCharacter implements ControllableUnit {
public static Document DEFAULT_HACKED_NPC;
private static final int MEM_SIZE = GameServer.INSTANCE.getConfig().getInt("hacked_npc_mem_size");
private static final boolean DIE_ON_NO_ENERGY = GameServer.INSTANCE.getConfig().getInt("hacked_npc_die_on_no_energy") != 0;
@ -43,7 +45,7 @@ public class HackedNPC extends NonPlayerCharacter implements ControllableUnit {
cpu.setHardwareHost(this);
cpu.getMemory().write(cpu.getCodeSectionOffset(), program, 0, program.length);
for (Object serialisedHw : (List) NpcPlugin.DEFAULT_HACKED_NPC.get("hardware")) {
for (Object serialisedHw : (List) DEFAULT_HACKED_NPC.get("hardware")) {
HardwareModule hardware = GameServer.INSTANCE.getRegistry().deserializeHardware((Document) serialisedHw, this);
hardware.setCpu(cpu);
attachHardware(hardware, ((Document) serialisedHw).getInteger("address"));

@ -1,18 +0,0 @@
package net.simon987.mar.npc;
import net.simon987.mar.server.GameServer;
import org.bson.Document;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class NpcPlugin {
public static Map<String, Settlement> settlementMap = new ConcurrentHashMap<>();
public static Document DEFAULT_HACKED_NPC;
public void init(GameServer gameServer) {
}
}

@ -42,8 +42,8 @@ public class RadioReceiverHardware extends HardwareModule {
List<char[]> messages = new ArrayList<>(6);
for (String world : NpcPlugin.settlementMap.keySet()) {
RadioTower tower = NpcPlugin.settlementMap.get(world).getRadioTower();
for (String world : Settlement.MAP.keySet()) {
RadioTower tower = Settlement.MAP.get(world).getRadioTower();
if (tower != null && Util.manhattanDist(
tower.getWorld().getX(), tower.getWorld().getY(),

@ -11,6 +11,8 @@ import org.bson.types.ObjectId;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class Settlement implements MongoSerializable {
@ -20,6 +22,8 @@ public class Settlement implements MongoSerializable {
private final World world;
private final DifficultyLevel difficultyLevel;
public static Map<String, Settlement> MAP = new ConcurrentHashMap<>();
private final List<NonPlayerCharacter> npcs = new ArrayList<>();
private final char[] password;

@ -66,7 +66,7 @@ public class VaultDoor extends Structure implements MessageReceiver, Enterable,
@Override
public boolean sendMessage(char[] message) {
Settlement settlement = NpcPlugin.settlementMap.get(getWorld().getId());
Settlement settlement = Settlement.MAP.get(getWorld().getId());
System.out.println("message: " + new String(message));
System.out.println("password: " + new String(settlement.getPassword()));

@ -1,6 +1,6 @@
package net.simon987.mar.npc.event;
import net.simon987.mar.npc.NpcPlugin;
import net.simon987.mar.npc.Settlement;
import net.simon987.mar.server.GameServer;
import net.simon987.mar.server.event.BeforeSaveEvent;
import net.simon987.mar.server.event.GameEvent;
@ -17,8 +17,8 @@ public class BeforeSaveListener implements GameEventListener {
@Override
public void handle(GameEvent event) {
Document settlements = new Document();
for (String world : NpcPlugin.settlementMap.keySet()) {
settlements.put(world, NpcPlugin.settlementMap.get(world).mongoSerialise());
for (String world : Settlement.MAP.keySet()) {
settlements.put(world, Settlement.MAP.get(world).mongoSerialise());
}
GameServer.INSTANCE.getUniverse().store.put("settlement_map", settlements);

@ -1,6 +1,6 @@
package net.simon987.mar.npc.event;
import net.simon987.mar.npc.NpcPlugin;
import net.simon987.mar.npc.HackedNPC;
import net.simon987.mar.npc.Settlement;
import net.simon987.mar.server.GameServer;
import net.simon987.mar.server.event.GameEvent;
@ -28,14 +28,14 @@ public class LoadListener implements GameEventListener {
}
for (String world : settlements.keySet()) {
NpcPlugin.settlementMap.put(world, new Settlement((Document) settlements.get(world)));
Settlement.MAP.put(world, new Settlement((Document) settlements.get(world)));
}
try {
InputStream is = new FileInputStream("defaultHackedCubotHardware.json");
Scanner scanner = new Scanner(is).useDelimiter("\\A");
String json = scanner.next();
NpcPlugin.DEFAULT_HACKED_NPC = Document.parse(json);
HackedNPC.DEFAULT_HACKED_NPC = Document.parse(json);
} catch (FileNotFoundException e) {
e.printStackTrace();
}

@ -1,6 +1,5 @@
package net.simon987.mar.npc.event;
import net.simon987.mar.npc.NpcPlugin;
import net.simon987.mar.npc.Settlement;
import net.simon987.mar.server.event.GameEvent;
import net.simon987.mar.server.event.GameEventListener;
@ -38,7 +37,7 @@ public class WorldCreationListener implements GameEventListener {
try {
Settlement settlement = new Settlement(world);
NpcPlugin.settlementMap.put(world.getId(), settlement);
Settlement.MAP.put(world.getId(), settlement);
} catch (WorldGenerationException e) {
LogManager.LOGGER.fine(String.format("Exception during settlement generation: %s.",
e.getMessage()));