private void OnCreateRemotableActor(ref CreateRemotableActor p) { int index = p.Index; Player player; RemotableActor remotableActor = new RemotableActor { Index = index, EventType = p.EventType, EventParams = p.EventParams, Pos = p.Pos }; lock (sync) { if (!players.TryGetValue(p.SenderConnection, out player)) { return; } if (player.Index != (index & 0xff)) { return; } remotableActor.Owner = player; remotableActors[index] = remotableActor; remotableActor.AABB = new AABB(remotableActor.Pos.Xy, 30, 30); collisions.AddProxy(remotableActor); } Send(new CreateRemoteObject { Index = remotableActor.Index, EventType = remotableActor.EventType, EventParams = remotableActor.EventParams, Pos = remotableActor.Pos, }, 13, playerConnections, NetDeliveryMethod.ReliableUnordered, PacketChannels.Main); }
public override void AddActor(ActorBase actor) { base.AddActor(actor); IRemotableActor remotableActor = actor as IRemotableActor; if (remotableActor == null) { return; } int actorIndex = localPlayerIndex | (lastRemotableActorIndex << 8); remotableActor.Index = actorIndex; localRemotableActors[actorIndex] = remotableActor; CreateRemotableActor p = new CreateRemotableActor(); remotableActor.OnCreateRemotableActor(ref p); p.Index = actorIndex; net.Send(p, 13, NetDeliveryMethod.ReliableUnordered, PacketChannels.Main); lastRemotableActorIndex++; }
public void OnCreateRemotableActor(ref CreateRemotableActor p) { p.EventType = EventType.WeaponBlaster; p.EventParams = new ushort[] { upgrades }; p.Pos = Transform.Pos; }
public void OnCreateRemotableActor(ref CreateRemotableActor p) { p.EventType = EventType.WeaponTNT; p.Pos = Transform.Pos; }