void PlayerSpawned(OmniEvent e) { if (!Network.isServer) return; SpawnEvent ev = e as SpawnEvent; ClientControllable cl = OmniWorld.instance.SpawnedObjectsNew[ev.id] as ClientControllable; cl.Name = name; cl.guid = guid; cl.delay = (int)(Network.GetAveragePing(ev.player) * OmniWorld.timeStep) + 2; Debug.Log(cl.Name + " ping is " + Network.GetAveragePing(ev.player) + " setting delay to " + cl.delay); OmniWorld.netView.RPC("delay", ev.player, cl.delay); OmniNetwork.AddClient(cl, ev.player); int[] giv = new int[OmniItems.itemTypes.Length * 2]; int c = 0; for (int i = 0; i < OmniItems.itemTypes.Length; i++) { giv[c++] = OmniItems.itemTypes[i].id; giv[c++] = 1; } InventoryEvent invevent = new InventoryEvent(OmniWorld.tick + 2 + cl.delay, ev.id, 'a', giv); invevent.player = ev.player; OmniEvents.AddEvent(invevent); }
public override void validate(OmniEvent e) { base.validate(e); if (e is BlockEvent) { BlockEvent bl = e as BlockEvent; for (int i = 0; i < updates.Length; i++) { for (int j = 0; j < bl.updates.Length; j++) { if (bl.updates[j].x == updates[i].x && bl.updates[j].y == updates[i].y) { updateMask |= 1 << i; } } } } }
void onClientSpawn(OmniEvent e) { SpawnEvent se = (SpawnEvent)e; //se.spawnedObject.GetComponent<OmniAI>().setTarget(connectedClients[se.player]); }
public static void AddEvent(OmniEvent e) { instance.pendingEvents.Add(e); e.init(); }
void ConsoleSpawn(OmniEvent e) { //((SpawnEvent)e).spawnedObject.GetComponent<OmniAI>().waypointX = (int)OmniLocal.getLocalPlayer().bounds.x; }
public virtual void validate(OmniEvent e) { }