コード例 #1
0
 public void AddTextItem(GLTextItem item)
 {
     foreach (GLView v in gl_view)
     {
         v.AddTextItem(item);
     }
 }
コード例 #2
0
 public void RemoveTextItem(GLTextItem item)
 {
     m_text_items.Remove(item);
 }
コード例 #3
0
 public void AddTextItem(GLTextItem item)
 {
     m_text_items.Add(item);
 }
コード例 #4
0
        public void UpdateSegmentNumbering()
        {
            gl_panel.RemoveAllTextItems();

            switch (m_show_3d_text_type)
            {
            default:
                break;

            case ShowTextType.MARK_SEGS:
            case ShowTextType.ALL_SEGS:
                foreach (Segment seg in m_level.EnumerateVisibleSegments())
                {
                    if ((m_show_3d_text_type == ShowTextType.MARK_SEGS) && !seg.marked && m_level.selected_segment != seg.num)
                    {
                        continue;
                    }
                    GLTextItem item = new GLTextItem(seg.FindCenter(), seg.num.ToString(), Color.Red, false);
                    item.Facing = true;
                    item.Scale  = new Vector3(0.06f, 0.06f, 0.06f);
                    gl_panel.AddTextItem(item);
                }
                break;

            case ShowTextType.POWERUPS:
            case ShowTextType.ROBOTS:
            case ShowTextType.MARK_ENTS:
                foreach (Entity ent in m_level.EnumerateAliveEntities())
                {
                    if (ent.m_segnum > -1 && m_level.segment[ent.m_segnum].m_hidden)
                    {
                        continue;
                    }
                    bool selected = (ent.num == m_level.selected_entity);
                    if (m_show_3d_text_type == ShowTextType.POWERUPS)
                    {
                        if (ent.Type == EntityType.ITEM)
                        {
                            GLTextItem item = new GLTextItem(ent.position - Vector3.UnitY, (GetItemString(ent)), (selected ? Color.HotPink : Color.Orange), false);
                            item.Facing = true;
                            item.Scale  = m_item_text_scale;
                            gl_panel.AddTextItem(item);
                        }
                    }
                    else if (m_show_3d_text_type == ShowTextType.ROBOTS)
                    {
                        if (ent.Type == EntityType.ENEMY)
                        {
                            GLTextItem item = new GLTextItem(ent.position - Vector3.UnitY, (GetRobotString(ent)), (selected ? Color.HotPink : Color.Red), false);
                            item.Facing = true;
                            item.Scale  = m_item_text_scale;
                            gl_panel.AddTextItem(item);
                        }
                    }
                    else
                    {
                        if (ent.marked || selected)
                        {
                            GLTextItem item;
                            if (ent.Type == EntityType.ITEM)
                            {
                                item = new GLTextItem(ent.position - Vector3.UnitY, (GetItemString(ent)), (selected ? Color.HotPink : Color.Orange), false);
                            }
                            else if (ent.Type == EntityType.ENEMY)
                            {
                                item = new GLTextItem(ent.position - Vector3.UnitY, (GetRobotString(ent)), (selected ? Color.HotPink : Color.Red), false);
                            }
                            else if (ent.Type == EntityType.PROP)
                            {
                                item = new GLTextItem(ent.position - Vector3.UnitY, GetPropString(ent), (selected ? Color.HotPink : Color.Orange), false);
                            }
                            else if (ent.Type == EntityType.SCRIPT)
                            {
                                item = new GLTextItem(ent.position - Vector3.UnitY, ((ScriptSubType)ent.SubType).ToString(), (selected ? Color.HotPink : Color.Orange), false);
                            }
                            else if (ent.Type == EntityType.TRIGGER)
                            {
                                item = new GLTextItem(ent.position - Vector3.UnitY, ((TriggerSubType)ent.SubType).ToString(), (selected ? Color.HotPink : Color.Orange), false);
                            }
                            else if (ent.Type == EntityType.SPECIAL)
                            {
                                item = new GLTextItem(ent.position - Vector3.UnitY, ((SpecialSubType)ent.SubType).ToString(), (selected ? Color.HotPink : Color.Orange), false);
                            }
                            else if (ent.Type == EntityType.DOOR)
                            {
                                item = new GLTextItem(ent.position - Vector3.UnitY, ((DoorSubType)ent.SubType).ToString(), (selected ? Color.HotPink : Color.Orange), false);
                            }
                            else
                            {
                                continue;
                            }
                            item.Facing = true;
                            item.Scale  = m_item_text_scale;
                            gl_panel.AddTextItem(item);
                        }
                    }
                }
                break;
            }
        }