- Renamed a bunch of ObjectProperty-related stuff (ObjectProperty -> SerializableProperty, IPropertyObject -> ISerializableEntity, the "SerializableProperty" attribute -> Serialize).

- Rectangle serialization.
- Option to restrict numeric properties to a range of values.
- WIP generic ISerializableEntity editor.
This commit is contained in:
Joonas Rikkonen
2017-11-08 21:15:03 +02:00
parent a0d606ef5f
commit 8e556f1c76
60 changed files with 1035 additions and 678 deletions
@@ -33,7 +33,7 @@ namespace Barotrauma.Items.Components
}
}
partial class ItemComponent : IPropertyObject
partial class ItemComponent : ISerializableEntity
{
private Dictionary<ActionType, List<ItemSound>> sounds;
@@ -109,13 +109,13 @@ namespace Barotrauma.Items.Components
if (sound == null) return 0.0f;
if (sound.VolumeProperty == "") return 1.0f;
ObjectProperty op = null;
if (properties.TryGetValue(sound.VolumeProperty.ToLowerInvariant(), out op))
SerializableProperty property = null;
if (properties.TryGetValue(sound.VolumeProperty.ToLowerInvariant(), out property))
{
float newVolume = 0.0f;
try
{
newVolume = (float)op.GetValue();
newVolume = (float)property.GetValue();
}
catch
{
@@ -128,12 +128,7 @@ namespace Barotrauma.Items.Components
return 0.0f;
}
//public virtual void Draw(SpriteBatch spriteBatch, bool editing = false)
//{
// item.drawableComponents = Array.FindAll(item.drawableComponents, i => i != this);
//}
public virtual void DrawHUD(SpriteBatch spriteBatch, Character character) { }
public virtual void AddToGUIUpdateList() { }
@@ -10,7 +10,7 @@ namespace Barotrauma.Items.Components
private Color textColor;
[SerializableProperty("", true), Editable(100)]
[Serialize("", true), Editable(100)]
public string Text
{
get { return textBlock.Text.Replace("\n", ""); }
@@ -27,7 +27,7 @@ namespace Barotrauma.Items.Components
}
}
[Editable, SerializableProperty("0.0,0.0,0.0,1.0", true)]
[Editable, Serialize("0.0,0.0,0.0,1.0", true)]
public Color TextColor
{
get { return textColor; }
@@ -37,7 +37,7 @@ namespace Barotrauma.Items.Components
}
}
[Editable, SerializableProperty(1.0f, true)]
[Editable, Serialize(1.0f, true)]
public float TextScale
{
get { return textBlock == null ? 1.0f : textBlock.TextScale; }