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