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; } } }
internal override void DrawInspector() { ImGuiUtility.ComboEnum("DoorState", ref _currentDoorState); }
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)); }