Exemple #1
0
 internal override void DrawInspector()
 {
     if (_phase == null)
     {
         ImGui.LabelText("Phase", "<not dying>");
     }
     else
     {
         var phase = _phase.Value;
         if (ImGuiUtility.ComboEnum("Phase", ref phase))
         {
             _phase = phase;
         }
     }
 }
Exemple #2
0
 internal override void DrawInspector()
 {
     ImGuiUtility.ComboEnum("DoorState", ref _currentDoorState);
 }
Exemple #3
0
        static DefaultInspectable()
        {
            Drawers = new List <InspectableDrawer>();

            Drawers.Add(new InspectableDrawer(typeof(string), (ref object v, DiagnosticViewContext context) =>
            {
                var s = (string)v;
                if (ImGui.InputText("", ref s, 1000))
                {
                    v = s;
                    return(true);
                }
                return(false);
            }));

            Drawers.Add(new InspectableDrawer(typeof(bool), (ref object v, DiagnosticViewContext context) =>
            {
                var b = (bool)v;
                if (ImGui.Checkbox("", ref b))
                {
                    v = b;
                    return(true);
                }
                return(false);
            }));

            Drawers.Add(new InspectableDrawer(typeof(int), (ref object v, DiagnosticViewContext context) =>
            {
                var i = (int)v;
                if (ImGui.DragInt("", ref i))
                {
                    v = i;
                    return(true);
                }
                return(false);
            }));

            Drawers.Add(new InspectableDrawer(typeof(float), (ref object v, DiagnosticViewContext context) =>
            {
                var f = (float)v;
                if (ImGui.DragFloat("", ref f))
                {
                    v = f;
                    return(true);
                }
                return(false);
            }));

            Drawers.Add(new InspectableDrawer(typeof(Vector3), (ref object v, DiagnosticViewContext context) =>
            {
                var c = (Vector3)v;
                if (ImGui.DragFloat3("", ref c))
                {
                    v = c;
                    return(true);
                }
                return(false);
            }));

            Drawers.Add(new InspectableDrawer(typeof(Percentage), (ref object v, DiagnosticViewContext context) =>
            {
                var f = (float)(Percentage)v;
                if (ImGui.DragFloat("", ref f))
                {
                    v = new Percentage(f);
                    return(true);
                }
                return(false);
            }));

            Drawers.Add(new InspectableDrawer(typeof(ColorRgb), (ref object v, DiagnosticViewContext context) =>
            {
                var c = ((ColorRgb)v).ToVector3();
                if (ImGui.ColorEdit3("", ref c))
                {
                    v = new ColorRgb(
                        (byte)(c.X * 255.0f),
                        (byte)(c.Y * 255.0f),
                        (byte)(c.Z * 255.0f));
                    return(true);
                }
                return(false);
            }));

            Drawers.Add(new InspectableDrawer(typeof(ColorRgba), (ref object v, DiagnosticViewContext context) =>
            {
                var c = ((ColorRgba)v).ToVector4();
                if (ImGui.ColorEdit4("", ref c))
                {
                    v = new ColorRgba(
                        (byte)(c.X * 255.0f),
                        (byte)(c.Y * 255.0f),
                        (byte)(c.Z * 255.0f),
                        (byte)(c.W * 255.0f));
                    return(true);
                }
                return(false);
            }));

            Drawers.Add(new InspectableDrawer(typeof(ColorRgbF), (ref object v, DiagnosticViewContext context) =>
            {
                var c = ((ColorRgbF)v).ToVector3();
                if (ImGui.ColorEdit3("", ref c))
                {
                    v = new ColorRgbF(c.X, c.Y, c.Z);
                    return(true);
                }
                return(false);
            }));

            Drawers.Add(new InspectableDrawer(typeof(ColorRgbaF), (ref object v, DiagnosticViewContext context) =>
            {
                var c = ((ColorRgbaF)v).ToVector4();
                if (ImGui.ColorEdit4("", ref c))
                {
                    v = new ColorRgbaF(c.X, c.Y, c.Z, c.W);
                    return(true);
                }
                return(false);
            }));

            Drawers.Add(new InspectableDrawer(typeof(Enum), (ref object v, DiagnosticViewContext context) =>
            {
                var e = (Enum)v;
                if (ImGuiUtility.ComboEnum(v.GetType(), "", ref e))
                {
                    v = e;
                    return(true);
                }
                return(false);
            }));

            Drawers.Add(new InspectableDrawer(typeof(ILazyAssetReference), (ref object v, DiagnosticViewContext context) =>
            {
                var asset = (ILazyAssetReference)v;
                if (asset.Value != null)
                {
                    if (ImGui.Button(asset.Value.FullName))
                    {
                        context.SelectedObject = asset.Value;
                    }
                }
                else
                {
                    ImGui.Text("<null>");
                }
                return(false);
            }));

            Drawers.Add(new InspectableDrawer(typeof(BaseAsset), (ref object v, DiagnosticViewContext context) =>
            {
                var asset = (BaseAsset)v;
                if (ImGui.Button(asset.FullName))
                {
                    context.SelectedObject = v;
                }
                return(false);
            }));

            // Order matters here - this must be last.
            Drawers.Add(new InspectableDrawer(typeof(object), (ref object v, DiagnosticViewContext context) =>
            {
                return(false);
            }, hasChildNodes: true));
        }