예제 #1
0
        static ReplicaReturnResult ConstructionCB(BitStream inBitStream, uint timestamp, NetworkID networkID, NetworkIDObject existingObject, SystemAddress senderId, ReplicaManagerExt caller, IntPtr userData)
        {
            StringBuilder output = new StringBuilder(255);

            if (isServer)
                return ReplicaReturnResult.REPLICA_PROCESSING_DONE;

            StringTable.Instance().DecodeString(output, output.Capacity, inBitStream);
            if (output.ToString() == "Player")
            {
                System.Diagnostics.Debug.Assert(player == null);

                player = new Player();

                player.replica.SetNetworkIDManager(networkIDManager);
                player.replica.SetNetworkID(networkID);

                if (!isServer)
                {
                    replicaManager.Construct(player.replica, true, senderId, false);

                    replicaManager.SetScope(player.replica, true, senderId, false);
                }

                Console.Write("New player created\n");
            }
            else if (output.ToString() == "Monster")
            {
                System.Diagnostics.Debug.Assert(monster == null);

                monster = new Monster();

                monster.replica.SetNetworkIDManager(networkIDManager);
                monster.replica.SetNetworkID(networkID);

                if (!isServer)
                {
                    replicaManager.Construct(monster.replica, true, senderId, false);

                    replicaManager.SetScope(monster.replica, true, senderId, false);
                }

                Console.Write("New monster created\n");
            }
            else
            {
                System.Diagnostics.Debug.Assert(false);
            }
            return ReplicaReturnResult.REPLICA_PROCESSING_DONE;
        }
예제 #2
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(NetworkIDObject obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }