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);
|
ApplyStatusEffects(actionType, 1.0f, target, true);
|
||||||
break;
|
break;
|
||||||
case NetEntityEvent.Type.ChangeProperty:
|
case NetEntityEvent.Type.ChangeProperty:
|
||||||
ReadPropertyChange(msg);
|
ReadPropertyChange(msg, false);
|
||||||
break;
|
break;
|
||||||
case NetEntityEvent.Type.Invalid:
|
case NetEntityEvent.Type.Invalid:
|
||||||
break;
|
break;
|
||||||
@@ -445,7 +445,7 @@ namespace Barotrauma
|
|||||||
//on the character of the client who sent the message
|
//on the character of the client who sent the message
|
||||||
break;
|
break;
|
||||||
case NetEntityEvent.Type.ChangeProperty:
|
case NetEntityEvent.Type.ChangeProperty:
|
||||||
WritePropertyChange(msg, extraData);
|
WritePropertyChange(msg, extraData, true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
msg.WritePadBits();
|
msg.WritePadBits();
|
||||||
|
|||||||
@@ -1392,7 +1392,7 @@ namespace Barotrauma
|
|||||||
case NetEntityEvent.Type.ChangeProperty:
|
case NetEntityEvent.Type.ChangeProperty:
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
WritePropertyChange(msg, extraData);
|
WritePropertyChange(msg, extraData, false);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@@ -1471,14 +1471,14 @@ namespace Barotrauma
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case NetEntityEvent.Type.ChangeProperty:
|
case NetEntityEvent.Type.ChangeProperty:
|
||||||
ReadPropertyChange(msg);
|
ReadPropertyChange(msg, true);
|
||||||
break;
|
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;
|
SerializableProperty property = extraData[1] as SerializableProperty;
|
||||||
if (property != null)
|
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;
|
if (allProperties.Count == 0) return;
|
||||||
|
|
||||||
int propertyIndex = 0;
|
int propertyIndex = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user