Modular hammers (#792)

* modular hammer

* QoL modular assemble

* remove gattle big hammer

* crossbow crafting
This commit is contained in:
Ed
2025-01-22 23:53:36 +03:00
committed by GitHub
parent fc14c111aa
commit 2962085b9a
22 changed files with 516 additions and 343 deletions

View File

@@ -17,6 +17,7 @@ public abstract class CP14SharedModularCraftSystem : EntitySystem
{
base.Initialize();
SubscribeLocalEvent<CP14ModularCraftStartPointComponent, AfterInteractEvent>(OnAfterInteractStart);
SubscribeLocalEvent<CP14ModularCraftPartComponent, AfterInteractEvent>(OnAfterInteractPart);
SubscribeLocalEvent<CP14LabeledRenamingComponent, CP14LabeledEvent>(OnLabelRenaming);
}
@@ -29,7 +30,35 @@ public abstract class CP14SharedModularCraftSystem : EntitySystem
_label.Label(ent, null);
}
private void OnAfterInteractPart(Entity<CP14ModularCraftPartComponent> start, ref AfterInteractEvent args)
private void OnAfterInteractStart(Entity<CP14ModularCraftStartPointComponent> start, ref AfterInteractEvent args)
{
if (args.Handled || args.Target is null)
return;
if (!TryComp<CP14ModularCraftPartComponent>(args.Target, out var part))
return;
var xform = Transform(args.Target.Value);
if (xform.GridUid != xform.ParentUid)
return;
_doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager,
args.User,
part.DoAfter,
new CP14ModularCraftAddPartDoAfter(),
args.Target,
args.Target,
start)
{
BreakOnDamage = true,
BreakOnMove = true,
BreakOnDropItem = true,
});
args.Handled = true;
}
private void OnAfterInteractPart(Entity<CP14ModularCraftPartComponent> part, ref AfterInteractEvent args)
{
if (args.Handled || args.Target is null)
return;
@@ -43,11 +72,11 @@ public abstract class CP14SharedModularCraftSystem : EntitySystem
_doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager,
args.User,
start.Comp.DoAfter,
part.Comp.DoAfter,
new CP14ModularCraftAddPartDoAfter(),
args.Target,
args.Target,
start)
part)
{
BreakOnDamage = true,
BreakOnMove = true,