Exemplo n.º 1
0
 public static EditorArchitectInfo GetOrCreateArchitectInfo(Character chr)
 {
     EditorArchitectInfo info;
     if (!Architects.TryGetValue(chr, out info))
     {
         Architects.Add(chr, info = new EditorArchitectInfo(chr));
     }
     return info;
 }
Exemplo n.º 2
0
        public static void StopEditing(Character chr)
        {
            EditorArchitectInfo architectInfo = GetArchitectInfo(chr);

            if (architectInfo == null)
            {
                return;
            }
            architectInfo.Editor.Leave(chr);
        }
Exemplo n.º 3
0
        public static EditorArchitectInfo GetOrCreateArchitectInfo(Character chr)
        {
            EditorArchitectInfo editorArchitectInfo;

            if (!Architects.TryGetValue(chr, out editorArchitectInfo))
            {
                Architects.Add(chr, editorArchitectInfo = new EditorArchitectInfo(chr));
            }
            return(editorArchitectInfo);
        }
Exemplo n.º 4
0
        private void OnJoin(Character chr)
        {
            if (Team.ContainsKey(chr.EntityId.Low))
            {
                return;
            }
            EditorArchitectInfo architectInfo = MapEditorMgr.GetOrCreateArchitectInfo(chr);

            Team.Add(chr.EntityId.Low, architectInfo);
            architectInfo.Editor = this;
            chr.CallPeriodically(1000, UpdateCallback);
        }
Exemplo n.º 5
0
        /// <summary>Called periodically on editing Characters</summary>
        private void UpdateCallback(WorldObject obj)
        {
            Character chr = (Character)obj;

            if (obj.Map != Map || !obj.IsInWorld)
            {
                Leave(chr);
            }
            else
            {
                EditorArchitectInfo architectInfo = MapEditorMgr.GetOrCreateArchitectInfo(chr);
                EditorFigurine      target        = chr.Target as EditorFigurine;
                if (architectInfo.CurrentTarget == target)
                {
                    return;
                }
                EditorFigurine editorFigurine = target;
                architectInfo.CurrentTarget = editorFigurine;
            }
        }