private bool OrganTableItemGUI(Core_CharacterGeneration.OrganData organ, string name, GUIStyle labelStyle) { bool changed = false; const int HEIGHT = 18; const int LABEL_WIDTH = 80; const int ITEM_WIDTH = 32; const int TABLE_GAP = 14; Space(TABLE_GAP); // Name var oldC = GUI.color; GUI.color = new Color(0.8f, 0.85f, 0.8f); EditorGUI.LabelField(GUIRect(LABEL_WIDTH, HEIGHT), name, labelStyle); GUI.color = oldC; // Size changed = IntField(ITEM_WIDTH, HEIGHT, "", ref organ.SizeX, true, labelStyle) || changed; changed = IntField(ITEM_WIDTH, HEIGHT, "", ref organ.SizeY, true, labelStyle) || changed; changed = IntField(ITEM_WIDTH, HEIGHT, "", ref organ.SizeZ, true, labelStyle) || changed; // Pos changed = IntField(ITEM_WIDTH, HEIGHT, "", ref organ.X, true, labelStyle) || changed; changed = IntField(ITEM_WIDTH, HEIGHT, "", ref organ.Y, true, labelStyle) || changed; changed = IntField(ITEM_WIDTH, HEIGHT, "", ref organ.Z, true, labelStyle) || changed; // Skin var color = ColorField(0, HEIGHT, "", organ.SkinColor); if (color != organ.SkinColor) { organ.SkinColor = color; changed = true; } return(changed); }
private bool OrganControllerItemGUI(Core_CharacterGeneration.OrganData organ, string name, Core_CharacterGeneration.OrganData2 organ2 = null) { bool changed = false; const int HEIGHT = 22; const int LABEL_WIDTH = 52; const int LABEL_WIDTH_ALT = 24; const int BUTTON_WIDTH = 24; const int GAP_HEIGHT = 4; const int GAP_WIDTH_ALT = 4; LayoutV(() => { // Name GUI.Label(GUIRect(0, HEIGHT), name); // Size LayoutH(() => { GUI.Label(GUIRect(LABEL_WIDTH, HEIGHT), "Size"); // X changed = IntField(LABEL_WIDTH_ALT, HEIGHT, "", ref organ.SizeX) || changed; changed = AddReduceButtons(BUTTON_WIDTH, HEIGHT, ref organ.SizeX) || changed; Space(GAP_WIDTH_ALT); // Y changed = IntField(LABEL_WIDTH_ALT, HEIGHT, "", ref organ.SizeY) || changed; changed = AddReduceButtons(BUTTON_WIDTH, HEIGHT, ref organ.SizeY) || changed; Space(GAP_WIDTH_ALT); // Z changed = IntField(LABEL_WIDTH_ALT, HEIGHT, "", ref organ.SizeZ) || changed; changed = AddReduceButtons(BUTTON_WIDTH, HEIGHT, ref organ.SizeZ) || changed; }); Space(GAP_HEIGHT); // Position LayoutH(() => { GUI.Label(GUIRect(LABEL_WIDTH, HEIGHT), "Position"); var oldE = GUI.enabled; var oldC = GUI.color; var tintColor = new Color(1, 1, 1, 0.618f); // X GUI.enabled = organ.EnableX; GUI.color = GUI.enabled ? oldC : tintColor; changed = IntField(LABEL_WIDTH_ALT, HEIGHT, "", ref organ.X, GUI.enabled) || changed; changed = AddReduceButtons(BUTTON_WIDTH, HEIGHT, ref organ.X) || changed; Space(GAP_WIDTH_ALT); // Y GUI.enabled = organ.EnableY; GUI.color = GUI.enabled ? oldC : tintColor; changed = IntField(LABEL_WIDTH_ALT, HEIGHT, "", ref organ.Y, GUI.enabled) || changed; changed = AddReduceButtons(BUTTON_WIDTH, HEIGHT, ref organ.Y) || changed; Space(GAP_WIDTH_ALT); // Z GUI.enabled = organ.EnableZ; GUI.color = GUI.enabled ? oldC : tintColor; changed = IntField(LABEL_WIDTH_ALT, HEIGHT, "", ref organ.Z, GUI.enabled) || changed; changed = AddReduceButtons(BUTTON_WIDTH, HEIGHT, ref organ.Z) || changed; GUI.enabled = oldE; GUI.color = oldC; }); Space(GAP_HEIGHT); LayoutH(() => { // Skin Color GUI.Label(GUIRect(LABEL_WIDTH, HEIGHT), "Skin"); var color = ColorField(0, HEIGHT, "", organ.SkinColor); if (color != organ.SkinColor) { organ.SkinColor = color; changed = true; } // Mirror if (organ2 != null) { GUIRect(24, HEIGHT); var newMirror = EditorGUI.ToggleLeft(GUIRect(LABEL_WIDTH + 8, HEIGHT), " Mirror", organ2.Mirrored); if (newMirror != organ2.Mirrored) { organ2.Mirrored = newMirror; changed = true; } } }); if (changed && organ2 != null && organ2.Mirrored) { // Mirror to another var otherOrgan = organ == organ2.Left ? organ2.Right : organ2.Left; otherOrgan.CopyFrom(organ, true); } }, false, new GUIStyle(GUI.skin.box) { fixedWidth = LABEL_WIDTH + LABEL_WIDTH_ALT * 3f + BUTTON_WIDTH * 3f + GAP_WIDTH_ALT * 2f + 12, }); return(changed); }