コード例 #1
0
        /// <summary>
        /// Here we handle an unloaded flag and we load it into the game
        /// </summary>
        private void HandleFlag(ExtendedFlagInfo flagInfo)
        {
            //We have a flag with the same name!
            if (FlagExists(flagInfo.FlagName))
            {
                return;
            }

            var flagTexture = new Texture2D(4, 4);

            if (flagTexture.LoadImage(flagInfo.FlagData))
            {
                //Flags have names like: Squad/Flags/default
                flagTexture.name = flagInfo.FlagName;
                var textureInfo = new GameDatabase.TextureInfo(null, flagTexture, true, true, false)
                {
                    name = flagInfo.FlagName
                };

                GameDatabase.Instance.databaseTexture.Add(textureInfo);
                LunaLog.Log($"[LMP]: Loaded flag {flagTexture.name}");
            }
            else
            {
                LunaLog.LogError($"[LMP]: Failed to load flag {flagInfo.FlagName}");
            }
        }
コード例 #2
0
        public void HandleMessage(IServerMessageBase msg)
        {
            if (!(msg.Data is FlagBaseMsgData msgData))
            {
                return;
            }

            switch (msgData.FlagMessageType)
            {
            case FlagMessageType.ListResponse:
            {
                var data = (FlagListResponseMsgData)msgData;
                for (var i = 0; i < data.FlagCount; i++)
                {
                    var extendedFlagInfo = new ExtendedFlagInfo(data.FlagFiles[i]);
                    System.ServerFlags.TryAdd(extendedFlagInfo.FlagName, extendedFlagInfo);
                }
                MainSystem.NetworkState = ClientState.FlagsSynced;
            }
            break;

            case FlagMessageType.FlagData:
            {
                var data             = (FlagDataMsgData)msgData;
                var extendedFlagInfo = new ExtendedFlagInfo(data.Flag);
                System.ServerFlags.AddOrUpdate(extendedFlagInfo.FlagName, extendedFlagInfo, (key, existingVal) => extendedFlagInfo);
            }
            break;
            }
        }