(1dd58d3ff) CustomInterface editor shows each label/signal as a separate textbox (w/ text picker option)
This commit is contained in:
@@ -377,6 +377,10 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
public virtual void UpdateHUD(Character character, float deltaTime, Camera cam) { }
|
public virtual void UpdateHUD(Character character, float deltaTime, Camera cam) { }
|
||||||
|
|
||||||
|
public virtual void CreateEditingHUD(SerializableEntityEditor editor)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
private bool LoadElemProjSpecific(XElement subElement)
|
private bool LoadElemProjSpecific(XElement subElement)
|
||||||
{
|
{
|
||||||
switch (subElement.Name.ToString().ToLowerInvariant())
|
switch (subElement.Name.ToString().ToLowerInvariant())
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using Lidgren.Network;
|
|||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
|
|
||||||
@@ -16,16 +17,22 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
uiElements.Clear();
|
uiElements.Clear();
|
||||||
|
|
||||||
|
var visibleElements = customInterfaceElementList.Where(ciElement => !string.IsNullOrEmpty(ciElement.Label));
|
||||||
|
|
||||||
GUILayoutGroup paddedFrame = new GUILayoutGroup(new RectTransform(new Vector2(0.9f, 0.8f), GuiFrame.RectTransform, Anchor.Center),
|
GUILayoutGroup paddedFrame = new GUILayoutGroup(new RectTransform(new Vector2(0.9f, 0.8f), GuiFrame.RectTransform, Anchor.Center),
|
||||||
childAnchor: customInterfaceElementList.Count > 1 ? Anchor.TopCenter : Anchor.Center)
|
childAnchor: customInterfaceElementList.Count > 1 ? Anchor.TopCenter : Anchor.Center)
|
||||||
{ RelativeSpacing = 0.05f };
|
{
|
||||||
|
RelativeSpacing = 0.05f,
|
||||||
|
Stretch = visibleElements.Count() > 2
|
||||||
|
};
|
||||||
|
|
||||||
float elementSize = Math.Min(1.0f / customInterfaceElementList.Count, 0.5f);
|
float elementSize = Math.Min(1.0f / visibleElements.Count(), 0.5f);
|
||||||
foreach (CustomInterfaceElement ciElement in customInterfaceElementList)
|
foreach (CustomInterfaceElement ciElement in visibleElements)
|
||||||
{
|
{
|
||||||
if (ciElement.ContinuousSignal)
|
if (ciElement.ContinuousSignal)
|
||||||
{
|
{
|
||||||
var tickBox = new GUITickBox(new RectTransform(new Vector2(1.0f, elementSize), paddedFrame.RectTransform), ciElement.Label)
|
var tickBox = new GUITickBox(new RectTransform(new Vector2(1.0f, elementSize), paddedFrame.RectTransform),
|
||||||
|
TextManager.Get(ciElement.Label, returnNull: true) ?? ciElement.Label)
|
||||||
{
|
{
|
||||||
UserData = ciElement
|
UserData = ciElement
|
||||||
};
|
};
|
||||||
@@ -45,7 +52,8 @@ namespace Barotrauma.Items.Components
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var btn = new GUIButton(new RectTransform(new Vector2(1.0f, elementSize), paddedFrame.RectTransform), ciElement.Label, style: "GUIButtonLarge")
|
var btn = new GUIButton(new RectTransform(new Vector2(1.0f, elementSize), paddedFrame.RectTransform),
|
||||||
|
TextManager.Get(ciElement.Label, returnNull: true) ?? ciElement.Label, style: "GUIButtonLarge")
|
||||||
{
|
{
|
||||||
UserData = ciElement
|
UserData = ciElement
|
||||||
};
|
};
|
||||||
@@ -66,6 +74,24 @@ namespace Barotrauma.Items.Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void CreateEditingHUD(SerializableEntityEditor editor)
|
||||||
|
{
|
||||||
|
base.CreateEditingHUD(editor);
|
||||||
|
|
||||||
|
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(customInterfaceElementList[0]);
|
||||||
|
PropertyDescriptor labelProperty = properties.Find("Label", false);
|
||||||
|
PropertyDescriptor signalProperty = properties.Find("Signal", false);
|
||||||
|
for (int i = 0; i< customInterfaceElementList.Count; i++)
|
||||||
|
{
|
||||||
|
editor.CreateStringField(customInterfaceElementList[i],
|
||||||
|
new SerializableProperty(labelProperty, customInterfaceElementList[i]),
|
||||||
|
customInterfaceElementList[i].Label, "Label #" + (i + 1), "");
|
||||||
|
editor.CreateStringField(customInterfaceElementList[i],
|
||||||
|
new SerializableProperty(signalProperty, customInterfaceElementList[i]),
|
||||||
|
customInterfaceElementList[i].Signal, "Signal #" + (i + 1), "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
partial void UpdateLabelsProjSpecific()
|
partial void UpdateLabelsProjSpecific()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < labels.Length && i < uiElements.Count; i++)
|
for (int i = 0; i < labels.Length && i < uiElements.Count; i++)
|
||||||
|
|||||||
@@ -578,7 +578,12 @@ namespace Barotrauma
|
|||||||
|
|
||||||
var componentEditor = new SerializableEntityEditor(listBox.Content.RectTransform, ic, inGame, showName: !inGame);
|
var componentEditor = new SerializableEntityEditor(listBox.Content.RectTransform, ic, inGame, showName: !inGame);
|
||||||
|
|
||||||
if (inGame) continue;
|
if (inGame)
|
||||||
|
{
|
||||||
|
ic.CreateEditingHUD(componentEditor);
|
||||||
|
componentEditor.Recalculate();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var kvp in ic.requiredItems)
|
foreach (var kvp in ic.requiredItems)
|
||||||
{
|
{
|
||||||
@@ -611,6 +616,9 @@ namespace Barotrauma
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ic.CreateEditingHUD(componentEditor);
|
||||||
|
componentEditor.Recalculate();
|
||||||
}
|
}
|
||||||
|
|
||||||
PositionEditingHUD();
|
PositionEditingHUD();
|
||||||
|
|||||||
@@ -277,13 +277,17 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
component.RectTransform.Parent = layoutGroup.RectTransform;
|
component.RectTransform.Parent = layoutGroup.RectTransform;
|
||||||
component.RectTransform.RepositionChildInHierarchy(childIndex);
|
component.RectTransform.RepositionChildInHierarchy(childIndex);
|
||||||
|
Recalculate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Recalculate()
|
||||||
|
{
|
||||||
int contentHeight = ContentHeight;
|
int contentHeight = ContentHeight;
|
||||||
RectTransform.NonScaledSize = new Point(RectTransform.NonScaledSize.X, contentHeight);
|
RectTransform.NonScaledSize = new Point(RectTransform.NonScaledSize.X, contentHeight);
|
||||||
layoutGroup.RectTransform.NonScaledSize = new Point(layoutGroup.RectTransform.NonScaledSize.X, contentHeight);
|
layoutGroup.RectTransform.NonScaledSize = new Point(layoutGroup.RectTransform.NonScaledSize.X, contentHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreateNewField(SerializableProperty property, ISerializableEntity entity)
|
public GUIComponent CreateNewField(SerializableProperty property, ISerializableEntity entity)
|
||||||
{
|
{
|
||||||
object value = property.GetValue(entity);
|
object value = property.GetValue(entity);
|
||||||
if (property.PropertyType == typeof(string) && value == null)
|
if (property.PropertyType == typeof(string) && value == null)
|
||||||
@@ -351,7 +355,7 @@ namespace Barotrauma
|
|||||||
return propertyField;
|
return propertyField;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreateBoolField(ISerializableEntity entity, SerializableProperty property, bool value, string displayName, string toolTip)
|
public GUIComponent CreateBoolField(ISerializableEntity entity, SerializableProperty property, bool value, string displayName, string toolTip)
|
||||||
{
|
{
|
||||||
GUITickBox propertyTickBox = new GUITickBox(new RectTransform(new Point(Rect.Width, elementHeight), layoutGroup.RectTransform), displayName)
|
GUITickBox propertyTickBox = new GUITickBox(new RectTransform(new Point(Rect.Width, elementHeight), layoutGroup.RectTransform), displayName)
|
||||||
{
|
{
|
||||||
@@ -367,11 +371,11 @@ namespace Barotrauma
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Fields.Add(property.Name, new GUIComponent[] { propertyTickBox });
|
if (!Fields.ContainsKey(property.Name)) { Fields.Add(property.Name, new GUIComponent[] { propertyTickBox }); }
|
||||||
return propertyTickBox;
|
return propertyTickBox;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreateIntField(ISerializableEntity entity, SerializableProperty property, int value, string displayName, string toolTip)
|
public GUIComponent CreateIntField(ISerializableEntity entity, SerializableProperty property, int value, string displayName, string toolTip)
|
||||||
{
|
{
|
||||||
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
||||||
var label = new GUITextBlock(new RectTransform(new Vector2(0.6f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
var label = new GUITextBlock(new RectTransform(new Vector2(0.6f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
||||||
@@ -395,11 +399,11 @@ namespace Barotrauma
|
|||||||
TrySendNetworkUpdate(entity, property);
|
TrySendNetworkUpdate(entity, property);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Fields.Add(property.Name, new GUIComponent[] { numberInput });
|
if (!Fields.ContainsKey(property.Name)) { Fields.Add(property.Name, new GUIComponent[] { numberInput }); }
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreateFloatField(ISerializableEntity entity, SerializableProperty property, float value, string displayName, string toolTip)
|
public GUIComponent CreateFloatField(ISerializableEntity entity, SerializableProperty property, float value, string displayName, string toolTip)
|
||||||
{
|
{
|
||||||
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
||||||
var label = new GUITextBlock(new RectTransform(new Vector2(0.6f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
var label = new GUITextBlock(new RectTransform(new Vector2(0.6f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
||||||
@@ -425,11 +429,11 @@ namespace Barotrauma
|
|||||||
TrySendNetworkUpdate(entity, property);
|
TrySendNetworkUpdate(entity, property);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Fields.Add(property.Name, new GUIComponent[] { numberInput });
|
if (!Fields.ContainsKey(property.Name)) { Fields.Add(property.Name, new GUIComponent[] { numberInput }); }
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreateEnumField(ISerializableEntity entity, SerializableProperty property, object value, string displayName, string toolTip)
|
public GUIComponent CreateEnumField(ISerializableEntity entity, SerializableProperty property, object value, string displayName, string toolTip)
|
||||||
{
|
{
|
||||||
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, elementHeight), layoutGroup.RectTransform), color: Color.Transparent);
|
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, elementHeight), layoutGroup.RectTransform), color: Color.Transparent);
|
||||||
var label = new GUITextBlock(new RectTransform(new Vector2(0.6f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
var label = new GUITextBlock(new RectTransform(new Vector2(0.6f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
||||||
@@ -454,11 +458,11 @@ namespace Barotrauma
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
enumDropDown.SelectItem(value);
|
enumDropDown.SelectItem(value);
|
||||||
Fields.Add(property.Name, new GUIComponent[] { enumDropDown });
|
if (!Fields.ContainsKey(property.Name)) { Fields.Add(property.Name, new GUIComponent[] { enumDropDown }); }
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreateEnumFlagField(ISerializableEntity entity, SerializableProperty property, object value, string displayName, string toolTip)
|
public GUIComponent CreateEnumFlagField(ISerializableEntity entity, SerializableProperty property, object value, string displayName, string toolTip)
|
||||||
{
|
{
|
||||||
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, elementHeight), layoutGroup.RectTransform), color: Color.Transparent);
|
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, elementHeight), layoutGroup.RectTransform), color: Color.Transparent);
|
||||||
var label = new GUITextBlock(new RectTransform(new Vector2(0.6f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
var label = new GUITextBlock(new RectTransform(new Vector2(0.6f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
||||||
@@ -487,11 +491,11 @@ namespace Barotrauma
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
Fields.Add(property.Name, new GUIComponent[] { enumDropDown });
|
if (!Fields.ContainsKey(property.Name)) { Fields.Add(property.Name, new GUIComponent[] { enumDropDown }); }
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreateStringField(ISerializableEntity entity, SerializableProperty property, string value, string displayName, string toolTip)
|
public GUIComponent CreateStringField(ISerializableEntity entity, SerializableProperty property, string value, string displayName, string toolTip)
|
||||||
{
|
{
|
||||||
var frame = new GUILayoutGroup(new RectTransform(new Point(Rect.Width, elementHeight), layoutGroup.RectTransform), isHorizontal: true)
|
var frame = new GUILayoutGroup(new RectTransform(new Point(Rect.Width, elementHeight), layoutGroup.RectTransform), isHorizontal: true)
|
||||||
{
|
{
|
||||||
@@ -542,11 +546,11 @@ namespace Barotrauma
|
|||||||
propertyBox.Text = value;
|
propertyBox.Text = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
Fields.Add(property.Name, new GUIComponent[] { propertyBox });
|
if (!Fields.ContainsKey(property.Name)) { Fields.Add(property.Name, new GUIComponent[] { propertyBox }); }
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreatePointField(ISerializableEntity entity, SerializableProperty property, Point value, string displayName, string toolTip)
|
public GUIComponent CreatePointField(ISerializableEntity entity, SerializableProperty property, Point value, string displayName, string toolTip)
|
||||||
{
|
{
|
||||||
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
||||||
var label = new GUITextBlock(new RectTransform(new Vector2(0.4f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
var label = new GUITextBlock(new RectTransform(new Vector2(0.4f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
||||||
@@ -594,11 +598,11 @@ namespace Barotrauma
|
|||||||
};
|
};
|
||||||
fields[i] = numberInput;
|
fields[i] = numberInput;
|
||||||
}
|
}
|
||||||
Fields.Add(property.Name, fields);
|
if (!Fields.ContainsKey(property.Name)) { Fields.Add(property.Name, fields); }
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreateVector2Field(ISerializableEntity entity, SerializableProperty property, Vector2 value, string displayName, string toolTip)
|
public GUIComponent CreateVector2Field(ISerializableEntity entity, SerializableProperty property, Vector2 value, string displayName, string toolTip)
|
||||||
{
|
{
|
||||||
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
||||||
var label = new GUITextBlock(new RectTransform(new Vector2(0.4f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
var label = new GUITextBlock(new RectTransform(new Vector2(0.4f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
||||||
@@ -648,11 +652,11 @@ namespace Barotrauma
|
|||||||
};
|
};
|
||||||
fields[i] = numberInput;
|
fields[i] = numberInput;
|
||||||
}
|
}
|
||||||
Fields.Add(property.Name, fields);
|
if (!Fields.ContainsKey(property.Name)) { Fields.Add(property.Name, fields); }
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreateVector3Field(ISerializableEntity entity, SerializableProperty property, Vector3 value, string displayName, string toolTip)
|
public GUIComponent CreateVector3Field(ISerializableEntity entity, SerializableProperty property, Vector3 value, string displayName, string toolTip)
|
||||||
{
|
{
|
||||||
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
||||||
var label = new GUITextBlock(new RectTransform(new Vector2(0.3f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
var label = new GUITextBlock(new RectTransform(new Vector2(0.3f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
||||||
@@ -706,11 +710,11 @@ namespace Barotrauma
|
|||||||
};
|
};
|
||||||
fields[i] = numberInput;
|
fields[i] = numberInput;
|
||||||
}
|
}
|
||||||
Fields.Add(property.Name, fields);
|
if (!Fields.ContainsKey(property.Name)) { Fields.Add(property.Name, fields); }
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreateVector4Field(ISerializableEntity entity, SerializableProperty property, Vector4 value, string displayName, string toolTip)
|
public GUIComponent CreateVector4Field(ISerializableEntity entity, SerializableProperty property, Vector4 value, string displayName, string toolTip)
|
||||||
{
|
{
|
||||||
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
||||||
var label = new GUITextBlock(new RectTransform(new Vector2(0.2f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
var label = new GUITextBlock(new RectTransform(new Vector2(0.2f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
||||||
@@ -768,14 +772,14 @@ namespace Barotrauma
|
|||||||
};
|
};
|
||||||
fields[i] = numberInput;
|
fields[i] = numberInput;
|
||||||
}
|
}
|
||||||
Fields.Add(property.Name, fields);
|
if (!Fields.ContainsKey(property.Name)) { Fields.Add(property.Name, fields); }
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreateColorField(ISerializableEntity entity, SerializableProperty property, Color value, string displayName, string toolTip)
|
public GUIComponent CreateColorField(ISerializableEntity entity, SerializableProperty property, Color value, string displayName, string toolTip)
|
||||||
{
|
{
|
||||||
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
||||||
var label = new GUITextBlock(new RectTransform(new Vector2(0.2f, 1), frame.RectTransform) { MinSize = new Point(80, 26)}, displayName, font: GUI.SmallFont)
|
var label = new GUITextBlock(new RectTransform(new Vector2(0.2f, 1), frame.RectTransform) { MinSize = new Point(80, 26) }, displayName, font: GUI.SmallFont)
|
||||||
{
|
{
|
||||||
ToolTip = toolTip
|
ToolTip = toolTip
|
||||||
};
|
};
|
||||||
@@ -835,11 +839,11 @@ namespace Barotrauma
|
|||||||
colorBox.Color = (Color)property.GetValue(entity);
|
colorBox.Color = (Color)property.GetValue(entity);
|
||||||
fields[i] = numberInput;
|
fields[i] = numberInput;
|
||||||
}
|
}
|
||||||
Fields.Add(property.Name, fields);
|
if (!Fields.ContainsKey(property.Name)) { Fields.Add(property.Name, fields); }
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GUIComponent CreateRectangleField(ISerializableEntity entity, SerializableProperty property, Rectangle value, string displayName, string toolTip)
|
public GUIComponent CreateRectangleField(ISerializableEntity entity, SerializableProperty property, Rectangle value, string displayName, string toolTip)
|
||||||
{
|
{
|
||||||
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
var frame = new GUIFrame(new RectTransform(new Point(Rect.Width, Math.Max(elementHeight, 26)), layoutGroup.RectTransform), color: Color.Transparent);
|
||||||
var label = new GUITextBlock(new RectTransform(new Vector2(0.2f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
var label = new GUITextBlock(new RectTransform(new Vector2(0.2f, 1), frame.RectTransform), displayName, font: GUI.SmallFont)
|
||||||
@@ -895,11 +899,11 @@ namespace Barotrauma
|
|||||||
};
|
};
|
||||||
fields[i] = numberInput;
|
fields[i] = numberInput;
|
||||||
}
|
}
|
||||||
Fields.Add(property.Name, fields);
|
if (!Fields.ContainsKey(property.Name)) { Fields.Add(property.Name, fields); }
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CreateTextPicker(string textTag, ISerializableEntity entity, SerializableProperty property, GUITextBox textBox)
|
public void CreateTextPicker(string textTag, ISerializableEntity entity, SerializableProperty property, GUITextBox textBox)
|
||||||
{
|
{
|
||||||
var msgBox = new GUIMessageBox("", "", new string[] { TextManager.Get("Cancel") }, width: 300, height: 400);
|
var msgBox = new GUIMessageBox("", "", new string[] { TextManager.Get("Cancel") }, width: 300, height: 400);
|
||||||
msgBox.Buttons[0].OnClicked = msgBox.Close;
|
msgBox.Buttons[0].OnClicked = msgBox.Close;
|
||||||
|
|||||||
@@ -8,11 +8,19 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
partial class CustomInterface : ItemComponent, IClientSerializable, IServerSerializable
|
partial class CustomInterface : ItemComponent, IClientSerializable, IServerSerializable
|
||||||
{
|
{
|
||||||
class CustomInterfaceElement
|
class CustomInterfaceElement : ISerializableEntity
|
||||||
{
|
{
|
||||||
public bool ContinuousSignal;
|
public bool ContinuousSignal;
|
||||||
public bool State;
|
public bool State;
|
||||||
public string Label, Connection, Signal;
|
public string Connection;
|
||||||
|
[Serialize("", false, translationTextTag = "Label.")]
|
||||||
|
public string Label { get; set; }
|
||||||
|
[Serialize("1", false)]
|
||||||
|
public string Signal { get; set; }
|
||||||
|
|
||||||
|
public string Name => "CustomInterfaceElement";
|
||||||
|
|
||||||
|
public Dictionary<string, SerializableProperty> SerializableProperties { get; set; }
|
||||||
|
|
||||||
public List<StatusEffect> StatusEffects = new List<StatusEffect>();
|
public List<StatusEffect> StatusEffects = new List<StatusEffect>();
|
||||||
|
|
||||||
@@ -33,7 +41,7 @@ namespace Barotrauma.Items.Components
|
|||||||
}
|
}
|
||||||
|
|
||||||
private string[] labels;
|
private string[] labels;
|
||||||
[Serialize("", true), Editable()]
|
[Serialize("", true)]
|
||||||
public string Labels
|
public string Labels
|
||||||
{
|
{
|
||||||
get { return string.Join(",", labels); }
|
get { return string.Join(",", labels); }
|
||||||
@@ -48,7 +56,7 @@ namespace Barotrauma.Items.Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
private string[] signals;
|
private string[] signals;
|
||||||
[Serialize("", true), Editable()]
|
[Serialize("", true)]
|
||||||
public string Signals
|
public string Signals
|
||||||
{
|
{
|
||||||
//use semicolon as a separator because comma may be needed in the signals (for color or vector values for example)
|
//use semicolon as a separator because comma may be needed in the signals (for color or vector values for example)
|
||||||
|
|||||||
@@ -318,6 +318,25 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string DisplayName
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
private set;
|
||||||
|
}
|
||||||
|
|
||||||
|
private string roomName;
|
||||||
|
[Editable, Serialize("", true, translationTextTag: "RoomName.")]
|
||||||
|
public string RoomName
|
||||||
|
{
|
||||||
|
get { return roomName; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (roomName == value) { return; }
|
||||||
|
roomName = value;
|
||||||
|
DisplayName = TextManager.Get(roomName, returnNull: true) ?? roomName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override Rectangle Rect
|
public override Rectangle Rect
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|||||||
Reference in New Issue
Block a user