Ejemplo n.º 1
0
 public void Add(BoardItem item, bool sort)
 {
     if (item is TileInstance || item is ObjectInstance)
     {
         TileObjs.Add((LayeredItem)item);
         if (sort)
         {
             Sort();
         }
     }
     else
     {
         Type itemType = item.GetType();
         foreach (IList itemList in AllItemLists)
         {
             Type listType = itemList.GetType().GetGenericArguments()[0];
             if (listType.FullName == itemType.FullName)
             {
                 itemList.Add(item);
                 return;
             }
         }
         throw new Exception("unknown type at boarditems.add");
     }
 }
Ejemplo n.º 2
0
 public void Remove(BoardItem item)
 {
     if (item is TileInstance || item is ObjectInstance)
     {
         TileObjs.Remove((LayeredItem)item);
     }
     else
     {
         Type itemType = item.GetType();
         foreach (IList itemList in AllItemLists)
         {
             Type listType = itemList.GetType().GetGenericArguments()[0];
             if (listType.FullName == itemType.FullName)
             {
                 itemList.Remove(item);
                 return;
             }
         }
         throw new Exception("unknown type at boarditems.remove");
     }
 }
 void MultiBoard_OnEditInstanceClicked(BoardItem item)
 {
     InputHandler.ClearBoundItems(multiBoard.SelectedBoard);
     try
     {
         if (item is ObjectInstance)
         {
             new ObjectInstanceEditor((ObjectInstance)item).ShowDialog();
         }
         else if (item is TileInstance)
         {
             new TileInstanceEditor((TileInstance)item).ShowDialog();
         }
         else if (item is Chair)
         {
             new GeneralInstanceEditor(item).ShowDialog();
         }
         else if (item is FootholdAnchor)
         {
             FootholdLine[] selectedFootholds = FootholdLine.GetSelectedFootholds(item.Board);
             if (selectedFootholds.Length > 0)
             {
                 new FootholdEditor(selectedFootholds).ShowDialog();
             }
             else
             {
                 new GeneralInstanceEditor(item).ShowDialog();
             }
         }
         else if (item is RopeAnchor ropeItem)
         {
             new RopeInstanceEditor(ropeItem).ShowDialog();
         }
         else if (item is LifeInstance lifeItem)
         {
             new LifeInstanceEditor(lifeItem).ShowDialog();
         }
         else if (item is ReactorInstance reactorItem)
         {
             new ReactorInstanceEditor(reactorItem).ShowDialog();
         }
         else if (item is BackgroundInstance backgroundItem)
         {
             new BackgroundInstanceEditor(backgroundItem).ShowDialog();
         }
         else if (item is PortalInstance portal)
         {
             new PortalInstanceEditor(portal).ShowDialog();
         }
         else if (item is ToolTipInstance tooltipItem)
         {
             new TooltipInstanceEditor(tooltipItem).ShowDialog();
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(string.Format("An error occurred while presenting the instance editor for {0}:\r\n{1}", item.GetType().Name, e.ToString()));
     }
 }
Ejemplo n.º 4
0
        private void multiBoard_OnEditInstanceClicked(BoardItem item)
        {
            InputHandler.ClearBoundItems(multiBoard.SelectedBoard);
            switch (item.GetType().Name)
            {
                case "ObjectInstance":
                    new InstanceEditor.ObjectInstanceEditor((ObjectInstance)item).ShowDialog();
                    multiBoard.RenderFrame();
                    break;
                case "TileInstance":
                case "Chair":
                    new InstanceEditor.GeneralInstanceEditor(item).ShowDialog();
                    multiBoard.RenderFrame();
                    break;
                case "FootholdAnchor":
                    FootholdLine[] selectedFootholds = FootholdLine.GetSelectedFootholds(item.Board);
                    if (selectedFootholds.Length > 0)
                    {
                        new InstanceEditor.FootholdEditor(selectedFootholds).ShowDialog();
                    }
                    else
                        new InstanceEditor.GeneralInstanceEditor(item).ShowDialog();
                    multiBoard.RenderFrame();
                    break;
                case "RopeAnchor":
                    new InstanceEditor.RopeInstanceEditor((RopeAnchor)item).ShowDialog();
                    multiBoard.RenderFrame();
                    break;
                case "LifeInstance":
                    new InstanceEditor.LifeInstanceEditor((LifeInstance)item).ShowDialog();
                    multiBoard.RenderFrame();
                    break;
                case "ReactorInstance":
                    new InstanceEditor.ReactorInstanceEditor((ReactorInstance)item).ShowDialog();
                    multiBoard.RenderFrame();
                    break;
                case "BackgroundInstance":
                    multiBoard.RenderFrame();
                    break;
                case "PortalInstance":
                    new InstanceEditor.PortalInstanceEditor((PortalInstance)item).ShowDialog();
                    multiBoard.RenderFrame();
                    break;
                case "ToolTip":

                    break;
                default:
                    break;
            }
        }
Ejemplo n.º 5
0
 public static string CreateItemDescription(BoardItem item, string lineBreak)
 {
     switch (item.GetType().Name)
     {
         case "TileInstance":
             return "Tile:" + lineBreak + ((TileInfo)item.BaseInfo).tS + @"\" + ((TileInfo)item.BaseInfo).u + @"\" + ((TileInfo)item.BaseInfo).no;
         case "ObjectInstance":
             return "Object:" + lineBreak + ((ObjectInfo)item.BaseInfo).oS + @"\" + ((ObjectInfo)item.BaseInfo).l0 + @"\" + ((ObjectInfo)item.BaseInfo).l1 + @"\" + ((ObjectInfo)item.BaseInfo).l2;
         case "BackgroundInstance":
             return "Background:" + lineBreak + ((BackgroundInfo)item.BaseInfo).bS + @"\" + (((BackgroundInfo)item.BaseInfo).ani ? "ani" : "back") + @"\" + ((BackgroundInfo)item.BaseInfo).no;
         case "PortalInstance":
             return "Portal:" + lineBreak + "Name: " + ((PortalInstance)item).pn + lineBreak + "Type: " + Tables.PortalTypeNames[(int)((PortalInstance)item).pt];
         case "LifeInstance":
             if (((LifeInstance)item).Type == ItemTypes.Mobs)
                 return "Mob:" + lineBreak + "Name: " + ((MobInfo)item.BaseInfo).Name + lineBreak + "ID: " + ((MobInfo)item.BaseInfo).ID;
             else
                 return "Npc:" + lineBreak + "Name: " + ((NpcInfo)item.BaseInfo).Name + lineBreak + "ID: " + ((NpcInfo)item.BaseInfo).ID;
         case "ReactorInstance":
             return "Reactor:" + lineBreak + "ID: " + ((ReactorInfo)item.BaseInfo).ID;
         case "FootholdAnchor":
             return "Foothold";
         case "RopeAnchor":
             return ((RopeAnchor)item).ParentRope.ladder ? "Ladder" : "Rope";
         case "Chair":
             return "Chair";
         case "ToolTipDot":
         case "ToolTip":
         case "ToolTipChar":
             return "Tooltip";
         default:
             return "";
     }
 }
Ejemplo n.º 6
0
 void multiBoard_OnEditInstanceClicked(BoardItem item)
 {
     InputHandler.ClearBoundItems(multiBoard.SelectedBoard);
     try
     {
         if (item is ObjectInstance)
         {
             new ObjectInstanceEditor((ObjectInstance)item).ShowDialog();
         }
         else if (item is TileInstance)
         {
             new TileInstanceEditor((TileInstance)item).ShowDialog();
         }
         else if (item is Chair)
         {
             new GeneralInstanceEditor(item).ShowDialog();
         }
         else if (item is FootholdAnchor)
         {
             FootholdLine[] selectedFootholds = FootholdLine.GetSelectedFootholds(item.Board);
             if (selectedFootholds.Length > 0)
             {
                 new FootholdEditor(selectedFootholds).ShowDialog();
             }
             else
             {
                 new GeneralInstanceEditor(item).ShowDialog();
             }
         }
         else if (item is RopeAnchor)
         {
             new RopeInstanceEditor((RopeAnchor)item).ShowDialog();
         }
         else if (item is LifeInstance)
         {
             new LifeInstanceEditor((LifeInstance)item).ShowDialog();
         }
         else if (item is ReactorInstance)
         {
             new ReactorInstanceEditor((ReactorInstance)item).ShowDialog();
         }
         else if (item is BackgroundInstance)
         {
             new BackgroundInstanceEditor((BackgroundInstance)item).ShowDialog();
         }
         else if (item is PortalInstance)
         {
             new PortalInstanceEditor((PortalInstance)item).ShowDialog();
         }
         else if (item is ToolTipInstance)
         {
             new TooltipInstanceEditor((ToolTipInstance)item).ShowDialog();
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(string.Format("An error occurred while presenting the instance editor for {0}:\r\n{1}", item.GetType().Name, e.ToString()));
     }
 }
Ejemplo n.º 7
0
 public void Remove(BoardItem item)
 {
     lock (board.ParentControl)
     {
         if (item is TileInstance || item is ObjectInstance)
             TileObjs.Remove((LayeredItem)item);
         else if (item is BackgroundInstance)
         {
             if (((BackgroundInstance)item).front)
             {
                 FrontBackgrounds.Remove((BackgroundInstance)item);
             }
             else
             {
                 BackBackgrounds.Remove((BackgroundInstance)item);
             }
         }
         else if (item.Type == ItemTypes.Misc)
         {
             if (item is VRDot || item is MinimapDot)
                 SpecialDots.Remove((MapleDot)item);
             else
                 MiscItems.Remove(item);
         }
         else
         {
             Type itemType = item.GetType();
             foreach (IMapleList itemList in AllItemLists)
             {
                 Type listType = itemList.GetType().GetGenericArguments()[0];
                 if (listType.FullName == itemType.FullName)
                 {
                     itemList.Remove(item);
                     return;
                 }
             }
             throw new Exception("unknown type at boarditems.remove");
         }
     }
 }