mirror of
https://github.com/wega-team/ss14-wega.git
synced 2026-02-14 19:30:01 +01:00
Fixup Sericulture to be clonable (#38516)
* Add CloningEvent and an action entity prototype * Remove redundant action prototype from Yaml * Add a field that might be changed * CR * CR - guard statement and Dirty
This commit is contained in:
@@ -31,10 +31,10 @@ public sealed partial class SericultureComponent : Component
|
||||
/// <summary>
|
||||
/// The entity needed to actually preform sericulture. This will be granted (and removed) upon the entity's creation.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
[DataField]
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
[AutoNetworkedField]
|
||||
public EntProtoId Action;
|
||||
public EntProtoId Action = "ActionSericulture";
|
||||
|
||||
[AutoNetworkedField]
|
||||
[DataField("actionEntity")]
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Content.Shared.Actions;
|
||||
using Content.Shared.Cloning.Events;
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Nutrition.EntitySystems;
|
||||
using Robust.Shared.Serialization;
|
||||
@@ -32,6 +33,21 @@ public abstract partial class SharedSericultureSystem : EntitySystem
|
||||
SubscribeLocalEvent<SericultureComponent, ComponentShutdown>(OnCompRemove);
|
||||
SubscribeLocalEvent<SericultureComponent, SericultureActionEvent>(OnSericultureStart);
|
||||
SubscribeLocalEvent<SericultureComponent, SericultureDoAfterEvent>(OnSericultureDoAfter);
|
||||
SubscribeLocalEvent<SericultureComponent, CloningEvent>(OnClone);
|
||||
}
|
||||
|
||||
private void OnClone(Entity<SericultureComponent> ent, ref CloningEvent args)
|
||||
{
|
||||
if(!args.Settings.EventComponents.Contains(Factory.GetRegistration(ent.Comp.GetType()).Name))
|
||||
return;
|
||||
|
||||
var comp = EnsureComp<SericultureComponent>(args.CloneUid);
|
||||
comp.PopupText = ent.Comp.PopupText;
|
||||
comp.ProductionLength = ent.Comp.ProductionLength;
|
||||
comp.HungerCost = ent.Comp.HungerCost;
|
||||
comp.EntityProduced = ent.Comp.EntityProduced;
|
||||
comp.MinHungerThreshold = ent.Comp.MinHungerThreshold;
|
||||
Dirty(args.CloneUid, comp);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
- type: Hunger
|
||||
- type: Thirst
|
||||
- type: Sericulture
|
||||
action: ActionSericulture
|
||||
productionLength: 2
|
||||
entityProduced: MaterialWebSilk1
|
||||
hungerCost: 4 # Should total to 25 total silk on full hunger
|
||||
|
||||
Reference in New Issue
Block a user