public void DoUI(IObjectUIControl control) { if (obj.mFields.ContainsKey("eflag.enableErpFrame")) { obj.mFields["eflag.enableErpFrame"] = Convert.ToInt32(control.CheckBox("eflag.enableErpFrame", (int)obj.mFields["eflag.enableErpFrame"] != 0)); } if (obj.mFields.ContainsKey("eflag.enableEndErpFrame")) { obj.mFields["eflag.enableEndErpFrame"] = Convert.ToInt32(control.CheckBox("eflag.enableEndErpFrame", (int)obj.mFields["eflag.enableEndErpFrame"] != 0)); } if (obj.mFields.ContainsKey("camendint")) { obj.mFields["camendint"] = Convert.ToInt32(control.NumberInput((int)obj.mFields["camendint"], "camendint")); } if (obj.mFields.ContainsKey("evfrm")) { obj.mFields["evfrm"] = Convert.ToInt32(control.NumberInput((int)obj.mFields["evfrm"], "evfrm")); } if (obj.mFields.ContainsKey("evpriority")) { obj.mFields["evpriority"] = Convert.ToInt32(control.NumberInput((int)obj.mFields["evpriority"], "evpriority")); } }
public void DoUI(IObjectUIControl control) { text = control.TextInput(obj.Get <string>("name"), "Name"); zone = control.DropDownTextInput("Zone", obj.mParentZone.mZoneName, zones.ToArray(), false); obj.mMarioNo = (int)control.NumberInput(obj.mMarioNo, "Mario Number"); obj.mObjArg0 = (int)control.NumberInput(obj.mObjArg0, "Obj_arg0"); obj.mCameraID = (int)control.NumberInput(obj.mCameraID, "Camera ID"); }
public void DoUI(IObjectUIControl control) { #if ODYSSEY control.PlainText(Convert.ToString(area.ScenarioBitField, 2)); #endif if (Spotlight.Properties.Settings.Default.AllowIDEdits) { area.ID = control.TextInput(area.ID, "Object ID"); } else { control.TextInput(area.ID, "Object ID"); } if (area.comment != null) { control.TextInput(area.comment, "Comment"); } area.Layer = control.TextInput(area.Layer, "Layer"); area.ClassName = control.DropDownTextInput("Class Name", area.ClassName, DB_classNames); area.ModelName = control.DropDownTextInput("Shape Name", area.ModelName, shapeNames, false); area.Priority = (int)control.NumberInput(area.Priority, "Priority"); control.VerticalSeperator(); if (WinInput.Keyboard.IsKeyDown(WinInput.Key.LeftShift)) { area.Position = control.Vector3Input(area.Position, "Position", 1, 16); } else { area.Position = control.Vector3Input(area.Position, "Position", 0.125f, 2); } if (WinInput.Keyboard.IsKeyDown(WinInput.Key.LeftShift)) { area.Rotation = control.Vector3Input(area.Rotation, "Rotation", 45, 18); } else { area.Rotation = control.Vector3Input(area.Rotation, "Rotation", 5, 2); } if (WinInput.Keyboard.IsKeyDown(WinInput.Key.LeftShift)) { area.Scale = control.Vector3Input(area.Scale, "Scale", 1, 16); } else { area.Scale = control.Vector3Input(area.Scale, "Scale", 0.125f, 2); } }
public void DoUI(IObjectUIControl control) { lightID = Convert.ToInt32(control.NumberInput(obj.mEntry.Get <int>("LightID"), "LightID")); lightName = control.FullWidthTextInput(obj.mEntry.Get <string>("AreaLightName"), "AreaLightName"); if (control.Button("View Light Attributes")) { LightAttribEditor l = new LightAttribEditor(lightName); l.Show(); } }
public void DoUI(IObjectUIControl control) { text = control.TextInput(text, "TextInput"); longText = control.FullWidthTextInput(longText, "Long Text Input"); number = control.NumberInput(number, "Number Input"); control.Link("Just some Link"); control.DoubleButton("Add", "Remove"); control.TripleButton("Add", "Remove", "Insert"); control.QuadripleButton("+", "-", "*", "/"); enemyType = (EnemyType)control.ChoicePicker("Enemy1 Type", enemyType, Enum.GetValues(typeof(EnemyType))); enemyType2 = (EnemyType)control.ChoicePicker("Enemy2 Type", enemyType2, Enum.GetValues(typeof(EnemyType))); control.VerticalSeperator(); objectType = control.AdvancedTextInput("Object Type", objectType, objectTypes); control.Spacing(30); control.PlainText("Some Text"); }
public void DoUI(IObjectUIControl control) { obj.mName = control.FullWidthTextInput(obj.mName, "Camera Name"); obj.mType = control.DropDownTextInput("Camera Type", obj.mEntry.Get <string>("camtype"), cameraTypes, false); control.VerticalSeperator(); control.Spacing(2); obj.mFields["woffset.X"] = control.NumberInput((float)obj.mFields["woffset.X"], "World Offset X"); obj.mFields["woffset.Y"] = control.NumberInput((float)obj.mFields["woffset.Y"], "World Offset Y"); obj.mFields["woffset.Z"] = control.NumberInput((float)obj.mFields["woffset.Z"], "World Offset Z"); obj.mFields["loffset"] = control.NumberInput((float)obj.mFields["loffset"], "loffset"); obj.mFields["loffsetv"] = control.NumberInput((float)obj.mFields["loffsetv"], "loffsetv"); obj.mFields["roll"] = control.NumberInput((float)obj.mFields["roll"], "roll"); obj.mFields["fovy"] = control.NumberInput((float)obj.mFields["fovy"], "fovy"); obj.mFields["camint"] = Convert.ToInt32(control.NumberInput((int)obj.mFields["camint"], "camint")); obj.mFields["upper"] = control.NumberInput((float)obj.mFields["upper"], "upper"); obj.mFields["lower"] = control.NumberInput((float)obj.mFields["lower"], "lower"); obj.mFields["gndint"] = Convert.ToInt32(control.NumberInput((int)obj.mFields["gndint"], "gndint")); obj.mFields["uplay"] = control.NumberInput((float)obj.mFields["uplay"], "uplay"); obj.mFields["lplay"] = control.NumberInput((float)obj.mFields["lplay"], "lplay"); obj.mFields["pushdelay"] = Convert.ToInt32(control.NumberInput((int)obj.mFields["pushdelay"], "pushdelay")); obj.mFields["pushdelaylow"] = Convert.ToInt32(control.NumberInput((int)obj.mFields["pushdelaylow"], "pushdelaylow")); obj.mFields["udown"] = Convert.ToInt32(control.NumberInput((int)obj.mFields["udown"], "udown")); obj.mFields["vpanuse"] = Convert.ToInt32(control.NumberInput((int)obj.mFields["vpanuse"], "vpanuse")); obj.mFields["vpanaxis.X"] = control.NumberInput((float)obj.mFields["vpanaxis.X"], "Pan Axis X"); obj.mFields["vpanaxis.Y"] = control.NumberInput((float)obj.mFields["vpanaxis.Y"], "Pan Axis Y"); obj.mFields["vpanaxis.Z"] = control.NumberInput((float)obj.mFields["vpanaxis.Z"], "Pan Axis Z"); }
public void DoUI(IObjectUIControl control) { for (int i = 0; i < propertyDictKeys.Length; i++) { string key = propertyDictKeys[i]; if (propertyInfos != null && propertyInfos.TryGetValue(key, out string desc)) { control.SetTooltip(desc); } else { control.SetTooltip("No info for " + key); } if (propertyDict[key] is int) { propertyDict[key] = (int)control.NumberInput(propertyDict[key], key); } else if (propertyDict[key] is float) { propertyDict[key] = control.NumberInput(propertyDict[key], key); } else if (propertyDict[key] is string) { propertyDict[key] = control.TextInput(propertyDict[key], key); } else if (propertyDict[key] is bool) { propertyDict[key] = control.CheckBox(key, propertyDict[key]); } } control.SetTooltip(null); if (control.Button("Edit")) { ObjectParameterForm.TypeDef.Localize(); List <(ObjectParameterForm.TypeDef typeDef, string name)> parameterInfos = new List <(ObjectParameterForm.TypeDef typeDef, string name)>(); List <KeyValuePair <string, dynamic> > otherParameters = new List <KeyValuePair <string, dynamic> >(); //get parameterInfos from propertyDict foreach (var item in propertyDict) { if (item.Value is int) { parameterInfos.Add((ObjectParameterForm.TypeDef.IntDef, item.Key)); } else if (item.Value is float) { parameterInfos.Add((ObjectParameterForm.TypeDef.FloatDef, item.Key)); } else if (item.Value is string) { parameterInfos.Add((ObjectParameterForm.TypeDef.StringDef, item.Key)); } else if (item.Value is bool) { parameterInfos.Add((ObjectParameterForm.TypeDef.BoolDef, item.Key)); } else { otherParameters.Add(item); //arrays and dictionaries are not supported } } var parameterForm = new ObjectParameterForm(parameterInfos); if (parameterForm.ShowDialog() == System.Windows.Forms.DialogResult.OK) { List <RevertableDictAddition.AddInfo> addInfos = new List <RevertableDictAddition.AddInfo>(); List <RevertableDictDeletion.DeleteInfo> deleteInfos = new List <RevertableDictDeletion.DeleteInfo>(); List <RevertableDictEntryChange> changeInfos = new List <RevertableDictEntryChange>(); HashSet <string> newParamNames = new HashSet <string>(); List <KeyValuePair <string, dynamic> > newParameters = new List <KeyValuePair <string, dynamic> >(); foreach ((ObjectParameterForm.TypeDef typeDef, string parameterName) in parameterForm.EditedParameterInfos) { //check if name stayed the same if (propertyDict.ContainsKey(parameterName)) { if (propertyDict[parameterName].GetType() == typeDef.Type) { //keep value if name and type stayed the same newParameters.Add(new KeyValuePair <string, dynamic>(parameterName, propertyDict[parameterName])); } else { //set value to the default value of the new type newParameters.Add(new KeyValuePair <string, dynamic>(parameterName, typeDef.DefaultValue)); //and add the value change to changeInfos changeInfos.Add(new RevertableDictEntryChange(parameterName, propertyDict, propertyDict[parameterName])); } } else { //add added paramter to addInfos newParameters.Add(new KeyValuePair <string, dynamic>(parameterName, typeDef.DefaultValue)); addInfos.Add(new RevertableDictAddition.AddInfo(typeDef.DefaultValue, parameterName)); } newParamNames.Add(parameterName); } //add removed parameters to deleteInfos foreach (var property in propertyDict) { if (!newParamNames.Contains(property.Key)) { deleteInfos.Add(new RevertableDictDeletion.DeleteInfo(property.Value, property.Key)); } } //add everything to undo scene.BeginUndoCollection(); scene.AddToUndo(new RevertableDictAddition(new RevertableDictAddition.AddInDictInfo[] { new RevertableDictAddition.AddInDictInfo(addInfos.ToArray(), propertyDict) }, Array.Empty <RevertableDictAddition.SingleAddInDictInfo>())); scene.AddToUndo(new RevertableDictDeletion(new RevertableDictDeletion.DeleteInDictInfo[] { new RevertableDictDeletion.DeleteInDictInfo(deleteInfos.ToArray(), propertyDict) }, Array.Empty <RevertableDictDeletion.SingleDeleteInDictInfo>())); foreach (var changeInfo in changeInfos) { scene.AddToUndo(changeInfo); } scene.EndUndoCollection(); //regenerate propertyDict by merging the newParameters and the oterParameters propertyDict.Clear(); foreach (var parameter in newParameters) { propertyDict.Add(parameter.Key, parameter.Value); } foreach (var parameter in otherParameters) { propertyDict.Add(parameter.Key, parameter.Value); } //update keys propertyDictKeys = propertyDict.Keys.ToArray(); } } }
public void DoUI(IObjectUIControl control) { for (int i = 0; i < keys.Length; i++) { string key = keys[i]; if (dict[key] is int) { dict[key] = (int)control.NumberInput(dict[key], key); } else if (dict[key] is float) { dict[key] = control.NumberInput(dict[key], key); } else if (dict[key] is string) { dict[key] = control.TextInput(dict[key], key); } else if (dict[key] is bool) { dict[key] = control.CheckBox(key, dict[key]); } } if (control.Button("Edit")) { List <(ObjectParameterForm.TypeDef typeDef, string name)> parameters = new List <(ObjectParameterForm.TypeDef typeDef, string name)>(); List <KeyValuePair <string, dynamic> > otherParameters = new List <KeyValuePair <string, dynamic> >(); foreach (var item in dict) { if (item.Value is int) { parameters.Add((ObjectParameterForm.typeDefs[0], item.Key)); } else if (item.Value is float) { parameters.Add((ObjectParameterForm.typeDefs[1], item.Key)); } else if (item.Value is string) { parameters.Add((ObjectParameterForm.typeDefs[2], item.Key)); } else if (item.Value is bool) { parameters.Add((ObjectParameterForm.typeDefs[3], item.Key)); } else { otherParameters.Add(item); } } var parameterForm = new ObjectParameterForm(parameters); if (parameterForm.ShowDialog() == System.Windows.Forms.DialogResult.OK) { List <RevertableDictAddition.AddInfo> addInfos = new List <RevertableDictAddition.AddInfo>(); List <RevertableDictDeletion.DeleteInfo> deleteInfos = new List <RevertableDictDeletion.DeleteInfo>(); HashSet <string> newParamNames = new HashSet <string>(); List <KeyValuePair <string, dynamic> > newEntries = new List <KeyValuePair <string, dynamic> >(); foreach ((ObjectParameterForm.TypeDef def, string name) in parameterForm.Parameters) { if (dict.ContainsKey(name)) { newEntries.Add(new KeyValuePair <string, dynamic>(name, dict[name])); } else { newEntries.Add(new KeyValuePair <string, dynamic>(name, def.DefaultValue)); addInfos.Add(new RevertableDictAddition.AddInfo(def.DefaultValue, name)); } newParamNames.Add(name); } foreach (var keyValuePair in dict) { if (!newParamNames.Contains(keyValuePair.Key)) { deleteInfos.Add(new RevertableDictDeletion.DeleteInfo(keyValuePair.Value, keyValuePair.Key)); } } scene.BeginUndoCollection(); scene.AddToUndo(new RevertableDictAddition(new RevertableDictAddition.AddInDictInfo[] { new RevertableDictAddition.AddInDictInfo(addInfos.ToArray(), dict) }, new RevertableDictAddition.SingleAddInDictInfo[0])); scene.AddToUndo(new RevertableDictDeletion(new RevertableDictDeletion.DeleteInDictInfo[] { new RevertableDictDeletion.DeleteInDictInfo(deleteInfos.ToArray(), dict) }, new RevertableDictDeletion.SingleDeleteInDictInfo[0])); scene.EndUndoCollection(); dict.Clear(); foreach (var keyValuePair in newEntries) { dict.Add(keyValuePair.Key, keyValuePair.Value); } foreach (var keyValuePair in otherParameters) { dict.Add(keyValuePair.Key, keyValuePair.Value); } keys = dict.Keys.ToArray(); } } }