v0.19.8.0
This commit is contained in:
+10
-16
@@ -18,10 +18,14 @@ class CheckConnectionAction : BinaryOptionAction
|
||||
[Serialize("", IsPropertySaveable.Yes)]
|
||||
public Identifier OtherConnectionName { get; set; }
|
||||
|
||||
[Serialize(1, IsPropertySaveable.Yes)]
|
||||
public int MinAmount { get; set; }
|
||||
|
||||
public CheckConnectionAction(ScriptedEvent parentEvent, ContentXElement element) : base(parentEvent, element) { }
|
||||
|
||||
protected override bool? DetermineSuccess()
|
||||
{
|
||||
int amount = 0;
|
||||
var connectTargets = !ConnectedItemTag.IsEmpty ? ParentEvent.GetTargets(ConnectedItemTag) : Enumerable.Empty<Entity>();
|
||||
foreach (var target in ParentEvent.GetTargets(ItemTag))
|
||||
{
|
||||
@@ -33,27 +37,17 @@ class CheckConnectionAction : BinaryOptionAction
|
||||
if (!IsCorrectConnection(connection, ConnectionName)) { continue; }
|
||||
if (ConnectedItemTag.IsEmpty && OtherConnectionName.IsEmpty)
|
||||
{
|
||||
if (connection.Wires.Any()) { return true; }
|
||||
amount += connection.Wires.Count();
|
||||
if (amount >= MinAmount) { return true; }
|
||||
continue;
|
||||
}
|
||||
foreach (var wire in connection.Wires)
|
||||
{
|
||||
if (wire.OtherConnection(connection) is not Connection otherConnection) { continue; }
|
||||
if (ConnectedItemTag.IsEmpty)
|
||||
{
|
||||
if (IsCorrectConnection(otherConnection, OtherConnectionName)) { return true; }
|
||||
}
|
||||
else if (OtherConnectionName.IsEmpty)
|
||||
{
|
||||
if (IsCorrectItem()) { return true; }
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!IsCorrectConnection(otherConnection, OtherConnectionName)) { continue; }
|
||||
if (!IsCorrectItem()) { continue; }
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!ConnectedItemTag.IsEmpty && !IsCorrectConnection(otherConnection, OtherConnectionName)) { continue; }
|
||||
if (!ConnectedItemTag.IsEmpty && !IsCorrectItem()) { continue; }
|
||||
amount++;
|
||||
if (amount >= MinAmount) { return true; }
|
||||
bool IsCorrectItem() => connectTargets.Contains(otherConnection.Item);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user