DoAfter and other bugfixes (#14669)
This commit is contained in:
@@ -123,7 +123,8 @@ public sealed class ClimbSystem : SharedClimbSystem
|
||||
BreakOnDamage = true,
|
||||
BreakOnStun = true,
|
||||
RaiseOnUser = user == entityToMove,
|
||||
RaiseOnTarget = user != entityToMove
|
||||
RaiseOnTarget = user != entityToMove,
|
||||
RaiseOnUsed = false,
|
||||
};
|
||||
|
||||
_doAfterSystem.DoAfter(args, ev);
|
||||
|
||||
@@ -496,6 +496,9 @@ namespace Content.Server.Disposal.Unit.EntitySystems
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnUserMove = true,
|
||||
NeedHand = false,
|
||||
RaiseOnTarget = false,
|
||||
RaiseOnUser = false,
|
||||
RaiseOnUsed = true,
|
||||
};
|
||||
|
||||
_doAfterSystem.DoAfter(doAfterArgs);
|
||||
|
||||
@@ -89,7 +89,10 @@ public sealed class MechSystem : SharedMechSystem
|
||||
var doAfterEventArgs = new DoAfterEventArgs(args.User, component.BatteryRemovalDelay, target: uid, used: args.Target)
|
||||
{
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnUserMove = true
|
||||
BreakOnUserMove = true,
|
||||
RaiseOnTarget = true,
|
||||
RaiseOnUsed = false,
|
||||
RaiseOnUser = false,
|
||||
};
|
||||
|
||||
_doAfter.DoAfter(doAfterEventArgs, removeBattery);
|
||||
@@ -168,6 +171,9 @@ public sealed class MechSystem : SharedMechSystem
|
||||
{
|
||||
BreakOnUserMove = true,
|
||||
BreakOnStun = true,
|
||||
RaiseOnTarget = true,
|
||||
RaiseOnUsed = false,
|
||||
RaiseOnUser = false,
|
||||
};
|
||||
|
||||
_doAfter.DoAfter(doAfterEventArgs, mechEntryEvent);
|
||||
@@ -200,7 +206,10 @@ public sealed class MechSystem : SharedMechSystem
|
||||
{
|
||||
BreakOnUserMove = true,
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnStun = true
|
||||
BreakOnStun = true,
|
||||
RaiseOnTarget = true,
|
||||
RaiseOnUsed = false,
|
||||
RaiseOnUser = false,
|
||||
};
|
||||
|
||||
_doAfter.DoAfter(doAfterEventArgs, mechExitEvent);
|
||||
|
||||
@@ -22,7 +22,7 @@ public sealed class ResistLockerSystem : EntitySystem
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<ResistLockerComponent, ContainerRelayMovementEntityEvent>(OnRelayMovement);
|
||||
SubscribeLocalEvent<ResistLockerComponent, DoAfterEvent>(OnDoAfter);
|
||||
SubscribeLocalEvent<ResistLockerComponent, DoAfterEvent<LockerDoAfterData>>(OnDoAfter);
|
||||
SubscribeLocalEvent<ResistLockerComponent, EntRemovedFromContainerMessage>(OnRemoved);
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public sealed class ResistLockerSystem : EntitySystem
|
||||
|
||||
resistLockerComponent.IsResisting = true;
|
||||
_popupSystem.PopupEntity(Loc.GetString("resist-locker-component-start-resisting"), user, user, PopupType.Large);
|
||||
_doAfterSystem.DoAfter(doAfterEventArgs);
|
||||
_doAfterSystem.DoAfter(doAfterEventArgs, new LockerDoAfterData());
|
||||
}
|
||||
|
||||
private void OnRemoved(EntityUid uid, ResistLockerComponent component, EntRemovedFromContainerMessage args)
|
||||
@@ -67,7 +67,7 @@ public sealed class ResistLockerSystem : EntitySystem
|
||||
component.CancelToken = null;
|
||||
}
|
||||
|
||||
private void OnDoAfter(EntityUid uid, ResistLockerComponent component, DoAfterEvent args)
|
||||
private void OnDoAfter(EntityUid uid, ResistLockerComponent component, DoAfterEvent<LockerDoAfterData> args)
|
||||
{
|
||||
if (args.Cancelled)
|
||||
{
|
||||
@@ -96,4 +96,8 @@ public sealed class ResistLockerSystem : EntitySystem
|
||||
component.CancelToken = null;
|
||||
args.Handled = true;
|
||||
}
|
||||
|
||||
private struct LockerDoAfterData
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace Content.Server.Tiles
|
||||
|
||||
private void OnAfterInteract(EntityUid uid, FloorTileComponent component, AfterInteractEvent args)
|
||||
{
|
||||
if (!args.CanReach)
|
||||
if (!args.CanReach || args.Handled)
|
||||
return;
|
||||
|
||||
if (!TryComp<StackComponent>(uid, out var stack))
|
||||
@@ -72,6 +72,8 @@ namespace Content.Server.Tiles
|
||||
continue;
|
||||
|
||||
PlaceAt(mapGrid, location, currentTileDefinition.TileId, component.PlaceTileSound);
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (HasBaseTurf(currentTileDefinition, ContentTileDefinition.SpaceID))
|
||||
@@ -81,6 +83,8 @@ namespace Content.Server.Tiles
|
||||
gridXform.WorldPosition = locationMap.Position;
|
||||
location = new EntityCoordinates(mapGrid.Owner, Vector2.Zero);
|
||||
PlaceAt(mapGrid, location, _tileDefinitionManager[component.OutputTiles[0]].TileId, component.PlaceTileSound, mapGrid.TileSize / 2f);
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ public sealed class WeldableSystem : EntitySystem
|
||||
if (!CanWeld(uid, tool, user, component))
|
||||
return false;
|
||||
|
||||
var toolEvData = new ToolEventData(new WeldFinishedEvent(user, tool), targetEntity: uid);
|
||||
var toolEvData = new ToolEventData(new WeldFinishedEvent(user, tool), cancelledEv: new WeldCancelledEvent(),targetEntity: uid);
|
||||
component.BeingWelded = _toolSystem.UseTool(tool, user, uid, component.WeldingTime.Seconds, new[] { component.WeldingQuality }, toolEvData, fuel: component.FuelConsumption);
|
||||
|
||||
// Log attempt
|
||||
|
||||
Reference in New Issue
Block a user