Servers can modify all Editable item properties using ChangeProperty events (not just InGameEditable ones). Closes #675
This commit is contained in:
@@ -405,7 +405,7 @@ namespace Barotrauma
|
||||
ApplyStatusEffects(actionType, 1.0f, target, true);
|
||||
break;
|
||||
case NetEntityEvent.Type.ChangeProperty:
|
||||
ReadPropertyChange(msg);
|
||||
ReadPropertyChange(msg, false);
|
||||
break;
|
||||
case NetEntityEvent.Type.Invalid:
|
||||
break;
|
||||
@@ -445,7 +445,7 @@ namespace Barotrauma
|
||||
//on the character of the client who sent the message
|
||||
break;
|
||||
case NetEntityEvent.Type.ChangeProperty:
|
||||
WritePropertyChange(msg, extraData);
|
||||
WritePropertyChange(msg, extraData, true);
|
||||
break;
|
||||
}
|
||||
msg.WritePadBits();
|
||||
|
||||
@@ -1392,7 +1392,7 @@ namespace Barotrauma
|
||||
case NetEntityEvent.Type.ChangeProperty:
|
||||
try
|
||||
{
|
||||
WritePropertyChange(msg, extraData);
|
||||
WritePropertyChange(msg, extraData, false);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -1471,14 +1471,14 @@ namespace Barotrauma
|
||||
|
||||
break;
|
||||
case NetEntityEvent.Type.ChangeProperty:
|
||||
ReadPropertyChange(msg);
|
||||
ReadPropertyChange(msg, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void WritePropertyChange(NetBuffer msg, object[] extraData)
|
||||
private void WritePropertyChange(NetBuffer msg, object[] extraData, bool inGameEditableOnly)
|
||||
{
|
||||
var allProperties = GetProperties<InGameEditable>();
|
||||
var allProperties = inGameEditableOnly ? GetProperties<InGameEditable>() : GetProperties<Editable>();
|
||||
SerializableProperty property = extraData[1] as SerializableProperty;
|
||||
if (property != null)
|
||||
{
|
||||
@@ -1552,9 +1552,9 @@ namespace Barotrauma
|
||||
}
|
||||
}
|
||||
|
||||
private void ReadPropertyChange(NetBuffer msg)
|
||||
private void ReadPropertyChange(NetBuffer msg, bool inGameEditableOnly)
|
||||
{
|
||||
var allProperties = GetProperties<InGameEditable>();
|
||||
var allProperties = inGameEditableOnly ? GetProperties<InGameEditable>() : GetProperties<Editable>();
|
||||
if (allProperties.Count == 0) return;
|
||||
|
||||
int propertyIndex = 0;
|
||||
|
||||
Reference in New Issue
Block a user