summaryrefslogtreecommitdiff
path: root/NET/worlds/network/ObjectMgr.java
blob: 31846c9690f39ba6034d715aed141170607cad99 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package NET.worlds.network;

import java.util.Enumeration;
import java.util.Hashtable;

class ObjectMgr {
   private Hashtable<String, NetworkObject> nFlongID = new Hashtable<String, NetworkObject>();
   private Hashtable<Integer, String> lFshortID = new Hashtable<Integer, String>();
   private Galaxy _galaxy;

   ObjectMgr(Galaxy galaxy) {
      this._galaxy = galaxy;
   }

   void regShortID(int shortID, String longID) {
      this.lFshortID.put(new Integer(shortID), longID);
   }

   void regObject(String longID, NetworkObject obj) {
      this.nFlongID.put(longID, obj);
   }

   void regObject(ObjID objID, NetworkObject obj) {
      String longID = this.getLongID(objID);
      this.nFlongID.put(longID, obj);
   }

   NetworkObject getObject(ObjID objID) {
      String longID = this.getLongID(objID);
      NetworkObject obj = this.nFlongID.get(longID);
      if (obj == null) {
         assert this._galaxy != null;

         obj = this._galaxy.getObject(longID);
      }

      return obj;
   }

   void delObject(ObjID objID) {
      String longID = this.getLongID(objID);
      NetworkObject obj = this.nFlongID.get(longID);

      assert obj != null;

      this.nFlongID.remove(longID);
   }

   Enumeration<NetworkObject> objects() {
      return this.nFlongID.elements();
   }

   void clear() {
      this.nFlongID.clear();
      this.nFlongID = new Hashtable<String, NetworkObject>();
      this.lFshortID.clear();
      this.lFshortID = new Hashtable<Integer, String>();
   }

   final String getLongID(ObjID objID) {
      String longID;
      if (objID.shortID() != 0) {
         longID = this.lFshortID.get(new Integer(objID.shortID()));
      } else {
         longID = objID.longID();
      }

      return longID;
   }
}