public static void BroadcastWormholeUpdateViaServer(WormholesMod mymod, string id)
        {
            if (Main.netMode != 2)
            {
                return;
            }                                               // Server only

            WormholesWorld modworld = mymod.GetModWorld <WormholesWorld>();
            WormholeLink   link     = modworld.Wormholes.GetLinkById(id);
            ModPacket      packet   = mymod.GetPacket();

            if (link == null)
            {
                ErrorLogger.Log("WormholesNetProtocol.BroadcastWormholeUpdateViaServer - Invalid wormhole link id.");
                return;
            }

            packet.Write((byte)WormholeNetProtocolTypes.WormholeUpdate);
            packet.Write((string)id);
            packet.Write((float)link.RightPortal.Pos.X);
            packet.Write((float)link.RightPortal.Pos.Y);
            packet.Write((float)link.LeftPortal.Pos.X);
            packet.Write((float)link.LeftPortal.Pos.Y);

            packet.Send();              // Broadcast
        }
        ////////////////////////////////
        // Recipients (Client)
        ////////////////////////////////

        private static void ReceiveWormholesAndSettingsOnClient(WormholesMod mymod, BinaryReader reader)
        {
            if (Main.netMode != 1)
            {
                return;
            }                                               // Clients only

            WormholesWorld modworld       = mymod.GetModWorld <WormholesWorld>();
            string         json           = reader.ReadString();
            int            wormhole_count = reader.ReadInt32();

            mymod.Config.DeserializeMe(json);

            for (int i = 0; i < wormhole_count; i++)
            {
                string id       = reader.ReadString();
                float  worm_l_x = reader.ReadSingle();
                float  worm_l_y = reader.ReadSingle();
                float  worm_r_x = reader.ReadSingle();
                float  worm_r_y = reader.ReadSingle();

                Vector2 pos_l = new Vector2(worm_l_x, worm_l_y);
                Vector2 pos_r = new Vector2(worm_r_x, worm_r_y);

                var link = new WormholeLink(id, WormholeLink.GetColor(i), pos_l, pos_r);
                modworld.Wormholes.Links.Insert(i, link);
            }
        }
Exemple #3
0
        public static void OpenPortal( WormholesMod mymod, Player player, Vector2 to, Vector2 fro )
        {
            WormholesPlayer modplayer = player.GetModPlayer<WormholesPlayer>( mymod );
            if( modplayer.MyPortal != null ) {
                modplayer.MyPortal.Close();
            }

            var link = new WormholeLink( Color.Cyan, to, fro );
            link.LeftPortal.AnimateOpen();
            link.RightPortal.AnimateOpen();

            modplayer.MyPortal = link;
        }
        ////////////////

        protected override void ReceiveReply()
        {
            var mymod   = WormholesMod.Instance;
            var myworld = ModContent.GetInstance <WormholesWorld>();

            for (int i = 0; i < this.Ids.Length; i++)
            {
                var posR = new Vector2(this.RightPosX[i], this.RightPosY[i]);
                var posL = new Vector2(this.LeftPosX[i], this.LeftPosY[i]);

                var link = new WormholeLink(this.Ids[i], WormholeLink.GetColor(i), posL, posR);
                myworld.Wormholes.Links.Insert(i, link);
            }
        }
Exemple #5
0
        ////////////////

        protected override void ReceiveWithClient()
        {
            var mymod   = WormholesMod.Instance;
            var myworld = mymod.GetModWorld <WormholesWorld>();

            mymod.JsonConfig.SetData(this.ModSettings);

            for (int i = 0; i < this.Ids.Length; i++)
            {
                var pos_r = new Vector2(this.RightPosX[i], this.RightPosY[i]);
                var pos_l = new Vector2(this.LeftPosX[i], this.LeftPosY[i]);

                var link = new WormholeLink(this.Ids[i], WormholeLink.GetColor(i), pos_l, pos_r);
                myworld.Wormholes.Links.Insert(i, link);
            }
        }
Exemple #6
0
        public static void BroadcastToClients(string id)
        {
            var mymod   = WormholesMod.Instance;
            var myworld = mymod.GetModWorld <WormholesWorld>();

            WormholeLink link = myworld.Wormholes.GetLinkById(id);

            if (link == null)
            {
                LogHelpers.Log("WormholeUpdateProtocol.BroadcastToClients - Invalid wormhole link id " + id);
                return;
            }

            var protocol = new WormholeUpdateProtocol(id, link.RightPortal.Pos.X, link.RightPortal.Pos.Y, link.LeftPortal.Pos.X, link.LeftPortal.Pos.Y);

            protocol.SendToClient(-1, -1);
        }