small food slicing cleanup (#22291)
* component cleanup * slice system cleanup * thank you entprotoid * webedit 1 * webedit 2 * bruh this shitcode has sliceable food with no slice * ok no persistence --------- Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
@@ -57,7 +57,7 @@ namespace Content.Server.Nutrition.EntitySystems
|
||||
return false;
|
||||
}
|
||||
|
||||
var sliceUid = Spawn(component.Slice, transform.Coordinates);
|
||||
var sliceUid = Slice(uid, user, component, transform);
|
||||
|
||||
var lostSolution = _solutionContainerSystem.SplitSolution(uid, solution,
|
||||
solution.Volume / FixedPoint2.New(component.Count));
|
||||
@@ -65,18 +65,6 @@ namespace Content.Server.Nutrition.EntitySystems
|
||||
// Fill new slice
|
||||
FillSlice(sliceUid, lostSolution);
|
||||
|
||||
var inCont = _containerSystem.IsEntityInContainer(component.Owner);
|
||||
if (inCont)
|
||||
{
|
||||
_handsSystem.PickupOrDrop(user, sliceUid);
|
||||
}
|
||||
else
|
||||
{
|
||||
var xform = Transform(sliceUid);
|
||||
_containerSystem.AttachParentToContainerOrGrid((sliceUid, xform));
|
||||
xform.LocalRotation = 0;
|
||||
}
|
||||
|
||||
_audio.PlayPvs(component.Sound, transform.Coordinates, AudioParams.Default.WithVolume(-2));
|
||||
|
||||
// Decrease size of item based on count - Could implement in the future
|
||||
@@ -99,11 +87,26 @@ namespace Content.Server.Nutrition.EntitySystems
|
||||
if (component.Count > 1)
|
||||
return true;
|
||||
|
||||
sliceUid = Spawn(component.Slice, transform.Coordinates);
|
||||
sliceUid = Slice(uid, user, component, transform);
|
||||
|
||||
// Fill last slice with the rest of the solution
|
||||
FillSlice(sliceUid, solution);
|
||||
|
||||
DeleteFood(uid, user);
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a new slice in the world and returns its entity.
|
||||
/// The solutions must be set afterwards.
|
||||
/// </summary>
|
||||
public EntityUid Slice(EntityUid uid, EntityUid user, SliceableFoodComponent? comp = null, TransformComponent? transform = null)
|
||||
{
|
||||
if (!Resolve(uid, ref comp, ref transform))
|
||||
return EntityUid.Invalid;
|
||||
|
||||
var sliceUid = Spawn(comp.Slice, transform.Coordinates);
|
||||
var inCont = _containerSystem.IsEntityInContainer(uid);
|
||||
if (inCont)
|
||||
{
|
||||
_handsSystem.PickupOrDrop(user, sliceUid);
|
||||
@@ -115,8 +118,7 @@ namespace Content.Server.Nutrition.EntitySystems
|
||||
xform.LocalRotation = 0;
|
||||
}
|
||||
|
||||
DeleteFood(uid, user);
|
||||
return true;
|
||||
return sliceUid;
|
||||
}
|
||||
|
||||
private void DeleteFood(EntityUid uid, EntityUid user)
|
||||
|
||||
Reference in New Issue
Block a user