Metamorphosis - FoodSequence 3 (#31012)
* setup some data * cheeseburger recipe * Update FoodSequenceSystem.cs * finalize cheseburger recipe * remove fun * return old taco sprites * full foodsequence data refactor * return tacos * well done * add cutlets to burger * chickenburger recipe * +2 burger recipes * more fun * Update brain.png * some slice produce added * documentation * watermelon * skewer work * flipping * tomato * skewer watermelon * Update skewer.yml * oopsie, ok, im go to sleep * fix checks * Update produce.yml * screwed * cheeeeeeeese * all cooked meat added * produce added * aaaaand suppermatter * key to Tag * More * proto string remove * raw snail * fix * Update FoodMetamorphableByAddingComponent.cs * fixes * fix3 * fififififx
@@ -1,7 +1,6 @@
|
||||
using Content.Shared.Nutrition.Components;
|
||||
using Content.Shared.Nutrition.EntitySystems;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Client.Nutrition.EntitySystems;
|
||||
|
||||
@@ -50,6 +49,7 @@ public sealed class ClientFoodSequenceSystem : SharedFoodSequenceSystem
|
||||
sprite.AddBlankLayer(index);
|
||||
sprite.LayerMapSet(keyCode, index);
|
||||
sprite.LayerSetSprite(index, state.Sprite);
|
||||
sprite.LayerSetScale(index, state.Scale);
|
||||
|
||||
//Offset the layer
|
||||
var layerPos = start.Comp.StartPosition;
|
||||
|
||||
@@ -4,10 +4,14 @@ using Content.Server.Nutrition.Components;
|
||||
using Content.Shared.Chemistry.EntitySystems;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Mobs.Systems;
|
||||
using Content.Shared.Nutrition;
|
||||
using Content.Shared.Nutrition.Components;
|
||||
using Content.Shared.Nutrition.EntitySystems;
|
||||
using Content.Shared.Nutrition.Prototypes;
|
||||
using Content.Shared.Popups;
|
||||
using Content.Shared.Tag;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Server.Nutrition.EntitySystems;
|
||||
@@ -20,12 +24,16 @@ public sealed class FoodSequenceSystem : SharedFoodSequenceSystem
|
||||
[Dependency] private readonly MobStateSystem _mobState = default!;
|
||||
[Dependency] private readonly TagSystem _tag = default!;
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
[Dependency] private readonly IPrototypeManager _proto = default!;
|
||||
[Dependency] private readonly TransformSystem _transform = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<FoodSequenceStartPointComponent, InteractUsingEvent>(OnInteractUsing);
|
||||
|
||||
SubscribeLocalEvent<FoodMetamorphableByAddingComponent, FoodSequenceIngredientAddedEvent>(OnIngredientAdded);
|
||||
}
|
||||
|
||||
private void OnInteractUsing(Entity<FoodSequenceStartPointComponent> ent, ref InteractUsingEvent args)
|
||||
@@ -34,47 +42,113 @@ public sealed class FoodSequenceSystem : SharedFoodSequenceSystem
|
||||
TryAddFoodElement(ent, (args.Used, sequenceElement), args.User);
|
||||
}
|
||||
|
||||
private void OnIngredientAdded(Entity<FoodMetamorphableByAddingComponent> ent, ref FoodSequenceIngredientAddedEvent args)
|
||||
{
|
||||
if (!TryComp<FoodSequenceStartPointComponent>(args.Start, out var start))
|
||||
return;
|
||||
|
||||
if (!_proto.TryIndex(args.Proto, out var elementProto))
|
||||
return;
|
||||
|
||||
if (!ent.Comp.OnlyFinal || elementProto.Final || start.FoodLayers.Count == start.MaxLayers)
|
||||
{
|
||||
TryMetamorph((ent, start));
|
||||
}
|
||||
}
|
||||
|
||||
private bool TryMetamorph(Entity<FoodSequenceStartPointComponent> start)
|
||||
{
|
||||
List<MetamorphRecipePrototype> availableRecipes = new();
|
||||
foreach (var recipe in _proto.EnumeratePrototypes<MetamorphRecipePrototype>())
|
||||
{
|
||||
if (recipe.Key != start.Comp.Key)
|
||||
continue;
|
||||
|
||||
bool allowed = true;
|
||||
foreach (var rule in recipe.Rules)
|
||||
{
|
||||
if (!rule.Check(_proto, EntityManager, start, start.Comp.FoodLayers))
|
||||
{
|
||||
allowed = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (allowed)
|
||||
availableRecipes.Add(recipe);
|
||||
}
|
||||
|
||||
if (availableRecipes.Count <= 0)
|
||||
return true;
|
||||
|
||||
Metamorf(start, _random.Pick(availableRecipes)); //In general, if there's more than one recipe, the yml-guys screwed up. Maybe some kind of unit test is needed.
|
||||
QueueDel(start);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void Metamorf(Entity<FoodSequenceStartPointComponent> start, MetamorphRecipePrototype recipe)
|
||||
{
|
||||
var result = SpawnAtPosition(recipe.Result, Transform(start).Coordinates);
|
||||
|
||||
//Try putting in container
|
||||
_transform.DropNextTo(result, (start, Transform(start)));
|
||||
|
||||
if (!_solutionContainer.TryGetSolution(result, start.Comp.Solution, out var resultSoln, out var resultSolution))
|
||||
return;
|
||||
|
||||
if (!_solutionContainer.TryGetSolution(start.Owner, start.Comp.Solution, out var startSoln, out var startSolution))
|
||||
return;
|
||||
|
||||
_solutionContainer.RemoveAllSolution(resultSoln.Value); //Remove all YML reagents
|
||||
resultSoln.Value.Comp.Solution.MaxVolume = startSoln.Value.Comp.Solution.MaxVolume;
|
||||
_solutionContainer.TryAddSolution(resultSoln.Value, startSolution);
|
||||
|
||||
MergeFlavorProfiles(start, result);
|
||||
MergeTrash(start, result);
|
||||
MergeTags(start, result);
|
||||
}
|
||||
|
||||
private bool TryAddFoodElement(Entity<FoodSequenceStartPointComponent> start, Entity<FoodSequenceElementComponent> element, EntityUid? user = null)
|
||||
{
|
||||
FoodSequenceElementEntry? elementData = null;
|
||||
foreach (var entry in element.Comp.Entries)
|
||||
{
|
||||
if (entry.Key == start.Comp.Key)
|
||||
{
|
||||
elementData = entry.Value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (elementData is null)
|
||||
// we can't add a live mouse to a burger.
|
||||
if (!TryComp<FoodComponent>(element, out var elementFood))
|
||||
return false;
|
||||
if (elementFood.RequireDead && _mobState.IsAlive(element))
|
||||
return false;
|
||||
|
||||
if (TryComp<FoodComponent>(element, out var elementFood) && elementFood.RequireDead)
|
||||
//looking for a suitable FoodSequence prototype
|
||||
ProtoId<FoodSequenceElementPrototype> elementProto = string.Empty;
|
||||
foreach (var pair in element.Comp.Entries)
|
||||
{
|
||||
if (_mobState.IsAlive(element))
|
||||
return false;
|
||||
if (pair.Key == start.Comp.Key)
|
||||
{
|
||||
elementProto = pair.Value;
|
||||
}
|
||||
}
|
||||
if (!_proto.TryIndex(elementProto, out var elementIndexed))
|
||||
return false;
|
||||
|
||||
//if we run out of space, we can still put in one last, final finishing element.
|
||||
if (start.Comp.FoodLayers.Count >= start.Comp.MaxLayers && !elementData.Final || start.Comp.Finished)
|
||||
if (start.Comp.FoodLayers.Count >= start.Comp.MaxLayers && !elementIndexed.Final || start.Comp.Finished)
|
||||
{
|
||||
if (user is not null)
|
||||
_popup.PopupEntity(Loc.GetString("food-sequence-no-space"), start, user.Value);
|
||||
return false;
|
||||
}
|
||||
|
||||
//If no specific sprites are specified, standard sprites will be used.
|
||||
if (elementData.Sprite is null && element.Comp.Sprite is not null)
|
||||
elementData.Sprite = element.Comp.Sprite;
|
||||
//Generate new visual layer
|
||||
var flip = start.Comp.AllowHorizontalFlip && _random.Prob(0.5f);
|
||||
var layer = new FoodSequenceVisualLayer(elementIndexed,
|
||||
_random.Pick(elementIndexed.Sprites),
|
||||
new Vector2(flip ? -1 : 1, 1),
|
||||
new Vector2(
|
||||
_random.NextFloat(start.Comp.MinLayerOffset.X, start.Comp.MaxLayerOffset.X),
|
||||
_random.NextFloat(start.Comp.MinLayerOffset.Y, start.Comp.MaxLayerOffset.Y))
|
||||
);
|
||||
|
||||
elementData.LocalOffset = new Vector2(
|
||||
_random.NextFloat(start.Comp.MinLayerOffset.X,start.Comp.MaxLayerOffset.X),
|
||||
_random.NextFloat(start.Comp.MinLayerOffset.Y,start.Comp.MaxLayerOffset.Y));
|
||||
|
||||
start.Comp.FoodLayers.Add(elementData);
|
||||
start.Comp.FoodLayers.Add(layer);
|
||||
Dirty(start);
|
||||
|
||||
if (elementData.Final)
|
||||
if (elementIndexed.Final)
|
||||
start.Comp.Finished = true;
|
||||
|
||||
UpdateFoodName(start);
|
||||
@@ -82,6 +156,10 @@ public sealed class FoodSequenceSystem : SharedFoodSequenceSystem
|
||||
MergeFlavorProfiles(start, element);
|
||||
MergeTrash(start, element);
|
||||
MergeTags(start, element);
|
||||
|
||||
var ev = new FoodSequenceIngredientAddedEvent(start, element, elementProto, user);
|
||||
RaiseLocalEvent(start, ev);
|
||||
|
||||
QueueDel(element);
|
||||
return true;
|
||||
}
|
||||
@@ -96,17 +174,23 @@ public sealed class FoodSequenceSystem : SharedFoodSequenceSystem
|
||||
if (start.Comp.ContentSeparator is not null)
|
||||
separator = Loc.GetString(start.Comp.ContentSeparator);
|
||||
|
||||
HashSet<LocId> existedContentNames = new();
|
||||
HashSet<ProtoId<FoodSequenceElementPrototype>> existedContentNames = new();
|
||||
foreach (var layer in start.Comp.FoodLayers)
|
||||
{
|
||||
if (layer.Name is not null && !existedContentNames.Contains(layer.Name.Value))
|
||||
existedContentNames.Add(layer.Name.Value);
|
||||
if (!existedContentNames.Contains(layer.Proto))
|
||||
existedContentNames.Add(layer.Proto);
|
||||
}
|
||||
|
||||
var nameCounter = 1;
|
||||
foreach (var name in existedContentNames)
|
||||
foreach (var proto in existedContentNames)
|
||||
{
|
||||
content.Append(Loc.GetString(name));
|
||||
if (!_proto.TryIndex(proto, out var protoIndexed))
|
||||
continue;
|
||||
|
||||
if (protoIndexed.Name is null)
|
||||
continue;
|
||||
|
||||
content.Append(Loc.GetString(protoIndexed.Name.Value));
|
||||
|
||||
if (nameCounter < existedContentNames.Count)
|
||||
content.Append(separator);
|
||||
@@ -121,19 +205,25 @@ public sealed class FoodSequenceSystem : SharedFoodSequenceSystem
|
||||
_metaData.SetEntityName(start, newName);
|
||||
}
|
||||
|
||||
private void MergeFoodSolutions(Entity<FoodSequenceStartPointComponent> start, Entity<FoodSequenceElementComponent> element)
|
||||
private void MergeFoodSolutions(EntityUid start, EntityUid element)
|
||||
{
|
||||
if (!_solutionContainer.TryGetSolution(start.Owner, start.Comp.Solution, out var startSolutionEntity, out var startSolution))
|
||||
if (!TryComp<FoodComponent>(start, out var startFood))
|
||||
return;
|
||||
|
||||
if (!_solutionContainer.TryGetSolution(element.Owner, element.Comp.Solution, out _, out var elementSolution))
|
||||
if (!TryComp<FoodComponent>(element, out var elementFood))
|
||||
return;
|
||||
|
||||
if (!_solutionContainer.TryGetSolution(start, startFood.Solution, out var startSolutionEntity, out var startSolution))
|
||||
return;
|
||||
|
||||
if (!_solutionContainer.TryGetSolution(element, elementFood.Solution, out _, out var elementSolution))
|
||||
return;
|
||||
|
||||
startSolution.MaxVolume += elementSolution.MaxVolume;
|
||||
_solutionContainer.TryAddSolution(startSolutionEntity.Value, elementSolution);
|
||||
}
|
||||
|
||||
private void MergeFlavorProfiles(Entity<FoodSequenceStartPointComponent> start, Entity<FoodSequenceElementComponent> element)
|
||||
private void MergeFlavorProfiles(EntityUid start, EntityUid element)
|
||||
{
|
||||
if (!TryComp<FlavorProfileComponent>(start, out var startProfile))
|
||||
return;
|
||||
@@ -148,7 +238,7 @@ public sealed class FoodSequenceSystem : SharedFoodSequenceSystem
|
||||
}
|
||||
}
|
||||
|
||||
private void MergeTrash(Entity<FoodSequenceStartPointComponent> start, Entity<FoodSequenceElementComponent> element)
|
||||
private void MergeTrash(EntityUid start, EntityUid element)
|
||||
{
|
||||
if (!TryComp<FoodComponent>(start, out var startFood))
|
||||
return;
|
||||
@@ -162,13 +252,13 @@ public sealed class FoodSequenceSystem : SharedFoodSequenceSystem
|
||||
}
|
||||
}
|
||||
|
||||
private void MergeTags(Entity<FoodSequenceStartPointComponent> start, Entity<FoodSequenceElementComponent> element)
|
||||
private void MergeTags(EntityUid start, EntityUid element)
|
||||
{
|
||||
if (!TryComp<TagComponent>(element, out var elementTags))
|
||||
return;
|
||||
|
||||
EnsureComp<TagComponent>(start.Owner);
|
||||
EnsureComp<TagComponent>(start);
|
||||
|
||||
_tag.TryAddTags(start.Owner, elementTags.Tags);
|
||||
_tag.TryAddTags(start, elementTags.Tags);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
using Content.Shared.Nutrition.EntitySystems;
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Shared.Nutrition.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Attempts to metamorphose a modular food when a new ingredient is added.
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent, Access(typeof(SharedFoodSequenceSystem))]
|
||||
public sealed partial class FoodMetamorphableByAddingComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// if true, the metamorphosis will only be attempted when the sequence ends, not when each element is added.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool OnlyFinal = true;
|
||||
}
|
||||
@@ -1,55 +1,25 @@
|
||||
using System.Numerics;
|
||||
using Content.Shared.Nutrition.EntitySystems;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Utility;
|
||||
using Content.Shared.Nutrition.Prototypes;
|
||||
using Content.Shared.Tag;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared.Nutrition.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Tndicates that this entity can be inserted into FoodSequence, which will transfer all reagents to the target.
|
||||
/// Indicates that this entity can be inserted into FoodSequence, which will transfer all reagents to the target.
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(SharedFoodSequenceSystem))]
|
||||
public sealed partial class FoodSequenceElementComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// the same object can be used in different sequences, and it will have a different sprite in different sequences.
|
||||
/// The same object can be used in different sequences, and it will have a different data in then.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public Dictionary<string, FoodSequenceElementEntry> Entries = new();
|
||||
public Dictionary<ProtoId<TagPrototype>, ProtoId<FoodSequenceElementPrototype>> Entries = new();
|
||||
|
||||
/// <summary>
|
||||
/// which solution we will add to the main dish
|
||||
/// Which solution we will add to the main dish
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public string Solution = "food";
|
||||
|
||||
/// <summary>
|
||||
/// state used to generate the appearance of the added layer
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public SpriteSpecifier? Sprite;
|
||||
}
|
||||
|
||||
[DataRecord, Serializable, NetSerializable]
|
||||
public sealed class FoodSequenceElementEntry
|
||||
{
|
||||
/// <summary>
|
||||
/// A localized name piece to build into the item name generator.
|
||||
/// </summary>
|
||||
public LocId? Name { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// overriding default sprite
|
||||
/// </summary>
|
||||
public SpriteSpecifier? Sprite { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// If the layer is the final one, it can be added over the limit, but no other layers can be added after it.
|
||||
/// </summary>
|
||||
public bool Final { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// the shear of a particular layer. Allows a little "randomization" of each layer.
|
||||
/// </summary>
|
||||
public Vector2 LocalOffset { get; set; } = Vector2.Zero;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
using System.Numerics;
|
||||
using Content.Shared.Nutrition.EntitySystems;
|
||||
using Content.Shared.Nutrition.Prototypes;
|
||||
using Content.Shared.Tag;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared.Nutrition.Components;
|
||||
|
||||
@@ -14,7 +19,7 @@ public sealed partial class FoodSequenceStartPointComponent : Component
|
||||
/// A key that determines which types of food elements can be attached to a food.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public string Key = string.Empty;
|
||||
public ProtoId<TagPrototype> Key = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// The maximum number of layers of food that can be placed on this item.
|
||||
@@ -22,62 +27,20 @@ public sealed partial class FoodSequenceStartPointComponent : Component
|
||||
[DataField]
|
||||
public int MaxLayers = 10;
|
||||
|
||||
/// <summary>
|
||||
/// Start shift from the center of the sprite where the first layer of food will be placed.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public Vector2 StartPosition = Vector2.Zero;
|
||||
|
||||
/// <summary>
|
||||
/// Shift from the start position applied to each subsequent layer.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public Vector2 Offset = Vector2.Zero;
|
||||
|
||||
/// <summary>
|
||||
/// Can we put more layers?
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool Finished;
|
||||
|
||||
/// <summary>
|
||||
/// list of sprite states to be displayed on this object.
|
||||
/// </summary>
|
||||
[DataField, AutoNetworkedField]
|
||||
public List<FoodSequenceElementEntry> FoodLayers = new();
|
||||
|
||||
public HashSet<string> RevealedLayers = new();
|
||||
|
||||
/// <summary>
|
||||
/// target layer, where new layers will be added. This allows you to control the order of generative layers and static layers.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public string TargetLayerMap = "foodSequenceLayers";
|
||||
|
||||
/// <summary>
|
||||
/// If true, the generative layers will be placed in reverse order.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool InverseLayers;
|
||||
|
||||
/// <summary>
|
||||
/// each layer will get a random offset in the specified range
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public Vector2 MaxLayerOffset = Vector2.Zero;
|
||||
|
||||
/// <summary>
|
||||
/// each layer will get a random offset in the specified range
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public Vector2 MinLayerOffset = Vector2.Zero;
|
||||
|
||||
/// <summary>
|
||||
/// solution where reagents will be added from newly added ingredients
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public string Solution = "food";
|
||||
|
||||
#region name generation
|
||||
|
||||
/// <summary>
|
||||
/// LocId with a name generation pattern.
|
||||
/// </summary>
|
||||
@@ -101,4 +64,96 @@ public sealed partial class FoodSequenceStartPointComponent : Component
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public LocId? NameSuffix;
|
||||
|
||||
#endregion
|
||||
|
||||
#region visual
|
||||
|
||||
/// <summary>
|
||||
/// list of sprite states to be displayed on this object.
|
||||
/// </summary>
|
||||
[DataField, AutoNetworkedField]
|
||||
public List<FoodSequenceVisualLayer> FoodLayers = new();
|
||||
|
||||
/// <summary>
|
||||
/// If true, the generative layers will be placed in reverse order.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool InverseLayers;
|
||||
|
||||
/// <summary>
|
||||
/// target layer, where new layers will be added. This allows you to control the order of generative layers and static layers.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public string TargetLayerMap = "foodSequenceLayers";
|
||||
|
||||
/// <summary>
|
||||
/// Start shift from the center of the sprite where the first layer of food will be placed.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public Vector2 StartPosition = Vector2.Zero;
|
||||
|
||||
/// <summary>
|
||||
/// Shift from the start position applied to each subsequent layer.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public Vector2 Offset = Vector2.Zero;
|
||||
|
||||
/// <summary>
|
||||
/// each layer will get a random offset in the specified range
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public Vector2 MaxLayerOffset = Vector2.Zero;
|
||||
|
||||
/// <summary>
|
||||
/// each layer will get a random offset in the specified range
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public Vector2 MinLayerOffset = Vector2.Zero;
|
||||
|
||||
[DataField]
|
||||
public bool AllowHorizontalFlip = true;
|
||||
|
||||
public HashSet<string> RevealedLayers = new();
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// class that synchronizes with the client
|
||||
/// Stores all the necessary information for rendering the FoodSequence element
|
||||
/// </summary>
|
||||
[DataRecord, Serializable, NetSerializable]
|
||||
public record struct FoodSequenceVisualLayer
|
||||
{
|
||||
/// <summary>
|
||||
/// reference to the original prototype of the layer. Used to edit visual layers.
|
||||
/// </summary>
|
||||
public ProtoId<FoodSequenceElementPrototype> Proto;
|
||||
|
||||
/// <summary>
|
||||
/// Sprite rendered in sequence
|
||||
/// </summary>
|
||||
public SpriteSpecifier? Sprite { get; set; } = SpriteSpecifier.Invalid;
|
||||
|
||||
/// <summary>
|
||||
/// Relative size of the sprite displayed in FoodSequence
|
||||
/// </summary>
|
||||
public Vector2 Scale { get; set; } = Vector2.One;
|
||||
|
||||
/// <summary>
|
||||
/// The offset of a particular layer. Allows a little position randomization of each layer.
|
||||
/// </summary>
|
||||
public Vector2 LocalOffset { get; set; } = Vector2.Zero;
|
||||
|
||||
public FoodSequenceVisualLayer(ProtoId<FoodSequenceElementPrototype> proto,
|
||||
SpriteSpecifier? sprite,
|
||||
Vector2 scale,
|
||||
Vector2 offset)
|
||||
{
|
||||
Proto = proto;
|
||||
Sprite = sprite;
|
||||
Scale = scale;
|
||||
LocalOffset = offset;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Nutrition.Components;
|
||||
using Content.Shared.Nutrition.Prototypes;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared.Nutrition;
|
||||
@@ -67,3 +70,8 @@ public record struct SliceFoodEvent();
|
||||
public sealed partial class SliceFoodDoAfterEvent : SimpleDoAfterEvent
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Raised on FoodSequence start element entity when new ingredient is added to FoodSequence
|
||||
/// </summary>
|
||||
public record struct FoodSequenceIngredientAddedEvent(EntityUid Start, EntityUid Element, ProtoId<FoodSequenceElementPrototype> Proto, EntityUid? User = null);
|
||||
|
||||
218
Content.Shared/Nutrition/FoodMetamorphRules/FoodMetamorphRule.cs
Normal file
@@ -0,0 +1,218 @@
|
||||
using Content.Shared.Chemistry.Components.SolutionManager;
|
||||
using Content.Shared.Chemistry.EntitySystems;
|
||||
using Content.Shared.Chemistry.Reagent;
|
||||
using Content.Shared.Destructible.Thresholds;
|
||||
using Content.Shared.Nutrition.Components;
|
||||
using Content.Shared.Tag;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared.Nutrition.FoodMetamorphRules;
|
||||
|
||||
/// <summary>
|
||||
/// abstract rules that are used to verify the correct foodSequence for recipe
|
||||
/// </summary>
|
||||
[ImplicitDataDefinitionForInheritors]
|
||||
[Serializable, NetSerializable]
|
||||
public abstract partial class FoodMetamorphRule
|
||||
{
|
||||
public abstract bool Check(IPrototypeManager protoMan, EntityManager entMan, EntityUid food, List<FoodSequenceVisualLayer> ingredients);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The requirement that the sequence be within the specified size limit
|
||||
/// </summary>
|
||||
[UsedImplicitly]
|
||||
[Serializable, NetSerializable]
|
||||
public sealed partial class SequenceLength : FoodMetamorphRule
|
||||
{
|
||||
[DataField(required: true)]
|
||||
public MinMax Range;
|
||||
|
||||
public override bool Check(IPrototypeManager protoMan, EntityManager entMan, EntityUid food, List<FoodSequenceVisualLayer> ingredients)
|
||||
{
|
||||
return ingredients.Count <= Range.Max && ingredients.Count >= Range.Min;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A requirement that the last element of the sequence have one or all of the required tags
|
||||
/// </summary>
|
||||
[UsedImplicitly]
|
||||
[Serializable, NetSerializable]
|
||||
public sealed partial class LastElementHasTags : FoodMetamorphRule
|
||||
{
|
||||
[DataField(required: true)]
|
||||
public List<ProtoId<TagPrototype>> Tags = new ();
|
||||
|
||||
[DataField]
|
||||
public bool NeedAll = true;
|
||||
|
||||
public override bool Check(IPrototypeManager protoMan, EntityManager entMan, EntityUid food, List<FoodSequenceVisualLayer> ingredients)
|
||||
{
|
||||
var lastIngredient = ingredients[ingredients.Count - 1];
|
||||
|
||||
if (!protoMan.TryIndex(lastIngredient.Proto, out var protoIndexed))
|
||||
return false;
|
||||
|
||||
foreach (var tag in Tags)
|
||||
{
|
||||
var containsTag = protoIndexed.Tags.Contains(tag);
|
||||
|
||||
if (NeedAll && !containsTag)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!NeedAll && containsTag)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return NeedAll;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A requirement that the specified sequence element have one or all of the required tags
|
||||
/// </summary>
|
||||
[UsedImplicitly]
|
||||
[Serializable, NetSerializable]
|
||||
public sealed partial class ElementHasTags : FoodMetamorphRule
|
||||
{
|
||||
[DataField(required: true)]
|
||||
public int ElementNumber = 0;
|
||||
|
||||
[DataField(required: true)]
|
||||
public List<ProtoId<TagPrototype>> Tags = new ();
|
||||
|
||||
[DataField]
|
||||
public bool NeedAll = true;
|
||||
|
||||
public override bool Check(IPrototypeManager protoMan, EntityManager entMan, EntityUid food, List<FoodSequenceVisualLayer> ingredients)
|
||||
{
|
||||
if (ingredients.Count < ElementNumber + 1)
|
||||
return false;
|
||||
|
||||
if (!protoMan.TryIndex(ingredients[ElementNumber].Proto, out var protoIndexed))
|
||||
return false;
|
||||
|
||||
foreach (var tag in Tags)
|
||||
{
|
||||
var containsTag = protoIndexed.Tags.Contains(tag);
|
||||
|
||||
if (NeedAll && !containsTag)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!NeedAll && containsTag)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return NeedAll;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// requirement that the food contains certain reagents (e.g. sauces)
|
||||
/// </summary>
|
||||
[UsedImplicitly]
|
||||
[Serializable, NetSerializable]
|
||||
public sealed partial class FoodHasReagent : FoodMetamorphRule
|
||||
{
|
||||
[DataField(required: true)]
|
||||
public ProtoId<ReagentPrototype> Reagent = new();
|
||||
|
||||
[DataField(required: true)]
|
||||
public MinMax Count;
|
||||
|
||||
[DataField]
|
||||
public string Solution = "food";
|
||||
|
||||
public override bool Check(IPrototypeManager protoMan, EntityManager entMan, EntityUid food, List<FoodSequenceVisualLayer> ingredients)
|
||||
{
|
||||
if (!entMan.TryGetComponent<SolutionContainerManagerComponent>(food, out var solMan))
|
||||
return false;
|
||||
|
||||
var solutionMan = entMan.System<SharedSolutionContainerSystem>();
|
||||
|
||||
if (!solutionMan.TryGetSolution(food, Solution, out var foodSoln, out var foodSolution))
|
||||
return false;
|
||||
|
||||
foreach (var (id, quantity) in foodSoln.Value.Comp.Solution.Contents)
|
||||
{
|
||||
if (id.Prototype != Reagent.Id)
|
||||
continue;
|
||||
|
||||
if (quantity < Count.Min || quantity > Count.Max)
|
||||
break;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A requirement that there be X ingredients in the sequence that have one or all of the specified tags.
|
||||
/// </summary>
|
||||
[UsedImplicitly]
|
||||
[Serializable, NetSerializable]
|
||||
public sealed partial class IngredientsWithTags : FoodMetamorphRule
|
||||
{
|
||||
[DataField(required: true)]
|
||||
public List<ProtoId<TagPrototype>> Tags = new ();
|
||||
|
||||
[DataField(required: true)]
|
||||
public MinMax Count = new();
|
||||
|
||||
[DataField]
|
||||
public bool NeedAll = true;
|
||||
|
||||
public override bool Check(IPrototypeManager protoMan, EntityManager entMan, EntityUid food, List<FoodSequenceVisualLayer> ingredients)
|
||||
{
|
||||
var count = 0;
|
||||
foreach (var ingredient in ingredients)
|
||||
{
|
||||
if (!protoMan.TryIndex(ingredient.Proto, out var protoIndexed))
|
||||
continue;
|
||||
|
||||
var allowed = false;
|
||||
if (NeedAll)
|
||||
{
|
||||
allowed = true;
|
||||
foreach (var tag in Tags)
|
||||
{
|
||||
if (!protoIndexed.Tags.Contains(tag))
|
||||
{
|
||||
allowed = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
allowed = false;
|
||||
foreach (var tag in Tags)
|
||||
{
|
||||
if (protoIndexed.Tags.Contains(tag))
|
||||
{
|
||||
allowed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (allowed)
|
||||
count++;
|
||||
}
|
||||
|
||||
return count >= Count.Min && count <= Count.Max;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
using Content.Shared.Tag;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared.Nutrition.Prototypes;
|
||||
|
||||
/// <summary>
|
||||
/// Unique data storage block for different FoodSequence layers
|
||||
/// </summary>
|
||||
[Prototype("foodSequenceElement")]
|
||||
public sealed partial class FoodSequenceElementPrototype : IPrototype
|
||||
{
|
||||
[IdDataField] public string ID { get; private set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// sprite options. A random one will be selected and used to display the layer.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public List<SpriteSpecifier> Sprites { get; private set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// A localized name piece to build into the item name generator.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public LocId? Name { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the layer is the final one, it can be added over the limit, but no other layers can be added after it.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool Final { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Tag list of this layer. Used for recipes for food metamorphosis.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public List<ProtoId<TagPrototype>> Tags { get; set; } = new();
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using Content.Shared.Nutrition.FoodMetamorphRules;
|
||||
using Content.Shared.Tag;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared.Nutrition.Prototypes;
|
||||
|
||||
/// <summary>
|
||||
/// Stores a recipe so that FoodSequence assembled in the right sequence can turn into a special meal.
|
||||
/// </summary>
|
||||
[Prototype]
|
||||
public sealed partial class MetamorphRecipePrototype : IPrototype
|
||||
{
|
||||
[IdDataField] public string ID { get; private set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The key of the FoodSequence being collected. For example “burger” “taco” etc.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public ProtoId<TagPrototype> Key = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// The entity that will be created as a result of this recipe, and into which all the reagents will be transferred.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public EntProtoId Result = default!;
|
||||
|
||||
/// <summary>
|
||||
/// A sequence of rules that must be followed for FoodSequence to metamorphose into a special food.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public List<FoodMetamorphRule> Rules = new();
|
||||
}
|
||||
@@ -4,7 +4,7 @@ food-sequence-no-space = You can't put any more!
|
||||
|
||||
food-sequence-content-chicken = chicken
|
||||
food-sequence-content-duck = duck
|
||||
food-sequence-content-crab = crabs
|
||||
food-sequence-content-crab = crab
|
||||
food-sequence-content-dragon = dragon
|
||||
food-sequence-content-snake = snake
|
||||
food-sequence-content-xeno = xeno
|
||||
@@ -83,6 +83,7 @@ food-sequence-burger-content-raw-meat = raw
|
||||
food-sequence-burger-content-meat = meaty
|
||||
food-sequence-burger-content-carp = carpo
|
||||
food-sequence-burger-content-bear = bear
|
||||
food-sequence-burger-content-crab = crabs
|
||||
food-sequence-burger-content-penguin = peng
|
||||
food-sequence-burger-content-corgi = corgi
|
||||
food-sequence-burger-content-goliath = goli
|
||||
|
||||
@@ -68,14 +68,9 @@
|
||||
flavors:
|
||||
- people
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Mobs/Species/Human/organs.rsi
|
||||
state: brain
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-brain
|
||||
taco:
|
||||
name: food-sequence-content-brain
|
||||
Burger: Brain
|
||||
Taco: Brain
|
||||
|
||||
- type: entity
|
||||
id: OrganHumanEyes
|
||||
@@ -96,15 +91,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
state: tongue
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Mobs/Species/Human/organs.rsi
|
||||
state: tongue
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-tongue
|
||||
taco:
|
||||
name: food-sequence-content-tongue
|
||||
|
||||
- type: entity
|
||||
id: OrganHumanAppendix
|
||||
@@ -125,15 +111,6 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
state: ears
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Mobs/Species/Human/organs.rsi
|
||||
state: ears
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-ears
|
||||
taco:
|
||||
name: food-sequence-content-ears
|
||||
|
||||
- type: entity
|
||||
id: OrganHumanLungs
|
||||
@@ -216,15 +193,6 @@
|
||||
groups:
|
||||
- id: Food
|
||||
- id: Drink
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Mobs/Species/Human/organs.rsi
|
||||
state: stomach
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-stomach
|
||||
taco:
|
||||
name: food-sequence-content-stomach
|
||||
|
||||
- type: entity
|
||||
id: OrganHumanLiver
|
||||
@@ -240,15 +208,6 @@
|
||||
groups:
|
||||
- id: Alcohol
|
||||
rateModifier: 0.1 # removes alcohol very slowly along with the stomach removing it as a drink
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Mobs/Species/Human/organs.rsi
|
||||
state: liver
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-liver
|
||||
taco:
|
||||
name: food-sequence-content-liver
|
||||
|
||||
- type: entity
|
||||
id: OrganHumanKidneys
|
||||
|
||||
@@ -1724,20 +1724,10 @@
|
||||
sprite: Mobs/Effects/onfire.rsi
|
||||
normalState: Mouse_burning
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Mobs/Animals/mouse.rsi
|
||||
state: dead-0
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-rat
|
||||
taco:
|
||||
name: food-sequence-content-rat
|
||||
skewer:
|
||||
name: food-sequence-content-rat
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/skewer.rsi
|
||||
state: skewer-rat
|
||||
|
||||
Taco: RatTaco
|
||||
Burger: RatBurger
|
||||
Skewer: RatSkewer
|
||||
|
||||
- type: entity
|
||||
parent: MobMouse
|
||||
@@ -1794,10 +1784,6 @@
|
||||
- type: Item
|
||||
size: Tiny
|
||||
heldPrefix: 1
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Mobs/Animals/mouse.rsi
|
||||
state: dead-1
|
||||
|
||||
- type: entity
|
||||
parent: MobMouse
|
||||
@@ -1827,10 +1813,6 @@
|
||||
- type: Item
|
||||
size: Tiny
|
||||
heldPrefix: 2
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Mobs/Animals/mouse.rsi
|
||||
state: dead-2
|
||||
|
||||
- type: entity
|
||||
name: cancer mouse
|
||||
@@ -3257,15 +3239,6 @@
|
||||
- type: FireVisuals
|
||||
sprite: Mobs/Effects/onfire.rsi
|
||||
normalState: Mouse_burning
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Mobs/Animals/hamster.rsi
|
||||
state: dead-0
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-hamster
|
||||
taco:
|
||||
name: food-sequence-content-hamster
|
||||
|
||||
- type: entity
|
||||
name: pig
|
||||
|
||||
@@ -785,11 +785,6 @@
|
||||
tags:
|
||||
- Slice
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/Baked/cake.rsi
|
||||
state: suppermatter-shard
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-suppermatter
|
||||
taco:
|
||||
name: food-sequence-content-suppermatter
|
||||
Taco: Suppermatter
|
||||
Burger: SuppermatterBurger
|
||||
|
||||
@@ -39,19 +39,20 @@
|
||||
- type: Sprite
|
||||
drawdepth: Mobs
|
||||
noRot: true
|
||||
sprite: Objects/Consumable/Food/burger.rsi
|
||||
sprite: Objects/Consumable/Food/burger_sequence.rsi
|
||||
layers:
|
||||
- state: bun_bottom
|
||||
- map: ["foodSequenceLayers"]
|
||||
- type: FoodSequenceStartPoint
|
||||
key: burger
|
||||
key: Burger
|
||||
maxLayers: 10
|
||||
startPosition: 0, 0
|
||||
offset: 0, 0.1
|
||||
offset: 0, 0.07
|
||||
minLayerOffset: -0.05, 0
|
||||
maxLayerOffset: 0.05, 0
|
||||
nameGeneration: food-sequence-burger-gen
|
||||
- type: Appearance
|
||||
- type: FoodMetamorphableByAdding
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
@@ -69,7 +70,7 @@
|
||||
components:
|
||||
- type: Food
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Food/burger.rsi
|
||||
sprite: Objects/Consumable/Food/burger_sequence.rsi
|
||||
layers:
|
||||
- state: bun_top
|
||||
- type: SolutionContainerManager
|
||||
@@ -80,12 +81,8 @@
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 3.3 # 1/2 of a bun
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/burger.rsi
|
||||
state: bun_top
|
||||
entries:
|
||||
burger:
|
||||
final: true
|
||||
Burger: BunTopBurger
|
||||
|
||||
# Base
|
||||
|
||||
|
||||
@@ -642,14 +642,9 @@
|
||||
tags:
|
||||
- Slice
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/ingredients.rsi
|
||||
state: cheesewedge
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-cheese
|
||||
taco:
|
||||
name: food-sequence-content-cheese
|
||||
Taco: CheeseTaco
|
||||
Burger: CheeseBurger
|
||||
|
||||
- type: entity
|
||||
name: chèvre log
|
||||
@@ -700,15 +695,6 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Slice
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/ingredients.rsi
|
||||
state: chevredisk
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-chevre
|
||||
taco:
|
||||
name: food-sequence-content-chevre
|
||||
|
||||
- type: entity
|
||||
name: tofu
|
||||
@@ -757,15 +743,6 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Slice
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/ingredients.rsi
|
||||
state: tofu
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-tofu
|
||||
taco:
|
||||
name: food-sequence-content-tofu
|
||||
|
||||
- type: entity
|
||||
name: burned mess
|
||||
@@ -822,15 +799,6 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Ingredient
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/cocoa.rsi
|
||||
state: produce-beans
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-cocoa
|
||||
taco:
|
||||
name: food-sequence-content-cocoa
|
||||
|
||||
- type: entity
|
||||
name: raw croissant
|
||||
|
||||
@@ -142,15 +142,6 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/laughin_pea.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-pea
|
||||
taco:
|
||||
name: food-sequence-content-pea
|
||||
|
||||
- type: entity
|
||||
name: tower-cap log
|
||||
@@ -213,7 +204,7 @@
|
||||
- type: Produce
|
||||
seedId: nettle
|
||||
- type: MeleeChemicalInjector
|
||||
transferAmount: 3 #To OD someone you would need 2 nettles and about 6-7 hits, the DOT is likely to crit them if they are running away with almost no health
|
||||
transferAmount: 3 #TODO someone you would need 2 nettles and about 6-7 hits, the DOT is likely to crit them if they are running away with almost no health
|
||||
solution: food
|
||||
pierceArmor: false
|
||||
- type: Extractable
|
||||
@@ -288,14 +279,9 @@
|
||||
- Fruit
|
||||
- Banana
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/banana.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-banana
|
||||
taco:
|
||||
name: food-sequence-content-banana
|
||||
Burger: Banana
|
||||
Taco: Banana
|
||||
|
||||
- type: entity
|
||||
name: mimana
|
||||
@@ -334,14 +320,9 @@
|
||||
tags:
|
||||
- Fruit
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/mimana.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-mimana
|
||||
taco:
|
||||
name: food-sequence-content-mimana
|
||||
Burger: Mimana
|
||||
Taco: Mimana
|
||||
|
||||
- type: entity
|
||||
name: banana peel
|
||||
@@ -481,14 +462,9 @@
|
||||
- ReagentId: Oculine
|
||||
Quantity: 2
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/carrot.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-carrot
|
||||
taco:
|
||||
name: food-sequence-content-carrot
|
||||
Burger: CarrotBurger
|
||||
Taco: Carrot
|
||||
|
||||
- type: entity
|
||||
name: cabbage
|
||||
@@ -516,14 +492,9 @@
|
||||
tags:
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/cabbage.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-cabbage
|
||||
taco:
|
||||
name: food-sequence-content-cabbage
|
||||
Burger: CabbageBurger
|
||||
Taco: Cabbage
|
||||
|
||||
- type: entity
|
||||
name: garlic
|
||||
@@ -553,14 +524,9 @@
|
||||
tags:
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/garlic.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-garlic
|
||||
taco:
|
||||
name: food-sequence-content-garlic
|
||||
Burger: GarlicBurger
|
||||
Taco: Garlic
|
||||
|
||||
- type: entity
|
||||
name: lemon
|
||||
@@ -594,14 +560,9 @@
|
||||
- Lemon
|
||||
- Fruit
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/lemon.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-lemon
|
||||
taco:
|
||||
name: food-sequence-content-lemon
|
||||
Burger: Lemon
|
||||
Taco: Lemon
|
||||
|
||||
- type: entity
|
||||
name: lemoon
|
||||
@@ -634,14 +595,9 @@
|
||||
tags:
|
||||
- Fruit
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/lemoon.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-lemoon
|
||||
taco:
|
||||
name: food-sequence-content-lemoon
|
||||
Burger: Lemoon
|
||||
Taco: Lemoon
|
||||
|
||||
- type: entity
|
||||
name: lime
|
||||
@@ -666,14 +622,9 @@
|
||||
- Lime
|
||||
- Fruit
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/lime.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-lime
|
||||
taco:
|
||||
name: food-sequence-content-lime
|
||||
Burger: Lime
|
||||
Taco: Lime
|
||||
|
||||
- type: entity
|
||||
name: orange
|
||||
@@ -697,14 +648,9 @@
|
||||
tags:
|
||||
- Fruit
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/orange.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-orange
|
||||
taco:
|
||||
name: food-sequence-content-orange
|
||||
Burger: Orange
|
||||
Taco: Orange
|
||||
|
||||
- type: entity
|
||||
name: pineapple
|
||||
@@ -774,14 +720,9 @@
|
||||
- Potato
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/potato.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-potato
|
||||
taco:
|
||||
name: food-sequence-content-potato
|
||||
Burger: Potato
|
||||
Taco: Potato
|
||||
|
||||
|
||||
- type: entity
|
||||
@@ -839,19 +780,10 @@
|
||||
- Fruit
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/tomato.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-tomato
|
||||
taco:
|
||||
name: food-sequence-content-tomato
|
||||
skewer:
|
||||
name: food-sequence-content-tomato
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/skewer.rsi
|
||||
state: skewer-tomato
|
||||
Skewer: TomatoSkewer
|
||||
Burger: Tomato
|
||||
Taco: Tomato
|
||||
|
||||
- type: entity
|
||||
name: blue tomato
|
||||
@@ -898,14 +830,9 @@
|
||||
- Fruit
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/blue_tomato.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-tomato
|
||||
taco:
|
||||
name: food-sequence-content-tomato
|
||||
Burger: BlueTomato
|
||||
Taco: BlueTomato
|
||||
|
||||
- type: entity
|
||||
name: blood tomato
|
||||
@@ -950,19 +877,10 @@
|
||||
- Fruit # Fuck you they're a fruit
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/blood_tomato.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-tomato
|
||||
taco:
|
||||
name: food-sequence-content-tomato
|
||||
skewer:
|
||||
name: food-sequence-content-tomato
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/skewer.rsi
|
||||
state: skewer-tomato
|
||||
Skewer: TomatoSkewer
|
||||
Burger: BloodTomato
|
||||
Taco: BloodTomato
|
||||
|
||||
- type: entity
|
||||
name: eggplant
|
||||
@@ -1022,14 +940,9 @@
|
||||
tags:
|
||||
- Fruit
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/apple.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-apple
|
||||
taco:
|
||||
name: food-sequence-content-apple
|
||||
Burger: Apple
|
||||
Taco: Apple
|
||||
|
||||
- type: entity
|
||||
name: golden apple
|
||||
@@ -1067,14 +980,9 @@
|
||||
tags:
|
||||
- Fruit
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/golden_apple.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-apple
|
||||
taco:
|
||||
name: food-sequence-content-apple
|
||||
Burger: GoldenApple
|
||||
Taco: GoldenApple
|
||||
|
||||
- type: entity
|
||||
name: cocoa pod
|
||||
@@ -1108,15 +1016,6 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Fruit
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/cocoa.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-cocoa
|
||||
taco:
|
||||
name: food-sequence-content-cocoa
|
||||
|
||||
- type: entity
|
||||
name: ear of corn
|
||||
@@ -1156,19 +1055,10 @@
|
||||
- ReagentId: Enzyme
|
||||
Quantity: 2
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/corn.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-corn
|
||||
taco:
|
||||
name: food-sequence-content-corn
|
||||
skewer:
|
||||
name: food-sequence-content-corn
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/skewer.rsi
|
||||
state: skewer-corn
|
||||
Burger: Corn
|
||||
Taco: Corn
|
||||
Skewer: CornSkewer
|
||||
|
||||
- type: entity
|
||||
name: corn cob
|
||||
@@ -1191,15 +1081,6 @@
|
||||
reagents:
|
||||
- ReagentId: Cornmeal
|
||||
Quantity: 10
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/corn.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-corn
|
||||
taco:
|
||||
name: food-sequence-content-corn
|
||||
|
||||
- type: entity
|
||||
name: onion
|
||||
@@ -1231,15 +1112,6 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/onion.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-onion
|
||||
taco:
|
||||
name: food-sequence-content-onion
|
||||
|
||||
- type: entity
|
||||
name: red onion
|
||||
@@ -1271,15 +1143,6 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/onion_red.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-onion
|
||||
taco:
|
||||
name: food-sequence-content-onion
|
||||
|
||||
- type: entity
|
||||
name: chanterelle cluster
|
||||
@@ -1300,20 +1163,6 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/chanterelle.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-mushroom
|
||||
taco:
|
||||
name: food-sequence-content-mushroom
|
||||
skewer:
|
||||
name: food-sequence-content-mushroom
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/skewer.rsi
|
||||
state: skewer-mushroom
|
||||
|
||||
# Slices
|
||||
|
||||
@@ -1358,14 +1207,9 @@
|
||||
- Fruit
|
||||
- Slice
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/pineapple.rsi
|
||||
state: slice
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-pineapple
|
||||
taco:
|
||||
name: food-sequence-content-pineapple
|
||||
Burger: PineappleSliceBurger
|
||||
Taco: PineappleSlice
|
||||
|
||||
- type: entity
|
||||
name: onion slice
|
||||
@@ -1394,14 +1238,9 @@
|
||||
- Vegetable
|
||||
- Slice
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/onion.rsi
|
||||
state: slice
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-onion
|
||||
taco:
|
||||
name: food-sequence-content-onion
|
||||
Burger: OnionSliceBurger
|
||||
Taco: OnionSlice
|
||||
|
||||
- type: entity
|
||||
name: red onion slice
|
||||
@@ -1430,14 +1269,9 @@
|
||||
- Vegetable
|
||||
- Slice
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/onion_red.rsi
|
||||
state: slice
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-onion
|
||||
taco:
|
||||
name: food-sequence-content-onion
|
||||
Burger: OnionRedSliceBurger
|
||||
Taco: OnionRedSlice
|
||||
|
||||
- type: entity
|
||||
name: chili pepper
|
||||
@@ -1467,19 +1301,10 @@
|
||||
tags:
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/chili.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-chili
|
||||
taco:
|
||||
name: food-sequence-content-chili
|
||||
skewer:
|
||||
name: food-sequence-content-chili
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/skewer.rsi
|
||||
state: skewer-pepper
|
||||
Taco: ChiliPepper
|
||||
Burger: ChiliPepper
|
||||
Skewer: ChiliPepperSkewer
|
||||
|
||||
- type: entity
|
||||
name: chilly pepper
|
||||
@@ -1507,19 +1332,10 @@
|
||||
- type: Produce
|
||||
seedId: chilly
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/chilly.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-chilly
|
||||
taco:
|
||||
name: food-sequence-content-chilly
|
||||
skewer:
|
||||
name: food-sequence-content-chilly
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/skewer.rsi
|
||||
state: skewer-bluepepper
|
||||
Taco: ChillyPepper
|
||||
Burger: ChillyPepper
|
||||
Skewer: ChillyPepperSkewer
|
||||
|
||||
- type: entity
|
||||
name: aloe
|
||||
@@ -1549,14 +1365,9 @@
|
||||
tags:
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/aloe.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-aloe
|
||||
taco:
|
||||
name: food-sequence-content-aloe
|
||||
Taco: Aloe
|
||||
Burger: Aloe
|
||||
|
||||
- type: entity
|
||||
name: poppy
|
||||
@@ -1590,14 +1401,9 @@
|
||||
tags:
|
||||
- Flower # TODO add "RedFlower" or "Poppy" tag, when other color flowers will be
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/poppy.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-poppy
|
||||
taco:
|
||||
name: food-sequence-content-poppy
|
||||
Taco: Poppy
|
||||
Burger: Poppy
|
||||
|
||||
- type: entity
|
||||
name: lily
|
||||
@@ -1627,14 +1433,9 @@
|
||||
tags:
|
||||
- Flower
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/lily.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-lily
|
||||
taco:
|
||||
name: food-sequence-content-lily
|
||||
Taco: Lily
|
||||
Burger: Lily
|
||||
|
||||
- type: entity
|
||||
name: lingzhi
|
||||
@@ -1662,19 +1463,9 @@
|
||||
- type: Extractable
|
||||
grindableSolutionName: food
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/lingzhi.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-mushroom
|
||||
taco:
|
||||
name: food-sequence-content-mushroom
|
||||
skewer:
|
||||
name: food-sequence-content-mushroom
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/skewer.rsi
|
||||
state: skewer-mushroom
|
||||
Taco: Lingzhi
|
||||
Burger: Lingzhi
|
||||
|
||||
- type: entity
|
||||
name: ambrosia vulgaris
|
||||
@@ -1716,11 +1507,8 @@
|
||||
- Ambrosia
|
||||
- type: FoodSequenceElement
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-ambrosia
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/ambrosia_vulgaris.rsi
|
||||
state: produce
|
||||
Taco: AmbrosiaVulgaris
|
||||
Burger: AmbrosiaVulgarisBurger
|
||||
|
||||
- type: entity
|
||||
name: ambrosia deus
|
||||
@@ -1759,14 +1547,9 @@
|
||||
tags:
|
||||
- Ambrosia
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/ambrosia_deus.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-ambrosia
|
||||
taco:
|
||||
name: food-sequence-content-ambrosia
|
||||
Taco: AmbrosiaDeus
|
||||
Burger: AmbrosiaDeusBurger
|
||||
|
||||
- type: entity
|
||||
name: galaxythistle
|
||||
@@ -1795,14 +1578,9 @@
|
||||
- Galaxythistle
|
||||
- Fruit # Probably?
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/galaxythistle.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-galaxy
|
||||
taco:
|
||||
name: food-sequence-content-galaxy
|
||||
Taco: Galaxythistle
|
||||
Burger: GalaxythistleBurger
|
||||
|
||||
- type: entity
|
||||
name: glasstle
|
||||
@@ -1868,14 +1646,9 @@
|
||||
tags:
|
||||
- Galaxythistle
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/glasstle.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-glasstle
|
||||
taco:
|
||||
name: food-sequence-content-glasstle
|
||||
Taco: Glasstle
|
||||
Burger: GlasstleBurger
|
||||
|
||||
- type: entity
|
||||
name: fly amanita
|
||||
@@ -1903,19 +1676,9 @@
|
||||
grindableSolutionName: food
|
||||
- type: BadFood
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/fly_amanita.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-mushroom
|
||||
taco:
|
||||
name: food-sequence-content-mushroom
|
||||
skewer:
|
||||
name: food-sequence-content-mushroom
|
||||
sprite:
|
||||
sprite: Objects/Consumable/Food/skewer.rsi
|
||||
state: skewer-mushroom
|
||||
Taco: FlyAmanita
|
||||
Burger: FlyAmanita
|
||||
|
||||
- type: entity
|
||||
name: gatfruit
|
||||
@@ -1946,14 +1709,9 @@
|
||||
tags:
|
||||
- Fruit # It's in the name
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/gatfruit.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-gatfruit
|
||||
taco:
|
||||
name: food-sequence-content-gatfruit
|
||||
Taco: Gatfruit
|
||||
Burger: GatfruitBurger
|
||||
|
||||
- type: entity
|
||||
name: capfruit
|
||||
@@ -1984,14 +1742,9 @@
|
||||
tags:
|
||||
- Fruit
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/capfruit.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-capfruit
|
||||
taco:
|
||||
name: food-sequence-content-capfruit
|
||||
Taco: Capfruit
|
||||
Burger: CapfruitBurger
|
||||
|
||||
- type: entity
|
||||
name: capfruit
|
||||
@@ -2048,14 +1801,9 @@
|
||||
tags:
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/soybeans.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-soy
|
||||
taco:
|
||||
name: food-sequence-content-soy
|
||||
Taco: Soybeans
|
||||
Burger: SoybeansBurger
|
||||
|
||||
- type: entity
|
||||
name: spaceman's trumpet
|
||||
@@ -2085,14 +1833,9 @@
|
||||
- type: Instrument #hehe trumpet
|
||||
program: 56
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/spacemans_trumpet.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-spacemans-trumpet
|
||||
taco:
|
||||
name: food-sequence-content-spacemans-trumpet
|
||||
Taco: SpacemansTrumpet
|
||||
Burger: SpacemansTrumpetBurger
|
||||
|
||||
- type: entity
|
||||
name: koibean
|
||||
@@ -2122,14 +1865,9 @@
|
||||
tags:
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/koibean.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-koibean
|
||||
taco:
|
||||
name: food-sequence-content-koibean
|
||||
Taco: Koibean
|
||||
Burger: KoibeanBurger
|
||||
|
||||
- type: entity
|
||||
name: watermelon
|
||||
@@ -2227,14 +1965,10 @@
|
||||
- Fruit
|
||||
- Slice
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/watermelon.rsi
|
||||
state: slice
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-watermelon
|
||||
taco:
|
||||
name: food-sequence-content-watermelon
|
||||
Burger: WatermelonSliceBurger
|
||||
Taco: WatermelonSlice
|
||||
Skewer: WatermelonSliceSkewer
|
||||
|
||||
- type: entity
|
||||
name: grapes
|
||||
@@ -2298,14 +2032,9 @@
|
||||
tags:
|
||||
- Fruit
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/berries.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-berries
|
||||
taco:
|
||||
name: food-sequence-content-berries
|
||||
Taco: Berries
|
||||
Burger: BerriesBurger
|
||||
|
||||
- type: entity
|
||||
name: bungo fruit
|
||||
@@ -2341,14 +2070,9 @@
|
||||
tags:
|
||||
- Fruit
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/bungo.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-bungo
|
||||
taco:
|
||||
name: food-sequence-content-bungo
|
||||
Taco: Bungo
|
||||
Burger: Bungo
|
||||
|
||||
- type: entity
|
||||
name: bungo pit
|
||||
@@ -2404,14 +2128,9 @@
|
||||
tags:
|
||||
- Vegetable
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/pea.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-pea
|
||||
taco:
|
||||
name: food-sequence-content-pea
|
||||
Taco: Pea
|
||||
Burger: Pea
|
||||
|
||||
- type: entity
|
||||
name: pumpkin
|
||||
@@ -2608,14 +2327,9 @@
|
||||
tags:
|
||||
- Fruit
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/cherry.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-content-cherry
|
||||
taco:
|
||||
name: food-sequence-content-cherry
|
||||
Taco: Cherry
|
||||
Burger: Cherry
|
||||
|
||||
- type: entity
|
||||
name: cherry pit
|
||||
|
||||
@@ -13,11 +13,34 @@
|
||||
layers:
|
||||
- state: skewer
|
||||
- map: ["foodSequenceLayers"]
|
||||
- type: LandAtCursor
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape: !type:PolygonShape
|
||||
vertices:
|
||||
- -0.40,-0.20
|
||||
- -0.30,-0.30
|
||||
- 0.50,0.10
|
||||
- 0.40,0.20
|
||||
density: 20
|
||||
mask:
|
||||
- ItemMask
|
||||
restitution: 0.3
|
||||
friction: 0.2
|
||||
- type: DamageOtherOnHit
|
||||
damage:
|
||||
types:
|
||||
Piercing: 6
|
||||
- type: ThrowingAngle
|
||||
angle: 245
|
||||
- type: EmbeddableProjectile
|
||||
offset: -0.15,0.0
|
||||
- type: MeleeWeapon
|
||||
wideAnimationRotation: -120
|
||||
damage:
|
||||
types:
|
||||
Piercing: 4
|
||||
Piercing: 8
|
||||
angle: 0
|
||||
animation: WeaponArcThrust
|
||||
soundHit:
|
||||
@@ -35,10 +58,11 @@
|
||||
canReact: false # Dont want cause reactions inside skewers after merging ingredients
|
||||
maxVol: 0
|
||||
- type: FoodSequenceStartPoint
|
||||
key: skewer
|
||||
key: Skewer
|
||||
maxLayers: 4
|
||||
startPosition: -0.27, -0.19
|
||||
inverseLayers: true
|
||||
offset: 0.2, 0.1
|
||||
nameGeneration: food-sequence-skewer-gen
|
||||
contentSeparator: ", "
|
||||
allowHorizontalFlip: false
|
||||
@@ -11,7 +11,7 @@
|
||||
- type: Food
|
||||
transferAmount: 3
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Food/taco.rsi
|
||||
sprite: Objects/Consumable/Food/taco_sequence.rsi
|
||||
layers:
|
||||
- state: tacoshell_back
|
||||
- map: ["foodSequenceLayers"]
|
||||
@@ -25,12 +25,161 @@
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 6.66
|
||||
- type: FoodSequenceStartPoint
|
||||
key: taco
|
||||
key: Taco
|
||||
maxLayers: 3
|
||||
startPosition: -0.2, 0
|
||||
offset: 0.1, 0
|
||||
startPosition: -0.15, 0
|
||||
offset: 0.15, 0
|
||||
minLayerOffset: 0, 0
|
||||
maxLayerOffset: 0, 0.05
|
||||
nameGeneration: food-sequence-taco-gen
|
||||
contentSeparator: ", "
|
||||
- type: Appearance
|
||||
- type: Appearance
|
||||
|
||||
# Old tacos
|
||||
|
||||
- type: entity
|
||||
parent: FoodInjectableBase
|
||||
id: FoodTacoBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: FlavorProfile
|
||||
flavors:
|
||||
- meaty
|
||||
- cheesy
|
||||
- type: Food
|
||||
transferAmount: 3
|
||||
- type: Sprite
|
||||
sprite: Objects/Consumable/Food/taco.rsi
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 15
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 6
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 4
|
||||
- type: Item
|
||||
sprite: Objects/Consumable/Food/taco.rsi
|
||||
storedRotation: -90
|
||||
- type: Tag
|
||||
tags:
|
||||
- Meat
|
||||
|
||||
- type: entity
|
||||
name: beef taco
|
||||
parent: FoodTacoBase
|
||||
id: FoodTacoBeef
|
||||
description: A very basic and run of the mill beef taco, now with cheese!
|
||||
components:
|
||||
- type: Food
|
||||
- type: Sprite
|
||||
state: beeftaco
|
||||
|
||||
- type: entity
|
||||
name: chicken taco
|
||||
parent: FoodTacoBase
|
||||
id: FoodTacoChicken
|
||||
description: A very basic and run of the mill chicken taco, now with cheese!
|
||||
components:
|
||||
- type: Food
|
||||
- type: Sprite
|
||||
state: chickentaco
|
||||
|
||||
- type: entity
|
||||
name: fish taco
|
||||
parent: FoodTacoBase
|
||||
id: FoodTacoFish
|
||||
description: Sounds kinda gross, but it's actually not that bad.
|
||||
components:
|
||||
- type: FlavorProfile
|
||||
flavors:
|
||||
- onion
|
||||
- fishy
|
||||
- type: Food
|
||||
- type: Sprite
|
||||
state: fishtaco
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 20
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 10
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 6
|
||||
|
||||
- type: entity
|
||||
name: rat taco
|
||||
parent: FoodTacoBase
|
||||
id: FoodTacoRat
|
||||
description: Yeah, that looks about right...
|
||||
components:
|
||||
- type: Food
|
||||
- type: Sprite
|
||||
state: rattaco
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 15
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 6
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 4
|
||||
|
||||
- type: entity
|
||||
name: beef taco supreme
|
||||
parent: FoodTacoBase
|
||||
id: FoodTacoBeefSupreme
|
||||
description: It's like a regular beef taco, but surpeme!
|
||||
components:
|
||||
- type: Food
|
||||
- type: Sprite
|
||||
state: beeftacosupreme
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 26
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 14
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 6
|
||||
|
||||
- type: entity
|
||||
name: chicken taco supreme
|
||||
parent: FoodTacoBase
|
||||
id: FoodTacoChickenSupreme
|
||||
description: It's like a regular chicken taco, but surpeme!
|
||||
components:
|
||||
- type: Food
|
||||
- type: Sprite
|
||||
state: chickentacosupreme
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 26
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 14
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 6
|
||||
|
||||
- type: entity
|
||||
name: soft taco
|
||||
parent: FoodMealBase
|
||||
id: FoodMealSoftTaco
|
||||
description: Take a bite!
|
||||
components:
|
||||
- type: FlavorProfile
|
||||
flavors:
|
||||
- cheesy
|
||||
- tomato
|
||||
- meaty
|
||||
- onion
|
||||
- type: Sprite
|
||||
state: softtaco
|
||||
- type: Tag
|
||||
tags:
|
||||
- Meat
|
||||
@@ -17,15 +17,6 @@
|
||||
reagents:
|
||||
- ReagentId: THC
|
||||
Quantity: 15
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/cannabis.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-cannabis
|
||||
taco:
|
||||
name: food-sequence-content-cannabis
|
||||
|
||||
|
||||
- type: entity
|
||||
@@ -106,15 +97,6 @@
|
||||
# Quantity: 1
|
||||
- ReagentId: Psicodine
|
||||
Quantity: 0.6
|
||||
- type: FoodSequenceElement
|
||||
sprite:
|
||||
sprite: Objects/Specific/Hydroponics/rainbow_cannabis.rsi
|
||||
state: produce
|
||||
entries:
|
||||
burger:
|
||||
name: food-sequence-burger-content-rainbow-cannabis
|
||||
taco:
|
||||
name: food-sequence-content-rainbow-cannabis
|
||||
|
||||
- type: entity
|
||||
name: dried rainbow cannabis leaves
|
||||
|
||||
1104
Resources/Prototypes/Recipes/Cooking/food_sequence_element.yml
Normal file
@@ -75,7 +75,7 @@
|
||||
FoodTomato: 1
|
||||
FoodOnionSlice: 2
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
- type: microwaveMealRecipe #Added to metamorph recipes
|
||||
id: RecipeBrainBurger
|
||||
name: brain burger recipe
|
||||
result: FoodBurgerBrain
|
||||
@@ -94,7 +94,7 @@
|
||||
FoodMeat: 1
|
||||
ClothingHeadHatCatEars: 1
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
- type: microwaveMealRecipe #Added to metamorph recipes
|
||||
id: RecipeCheeseburger
|
||||
name: cheeseburger recipe
|
||||
result: FoodBurgerCheese
|
||||
@@ -104,7 +104,7 @@
|
||||
FoodMeat: 1
|
||||
FoodCheeseSlice: 1
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
- type: microwaveMealRecipe #Added to metamorph recipes
|
||||
id: RecipeChickenSandwich
|
||||
name: chicken sandwich recipe
|
||||
result: FoodBurgerChicken
|
||||
@@ -133,7 +133,7 @@
|
||||
FoodBreadBun: 1
|
||||
FoodMeatCorgi: 1
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
- type: microwaveMealRecipe #Added to metamorph recipes
|
||||
id: RecipeCrabBurger
|
||||
name: crab burger recipe
|
||||
result: FoodBurgerCrab
|
||||
@@ -158,7 +158,7 @@
|
||||
CrayonGreen: 1
|
||||
Flare: 1
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
- type: microwaveMealRecipe #Added to metamorph recipes
|
||||
id: RecipeDuckBurger
|
||||
name: duck sandwich recipe
|
||||
result: FoodBurgerDuck
|
||||
@@ -1892,6 +1892,74 @@
|
||||
solids:
|
||||
FoodDoughTortillaFlat: 1 # one third of a standard bread dough recipe
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
id: RecipeTacoBeef
|
||||
name: beef taco recipe
|
||||
result: FoodTacoBeef
|
||||
time: 10
|
||||
solids:
|
||||
FoodTacoShell: 1
|
||||
FoodMeatCutlet: 1
|
||||
FoodCheeseSlice: 1
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
id: RecipeTacoChicken
|
||||
name: chicken taco recipe
|
||||
result: FoodTacoChicken
|
||||
time: 10
|
||||
solids:
|
||||
FoodTacoShell: 1
|
||||
FoodMeatChickenCutlet: 1
|
||||
FoodCheeseSlice: 1
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
id: RecipeTacoFish
|
||||
name: fish taco recipe
|
||||
result: FoodTacoFish
|
||||
time: 10
|
||||
solids:
|
||||
FoodTacoShell: 1
|
||||
FoodMeatFish: 1
|
||||
FoodOnionSlice: 2
|
||||
FoodTomato: 1
|
||||
FoodCabbage: 1
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
id: RecipeTacoRat
|
||||
name: rat taco recipe
|
||||
result: FoodTacoRat
|
||||
time: 10
|
||||
solids:
|
||||
FoodTacoShell: 1
|
||||
FoodCheeseSlice: 1
|
||||
FoodMeatRat: 1
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
id: RecipeTacoBeefSupreme
|
||||
name: beef taco supreme recipe
|
||||
result: FoodTacoBeefSupreme
|
||||
time: 10
|
||||
solids:
|
||||
FoodTacoShell: 1
|
||||
FoodCheeseSlice: 1
|
||||
FoodMeatCutlet: 1
|
||||
FoodTomato: 1
|
||||
FoodCabbage: 1
|
||||
FoodOnionSlice: 2
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
id: RecipeTacoChickenSupreme
|
||||
name: beef taco supreme recipe
|
||||
result: FoodTacoChickenSupreme
|
||||
time: 10
|
||||
solids:
|
||||
FoodTacoShell: 1
|
||||
FoodCheeseSlice: 1
|
||||
FoodMeatChickenCutlet: 1
|
||||
FoodTomato: 1
|
||||
FoodCabbage: 1
|
||||
FoodOnionSlice: 2
|
||||
|
||||
- type: microwaveMealRecipe
|
||||
id: RecipeCroissant
|
||||
name: croissant recipe
|
||||
|
||||
125
Resources/Prototypes/Recipes/Cooking/sequence_metamorph.yml
Normal file
@@ -0,0 +1,125 @@
|
||||
# rules for transferring recipes from microwaveMealRecipe
|
||||
# 1) leave room for variation. If the original recipe calls for 2 pieces of meat, allow players to put in 2-3 pieces.
|
||||
# 2) max SequenceLength must be 1 element greater than the minimum ingredient set requires. This will allow you to put 1 poison fly or 1 other ingredient in different recipes and the recipes will still be valid.
|
||||
|
||||
- type: metamorphRecipe
|
||||
id: FoodBurgerCheese
|
||||
key: Burger
|
||||
result: FoodBurgerCheese
|
||||
rules:
|
||||
- !type:SequenceLength
|
||||
range:
|
||||
min: 3
|
||||
max: 4
|
||||
- !type:IngredientsWithTags # 1 meat cutlet
|
||||
tags:
|
||||
- Cooked
|
||||
- Cutlet
|
||||
- Meat
|
||||
count:
|
||||
min: 1
|
||||
max: 2
|
||||
- !type:IngredientsWithTags # 1 cheese
|
||||
tags:
|
||||
- Cheese
|
||||
count:
|
||||
min: 1
|
||||
max: 2
|
||||
- !type:LastElementHasTags # last bun
|
||||
tags:
|
||||
- Bun
|
||||
|
||||
- type: metamorphRecipe
|
||||
id: FoodBurgerChicken
|
||||
key: Burger
|
||||
result: FoodBurgerChicken
|
||||
rules:
|
||||
- !type:SequenceLength
|
||||
range:
|
||||
min: 2
|
||||
max: 3
|
||||
- !type:IngredientsWithTags # 1 chicken meat
|
||||
tags:
|
||||
- Cooked
|
||||
- Cutlet
|
||||
- Meat
|
||||
- Chicken
|
||||
count:
|
||||
min: 1
|
||||
max: 2
|
||||
- !type:FoodHasReagent # 5 +- 2 mayo
|
||||
reagent: Mayo
|
||||
count:
|
||||
min: 3
|
||||
max: 7
|
||||
- !type:LastElementHasTags # last bun
|
||||
tags:
|
||||
- Bun
|
||||
|
||||
- type: metamorphRecipe
|
||||
id: FoodBurgerCrab
|
||||
key: Burger
|
||||
result: FoodBurgerCrab
|
||||
rules:
|
||||
- !type:SequenceLength
|
||||
range:
|
||||
min: 3
|
||||
max: 4
|
||||
- !type:IngredientsWithTags # 2 crab meat
|
||||
tags:
|
||||
- Cooked
|
||||
- Meat
|
||||
- Crab
|
||||
count:
|
||||
min: 2
|
||||
max: 3
|
||||
- !type:LastElementHasTags # last bun
|
||||
tags:
|
||||
- Bun
|
||||
|
||||
- type: metamorphRecipe
|
||||
id: FoodBurgerDuck
|
||||
key: Burger
|
||||
result: FoodBurgerDuck
|
||||
rules:
|
||||
- !type:SequenceLength
|
||||
range:
|
||||
min: 3
|
||||
max: 4
|
||||
- !type:IngredientsWithTags # 1 duck meat
|
||||
tags:
|
||||
- Cooked
|
||||
- Cutlet
|
||||
- Meat
|
||||
- Duck
|
||||
count:
|
||||
min: 1
|
||||
max: 2
|
||||
- !type:IngredientsWithTags # 1 cheese
|
||||
tags:
|
||||
- Cheese
|
||||
count:
|
||||
min: 1
|
||||
max: 2
|
||||
- !type:LastElementHasTags # last bun
|
||||
tags:
|
||||
- Bun
|
||||
|
||||
- type: metamorphRecipe
|
||||
id: FoodBurgerBrain
|
||||
key: Burger
|
||||
result: FoodBurgerBrain
|
||||
rules:
|
||||
- !type:SequenceLength
|
||||
range:
|
||||
min: 2
|
||||
max: 3
|
||||
- !type:IngredientsWithTags # 1 brain
|
||||
tags:
|
||||
- Brain
|
||||
count:
|
||||
min: 1
|
||||
max: 2
|
||||
- !type:LastElementHasTags # last bun
|
||||
tags:
|
||||
- Bun
|
||||
@@ -222,6 +222,9 @@
|
||||
- type: Tag
|
||||
id: BoxHug
|
||||
|
||||
- type: Tag
|
||||
id: Brain
|
||||
|
||||
- type: Tag
|
||||
id: BrassInstrument
|
||||
|
||||
@@ -243,12 +246,18 @@
|
||||
- type: Tag
|
||||
id: Bucket
|
||||
|
||||
- type: Tag
|
||||
id: Burger
|
||||
|
||||
- type: Tag
|
||||
id: BulletFoam
|
||||
|
||||
- type: Tag
|
||||
id: Burnt
|
||||
|
||||
- type: Tag
|
||||
id: Bun
|
||||
|
||||
- type: Tag
|
||||
id: BypassDropChecks
|
||||
|
||||
@@ -367,6 +376,9 @@
|
||||
- type: Tag
|
||||
id: Chicken
|
||||
|
||||
- type: Tag
|
||||
id: Cheese
|
||||
|
||||
# Allowed to control someone wearing a Chef's hat if inside their hat.
|
||||
- type: Tag
|
||||
id: ChefPilot
|
||||
@@ -443,6 +455,9 @@
|
||||
- type: Tag
|
||||
id: Cow
|
||||
|
||||
- type: Tag
|
||||
id: Crab
|
||||
|
||||
- type: Tag
|
||||
id: Crayon
|
||||
|
||||
@@ -1261,6 +1276,9 @@
|
||||
- type: Tag
|
||||
id: TabletopBoard
|
||||
|
||||
- type: Tag
|
||||
id: Taco
|
||||
|
||||
- type: Tag
|
||||
id: TabletopPiece
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 461 B After Width: | Height: | Size: 471 B |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from tgstation and modified by Swept and potato1234x at https://github.com/tgstation/tgstation/commit/40d75cc340c63582fb66ce15bf75a36115f6bdaa, ian.png created by EmoGarbage, mothroach.png created by TurboTracker",
|
||||
"copyright": "Taken from tgstation and modified by Swept and potato1234x at https://github.com/tgstation/tgstation/commit/40d75cc340c63582fb66ce15bf75a36115f6bdaa, ian.png created by EmoGarbage, mothroach.png created by TurboTracker, screwed by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
@@ -28,12 +28,6 @@
|
||||
{
|
||||
"name": "bun"
|
||||
},
|
||||
{
|
||||
"name": "bun_top"
|
||||
},
|
||||
{
|
||||
"name": "bun_bottom"
|
||||
},
|
||||
{
|
||||
"name": "c"
|
||||
},
|
||||
@@ -161,6 +155,9 @@
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "screwed"
|
||||
},
|
||||
{
|
||||
"name": "spell"
|
||||
},
|
||||
|
||||
|
After Width: | Height: | Size: 895 B |
|
Before Width: | Height: | Size: 319 B After Width: | Height: | Size: 319 B |
|
Before Width: | Height: | Size: 367 B After Width: | Height: | Size: 367 B |
|
After Width: | Height: | Size: 302 B |
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Created by TheShuEd. Bun taken from tgstation and modified by Swept and potato1234x at https://github.com/tgstation/tgstation/commit/40d75cc340c63582fb66ce15bf75a36115f6bdaa, and edited by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "bun_top"
|
||||
},
|
||||
{
|
||||
"name": "bun_bottom"
|
||||
},
|
||||
{
|
||||
"name": "cheese"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -42,6 +42,9 @@
|
||||
},
|
||||
{
|
||||
"name": "skewer-snake"
|
||||
},
|
||||
{
|
||||
"name": "skewer-watermelon"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 186 B After Width: | Height: | Size: 233 B |
|
After Width: | Height: | Size: 331 B |
BIN
Resources/Textures/Objects/Consumable/Food/taco.rsi/beeftaco.png
Normal file
|
After Width: | Height: | Size: 303 B |
|
After Width: | Height: | Size: 307 B |
|
After Width: | Height: | Size: 308 B |
|
After Width: | Height: | Size: 309 B |
BIN
Resources/Textures/Objects/Consumable/Food/taco.rsi/fishtaco.png
Normal file
|
After Width: | Height: | Size: 286 B |
@@ -1,17 +1,29 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Original sprite by Phunny, redrawn by TheShuEd",
|
||||
"copyright": "Added by Phunny",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "tacoshell_back"
|
||||
"name": "beeftaco"
|
||||
},
|
||||
{
|
||||
"name": "tacoshell_forward"
|
||||
"name": "beeftacosupreme"
|
||||
},
|
||||
{
|
||||
"name": "chickentaco"
|
||||
},
|
||||
{
|
||||
"name": "chickentacosupreme"
|
||||
},
|
||||
{
|
||||
"name": "fishtaco"
|
||||
},
|
||||
{
|
||||
"name": "rattaco"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
BIN
Resources/Textures/Objects/Consumable/Food/taco.rsi/rattaco.png
Normal file
|
After Width: | Height: | Size: 329 B |
|
Before Width: | Height: | Size: 171 B |
|
Before Width: | Height: | Size: 294 B |
|
After Width: | Height: | Size: 267 B |
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Created by TheShuEd, rat Taken from https://github.com/tgstation/tgstation/commit/e15c63d100db65eaaa5231133b8a2662ff439131#diff-8dd94e19fdb2ff341b57e31bce101298 and edited by TheShuEd",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "tacoshell_back"
|
||||
},
|
||||
{
|
||||
"name": "tacoshell_forward"
|
||||
},
|
||||
{
|
||||
"name": "cheese"
|
||||
},
|
||||
{
|
||||
"name": "rat"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 364 B |
|
After Width: | Height: | Size: 171 B |
|
After Width: | Height: | Size: 293 B |
|
Before Width: | Height: | Size: 426 B After Width: | Height: | Size: 381 B |