diff --git a/Content.Client/Nutrition/EntitySystems/ClientFoodSequenceSystem.cs b/Content.Client/Nutrition/EntitySystems/ClientFoodSequenceSystem.cs index e571c5a856..c708c6fe7d 100644 --- a/Content.Client/Nutrition/EntitySystems/ClientFoodSequenceSystem.cs +++ b/Content.Client/Nutrition/EntitySystems/ClientFoodSequenceSystem.cs @@ -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; diff --git a/Content.Server/Nutrition/EntitySystems/FoodSequenceSystem.cs b/Content.Server/Nutrition/EntitySystems/FoodSequenceSystem.cs index 6e2f6546fb..f7d8588716 100644 --- a/Content.Server/Nutrition/EntitySystems/FoodSequenceSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/FoodSequenceSystem.cs @@ -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(OnInteractUsing); + + SubscribeLocalEvent(OnIngredientAdded); } private void OnInteractUsing(Entity ent, ref InteractUsingEvent args) @@ -34,47 +42,113 @@ public sealed class FoodSequenceSystem : SharedFoodSequenceSystem TryAddFoodElement(ent, (args.Used, sequenceElement), args.User); } + private void OnIngredientAdded(Entity ent, ref FoodSequenceIngredientAddedEvent args) + { + if (!TryComp(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 start) + { + List availableRecipes = new(); + foreach (var recipe in _proto.EnumeratePrototypes()) + { + 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 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 start, Entity 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(element, out var elementFood)) + return false; + if (elementFood.RequireDead && _mobState.IsAlive(element)) return false; - if (TryComp(element, out var elementFood) && elementFood.RequireDead) + //looking for a suitable FoodSequence prototype + ProtoId 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 existedContentNames = new(); + HashSet> 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 start, Entity element) + private void MergeFoodSolutions(EntityUid start, EntityUid element) { - if (!_solutionContainer.TryGetSolution(start.Owner, start.Comp.Solution, out var startSolutionEntity, out var startSolution)) + if (!TryComp(start, out var startFood)) return; - if (!_solutionContainer.TryGetSolution(element.Owner, element.Comp.Solution, out _, out var elementSolution)) + if (!TryComp(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 start, Entity element) + private void MergeFlavorProfiles(EntityUid start, EntityUid element) { if (!TryComp(start, out var startProfile)) return; @@ -148,7 +238,7 @@ public sealed class FoodSequenceSystem : SharedFoodSequenceSystem } } - private void MergeTrash(Entity start, Entity element) + private void MergeTrash(EntityUid start, EntityUid element) { if (!TryComp(start, out var startFood)) return; @@ -162,13 +252,13 @@ public sealed class FoodSequenceSystem : SharedFoodSequenceSystem } } - private void MergeTags(Entity start, Entity element) + private void MergeTags(EntityUid start, EntityUid element) { if (!TryComp(element, out var elementTags)) return; - EnsureComp(start.Owner); + EnsureComp(start); - _tag.TryAddTags(start.Owner, elementTags.Tags); + _tag.TryAddTags(start, elementTags.Tags); } } diff --git a/Content.Shared/Nutrition/Components/FoodMetamorphableByAddingComponent.cs b/Content.Shared/Nutrition/Components/FoodMetamorphableByAddingComponent.cs new file mode 100644 index 0000000000..01704041d0 --- /dev/null +++ b/Content.Shared/Nutrition/Components/FoodMetamorphableByAddingComponent.cs @@ -0,0 +1,17 @@ +using Content.Shared.Nutrition.EntitySystems; +using Robust.Shared.GameStates; + +namespace Content.Shared.Nutrition.Components; + +/// +/// Attempts to metamorphose a modular food when a new ingredient is added. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedFoodSequenceSystem))] +public sealed partial class FoodMetamorphableByAddingComponent : Component +{ + /// + /// if true, the metamorphosis will only be attempted when the sequence ends, not when each element is added. + /// + [DataField] + public bool OnlyFinal = true; +} diff --git a/Content.Shared/Nutrition/Components/FoodSequenceElementComponent.cs b/Content.Shared/Nutrition/Components/FoodSequenceElementComponent.cs index 386aa937be..50bc786129 100644 --- a/Content.Shared/Nutrition/Components/FoodSequenceElementComponent.cs +++ b/Content.Shared/Nutrition/Components/FoodSequenceElementComponent.cs @@ -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; /// -/// 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. /// [RegisterComponent, Access(typeof(SharedFoodSequenceSystem))] public sealed partial class FoodSequenceElementComponent : Component { /// - /// 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. /// [DataField(required: true)] - public Dictionary Entries = new(); + public Dictionary, ProtoId> Entries = new(); /// - /// which solution we will add to the main dish + /// Which solution we will add to the main dish /// [DataField] public string Solution = "food"; - - /// - /// state used to generate the appearance of the added layer - /// - [DataField] - public SpriteSpecifier? Sprite; -} - -[DataRecord, Serializable, NetSerializable] -public sealed class FoodSequenceElementEntry -{ - /// - /// A localized name piece to build into the item name generator. - /// - public LocId? Name { get; set; } = null; - - /// - /// overriding default sprite - /// - public SpriteSpecifier? Sprite { get; set; } = null; - - /// - /// If the layer is the final one, it can be added over the limit, but no other layers can be added after it. - /// - public bool Final { get; set; } = false; - - /// - /// the shear of a particular layer. Allows a little "randomization" of each layer. - /// - public Vector2 LocalOffset { get; set; } = Vector2.Zero; } diff --git a/Content.Shared/Nutrition/Components/FoodSequenceStartPointComponent.cs b/Content.Shared/Nutrition/Components/FoodSequenceStartPointComponent.cs index 613ca3cfef..c87110287a 100644 --- a/Content.Shared/Nutrition/Components/FoodSequenceStartPointComponent.cs +++ b/Content.Shared/Nutrition/Components/FoodSequenceStartPointComponent.cs @@ -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. /// [DataField(required: true)] - public string Key = string.Empty; + public ProtoId Key = string.Empty; /// /// 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; - /// - /// Start shift from the center of the sprite where the first layer of food will be placed. - /// - [DataField] - public Vector2 StartPosition = Vector2.Zero; - - /// - /// Shift from the start position applied to each subsequent layer. - /// - [DataField] - public Vector2 Offset = Vector2.Zero; - /// /// Can we put more layers? /// [DataField] public bool Finished; - /// - /// list of sprite states to be displayed on this object. - /// - [DataField, AutoNetworkedField] - public List FoodLayers = new(); - - public HashSet RevealedLayers = new(); - - /// - /// target layer, where new layers will be added. This allows you to control the order of generative layers and static layers. - /// - [DataField] - public string TargetLayerMap = "foodSequenceLayers"; - - /// - /// If true, the generative layers will be placed in reverse order. - /// - [DataField] - public bool InverseLayers; - - /// - /// each layer will get a random offset in the specified range - /// - [DataField] - public Vector2 MaxLayerOffset = Vector2.Zero; - - /// - /// each layer will get a random offset in the specified range - /// - [DataField] - public Vector2 MinLayerOffset = Vector2.Zero; - /// /// solution where reagents will be added from newly added ingredients /// [DataField] public string Solution = "food"; + #region name generation + /// /// LocId with a name generation pattern. /// @@ -101,4 +64,96 @@ public sealed partial class FoodSequenceStartPointComponent : Component /// [DataField] public LocId? NameSuffix; + + #endregion + + #region visual + + /// + /// list of sprite states to be displayed on this object. + /// + [DataField, AutoNetworkedField] + public List FoodLayers = new(); + + /// + /// If true, the generative layers will be placed in reverse order. + /// + [DataField] + public bool InverseLayers; + + /// + /// target layer, where new layers will be added. This allows you to control the order of generative layers and static layers. + /// + [DataField] + public string TargetLayerMap = "foodSequenceLayers"; + + /// + /// Start shift from the center of the sprite where the first layer of food will be placed. + /// + [DataField] + public Vector2 StartPosition = Vector2.Zero; + + /// + /// Shift from the start position applied to each subsequent layer. + /// + [DataField] + public Vector2 Offset = Vector2.Zero; + + /// + /// each layer will get a random offset in the specified range + /// + [DataField] + public Vector2 MaxLayerOffset = Vector2.Zero; + + /// + /// each layer will get a random offset in the specified range + /// + [DataField] + public Vector2 MinLayerOffset = Vector2.Zero; + + [DataField] + public bool AllowHorizontalFlip = true; + + public HashSet RevealedLayers = new(); + + #endregion +} + +/// +/// class that synchronizes with the client +/// Stores all the necessary information for rendering the FoodSequence element +/// +[DataRecord, Serializable, NetSerializable] +public record struct FoodSequenceVisualLayer +{ + /// + /// reference to the original prototype of the layer. Used to edit visual layers. + /// + public ProtoId Proto; + + /// + /// Sprite rendered in sequence + /// + public SpriteSpecifier? Sprite { get; set; } = SpriteSpecifier.Invalid; + + /// + /// Relative size of the sprite displayed in FoodSequence + /// + public Vector2 Scale { get; set; } = Vector2.One; + + /// + /// The offset of a particular layer. Allows a little position randomization of each layer. + /// + public Vector2 LocalOffset { get; set; } = Vector2.Zero; + + public FoodSequenceVisualLayer(ProtoId proto, + SpriteSpecifier? sprite, + Vector2 scale, + Vector2 offset) + { + Proto = proto; + Sprite = sprite; + Scale = scale; + LocalOffset = offset; + } } diff --git a/Content.Shared/Nutrition/Events.cs b/Content.Shared/Nutrition/Events.cs index abba2583ba..d15fcbbf1e 100644 --- a/Content.Shared/Nutrition/Events.cs +++ b/Content.Shared/Nutrition/Events.cs @@ -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 { } + +/// +/// Raised on FoodSequence start element entity when new ingredient is added to FoodSequence +/// +public record struct FoodSequenceIngredientAddedEvent(EntityUid Start, EntityUid Element, ProtoId Proto, EntityUid? User = null); diff --git a/Content.Shared/Nutrition/FoodMetamorphRules/FoodMetamorphRule.cs b/Content.Shared/Nutrition/FoodMetamorphRules/FoodMetamorphRule.cs new file mode 100644 index 0000000000..9e59573ff8 --- /dev/null +++ b/Content.Shared/Nutrition/FoodMetamorphRules/FoodMetamorphRule.cs @@ -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; + +/// +/// abstract rules that are used to verify the correct foodSequence for recipe +/// +[ImplicitDataDefinitionForInheritors] +[Serializable, NetSerializable] +public abstract partial class FoodMetamorphRule +{ + public abstract bool Check(IPrototypeManager protoMan, EntityManager entMan, EntityUid food, List ingredients); +} + +/// +/// The requirement that the sequence be within the specified size limit +/// +[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 ingredients) + { + return ingredients.Count <= Range.Max && ingredients.Count >= Range.Min; + } +} + +/// +/// A requirement that the last element of the sequence have one or all of the required tags +/// +[UsedImplicitly] +[Serializable, NetSerializable] +public sealed partial class LastElementHasTags : FoodMetamorphRule +{ + [DataField(required: true)] + public List> Tags = new (); + + [DataField] + public bool NeedAll = true; + + public override bool Check(IPrototypeManager protoMan, EntityManager entMan, EntityUid food, List 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; + } +} + +/// +/// A requirement that the specified sequence element have one or all of the required tags +/// +[UsedImplicitly] +[Serializable, NetSerializable] +public sealed partial class ElementHasTags : FoodMetamorphRule +{ + [DataField(required: true)] + public int ElementNumber = 0; + + [DataField(required: true)] + public List> Tags = new (); + + [DataField] + public bool NeedAll = true; + + public override bool Check(IPrototypeManager protoMan, EntityManager entMan, EntityUid food, List 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; + } +} + +/// +/// requirement that the food contains certain reagents (e.g. sauces) +/// +[UsedImplicitly] +[Serializable, NetSerializable] +public sealed partial class FoodHasReagent : FoodMetamorphRule +{ + [DataField(required: true)] + public ProtoId Reagent = new(); + + [DataField(required: true)] + public MinMax Count; + + [DataField] + public string Solution = "food"; + + public override bool Check(IPrototypeManager protoMan, EntityManager entMan, EntityUid food, List ingredients) + { + if (!entMan.TryGetComponent(food, out var solMan)) + return false; + + var solutionMan = entMan.System(); + + 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; + } +} + +/// +/// A requirement that there be X ingredients in the sequence that have one or all of the specified tags. +/// +[UsedImplicitly] +[Serializable, NetSerializable] +public sealed partial class IngredientsWithTags : FoodMetamorphRule +{ + [DataField(required: true)] + public List> 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 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; + } +} diff --git a/Content.Shared/Nutrition/Prototypes/FoodSequenceElementPrototype.cs b/Content.Shared/Nutrition/Prototypes/FoodSequenceElementPrototype.cs new file mode 100644 index 0000000000..a3448715e4 --- /dev/null +++ b/Content.Shared/Nutrition/Prototypes/FoodSequenceElementPrototype.cs @@ -0,0 +1,38 @@ +using Content.Shared.Tag; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared.Nutrition.Prototypes; + +/// +/// Unique data storage block for different FoodSequence layers +/// +[Prototype("foodSequenceElement")] +public sealed partial class FoodSequenceElementPrototype : IPrototype +{ + [IdDataField] public string ID { get; private set; } = default!; + + /// + /// sprite options. A random one will be selected and used to display the layer. + /// + [DataField] + public List Sprites { get; private set; } = new(); + + /// + /// A localized name piece to build into the item name generator. + /// + [DataField] + public LocId? Name { get; private set; } + + /// + /// If the layer is the final one, it can be added over the limit, but no other layers can be added after it. + /// + [DataField] + public bool Final { get; private set; } + + /// + /// Tag list of this layer. Used for recipes for food metamorphosis. + /// + [DataField] + public List> Tags { get; set; } = new(); +} diff --git a/Content.Shared/Nutrition/Prototypes/MetamorphRecipePrototype.cs b/Content.Shared/Nutrition/Prototypes/MetamorphRecipePrototype.cs new file mode 100644 index 0000000000..977cb7a74d --- /dev/null +++ b/Content.Shared/Nutrition/Prototypes/MetamorphRecipePrototype.cs @@ -0,0 +1,32 @@ +using Content.Shared.Nutrition.FoodMetamorphRules; +using Content.Shared.Tag; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Nutrition.Prototypes; + +/// +/// Stores a recipe so that FoodSequence assembled in the right sequence can turn into a special meal. +/// +[Prototype] +public sealed partial class MetamorphRecipePrototype : IPrototype +{ + [IdDataField] public string ID { get; private set; } = default!; + + /// + /// The key of the FoodSequence being collected. For example “burger” “taco” etc. + /// + [DataField(required: true)] + public ProtoId Key = string.Empty; + + /// + /// The entity that will be created as a result of this recipe, and into which all the reagents will be transferred. + /// + [DataField(required: true)] + public EntProtoId Result = default!; + + /// + /// A sequence of rules that must be followed for FoodSequence to metamorphose into a special food. + /// + [DataField] + public List Rules = new(); +} diff --git a/Resources/Locale/en-US/nutrition/components/food-sequence.ftl b/Resources/Locale/en-US/nutrition/components/food-sequence.ftl index 36ce47d5cf..766145093e 100644 --- a/Resources/Locale/en-US/nutrition/components/food-sequence.ftl +++ b/Resources/Locale/en-US/nutrition/components/food-sequence.ftl @@ -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 diff --git a/Resources/Prototypes/Body/Organs/human.yml b/Resources/Prototypes/Body/Organs/human.yml index 6bfee0568a..c67f4f6cd1 100644 --- a/Resources/Prototypes/Body/Organs/human.yml +++ b/Resources/Prototypes/Body/Organs/human.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index aa4152c189..4e37a5ca3f 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml index 06c4d5e871..448ef0868d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/burger.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/burger.yml index 4d51f20d78..88da21ccbd 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/burger.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/burger.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/ingredients.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/ingredients.yml index 1a80a5fe53..9542bd2204 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/ingredients.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/ingredients.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml index 53fbf62399..0ad425c710 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml @@ -109,15 +109,6 @@ - type: Tag tags: - Meat - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: plain - entries: - burger: - name: food-sequence-burger-content-raw-meat - taco: - name: food-sequence-content-raw-meat - type: entity name: raw human meat @@ -159,15 +150,6 @@ reagents: - ReagentId: CarpoToxin Quantity: 5 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: fish - entries: - burger: - name: food-sequence-burger-content-carp - taco: - name: food-sequence-content-carp - type: Extractable juiceSolution: reagents: @@ -203,15 +185,6 @@ graph: Bacon node: start defaultTarget: bacon - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: bacon - entries: - burger: - name: food-sequence-burger-content-meat - taco: - name: food-sequence-content-meat - type: entity name: raw bear meat @@ -236,15 +209,6 @@ graph: BearSteak node: start defaultTarget: filet migrawr - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: bear - entries: - burger: - name: food-sequence-burger-content-bear - taco: - name: food-sequence-content-bear - type: entity name: raw penguin meat @@ -269,15 +233,7 @@ graph: PenguinSteak node: start defaultTarget: cooked penguin - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: bird - entries: - burger: - name: food-sequence-burger-content-penguin - taco: - name: food-sequence-content-penguin + - type: entity name: raw chicken meat parent: FoodMeatRawBase @@ -303,20 +259,6 @@ graph: ChickenSteak node: start defaultTarget: cooked chicken - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: bird - entries: - burger: - name: food-sequence-content-chicken - taco: - name: food-sequence-content-chicken - skewer: - name: food-sequence-content-chicken - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-meat - type: entity name: raw duck meat @@ -341,15 +283,6 @@ graph: DuckSteak node: start defaultTarget: cooked duck - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: bird - entries: - burger: - name: food-sequence-content-duck - taco: - name: food-sequence-content-duck - type: entity name: prime-cut corgi meat @@ -375,15 +308,6 @@ price: 750 - type: StealTarget stealGroup: FoodMeatCorgi - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: corgi - entries: - burger: - name: food-sequence-burger-content-corgi - taco: - name: food-sequence-content-corgi - type: entity name: raw crab meat @@ -408,15 +332,6 @@ graph: CrabSteak node: start defaultTarget: cooked crab - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: crab - entries: - burger: - name: food-sequence-content-crab - taco: - name: food-sequence-content-crab - type: entity name: raw goliath meat @@ -440,15 +355,6 @@ graph: GoliathSteak node: start defaultTarget: goliath steak - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: goliath - entries: - burger: - name: food-sequence-burger-content-goliath - taco: - name: food-sequence-content-goliath - type: entity name: dragon flesh @@ -476,15 +382,6 @@ reagents: - ReagentId: Ichor Quantity: 10 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: dragon - entries: - burger: - name: food-sequence-content-dragon - taco: - name: food-sequence-content-dragon - type: entity name: raw rat meat @@ -505,15 +402,6 @@ - type: SliceableFood count: 3 slice: FoodMeatCutlet - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: plain - entries: - burger: - name: food-sequence-burger-content-rat - taco: - name: food-sequence-content-rat - type: entity name: raw lizard meat @@ -538,20 +426,6 @@ graph: LizardSteak node: start defaultTarget: lizard steak - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: lizard - entries: - burger: - name: food-sequence-burger-content-lizard - taco: - name: food-sequence-content-lizard - skewer: - name: food-sequence-content-lizard - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-tail - type: entity name: raw plant meat @@ -561,15 +435,6 @@ components: - type: Sprite state: plant - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: plant - entries: - burger: - name: food-sequence-burger-content-plant - taco: - name: food-sequence-content-plant - type: entity name: rotten meat @@ -595,15 +460,6 @@ Quantity: 4 - ReagentId: Fat Quantity: 4 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: rotten - entries: - burger: - name: food-sequence-burger-content-rotten - taco: - name: food-sequence-content-rotten - type: entity name: raw spider meat @@ -624,15 +480,6 @@ - type: SliceableFood count: 3 slice: FoodMeatSpiderCutlet - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: spider - entries: - burger: - name: food-sequence-burger-content-spider - taco: - name: food-sequence-content-spider - type: entity name: raw spider leg @@ -650,15 +497,6 @@ Quantity: 10 - ReagentId: Fat Quantity: 3 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: spiderleg - entries: - burger: - name: food-sequence-burger-content-spider - taco: - name: food-sequence-content-spider - type: entity name: meatwheat clump @@ -674,15 +512,6 @@ reagents: - ReagentId: UncookedAnimalProteins Quantity: 1 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: clump - entries: - burger: - name: food-sequence-content-clump - taco: - name: food-sequence-content-clump - type: entity name: raw snake meat @@ -703,20 +532,6 @@ Quantity: 10 - ReagentId: Toxin Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: snake - entries: - burger: - name: food-sequence-content-snake - taco: - name: food-sequence-content-snake - skewer: - name: food-sequence-content-snake - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-snake - type: entity name: raw xeno meat @@ -744,15 +559,6 @@ - type: SliceableFood count: 3 slice: FoodMeatXenoCutlet - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: xeno - entries: - burger: - name: food-sequence-content-xeno - taco: - name: food-sequence-content-xeno - type: entity name: raw rouny meat @@ -782,15 +588,6 @@ graph: RounySteak node: start defaultTarget: rouny steak - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: rouny - entries: - burger: - name: food-sequence-content-rouny - taco: - name: food-sequence-content-rouny - type: entity name: killer tomato meat @@ -805,20 +602,6 @@ slice: FoodMeatTomatoCutlet - type: StaticPrice price: 100 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: tomato - 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 - type: entity name: salami @@ -845,15 +628,6 @@ damage: types: Blunt: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/salami.rsi - state: salami - entries: - burger: - name: food-sequence-content-salami - taco: - name: food-sequence-content-salami - type: entity name: meat clown @@ -873,15 +647,6 @@ state: clown - type: SliceableFood slice: FoodMeatSalamiSlice - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: clown - entries: - burger: - name: food-sequence-content-clown - taco: - name: food-sequence-content-clown - type: entity name: meatball @@ -895,15 +660,6 @@ - Meat - type: Sprite state: meatball - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: meatball - entries: - burger: - name: food-sequence-burger-content-raw-meat - taco: - name: food-sequence-content-raw-meat - type: entity name: slimeball @@ -920,15 +676,6 @@ - Meat - type: Sprite state: slime - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: slime - entries: - burger: - name: food-sequence-content-slime - taco: - name: food-sequence-content-slime - type: entity name: raw snail meat @@ -938,15 +685,6 @@ components: - type: Sprite state: snail - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: snail - entries: - burger: - name: food-sequence-content-snail - taco: - name: food-sequence-content-snail - type: SolutionContainerManager solutions: food: @@ -1022,19 +760,9 @@ graph: MeatSteak node: meat steak - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: plain-cooked entries: - burger: - name: food-sequence-burger-content-meat - taco: - name: food-sequence-content-meat - skewer: - name: food-sequence-content-meat - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-meat + Burger: MeatSteak + Taco: MeatSteak - type: entity name: bacon @@ -1067,19 +795,9 @@ graph: Bacon node: bacon - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: bacon-cooked entries: - burger: - name: food-sequence-burger-content-meat - taco: - name: food-sequence-content-meat - skewer: - name: food-sequence-content-meat - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-meat + Burger: MeatBecon + Taco: MeatBecon - type: entity name: cooked bear @@ -1110,14 +828,9 @@ graph: BearSteak node: filet migrawr - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: product-cooked entries: - burger: - name: food-sequence-burger-content-bear - taco: - name: food-sequence-content-bear + Burger: MeatBearBurger + Taco: MeatBear - type: entity name: penguin filet @@ -1147,14 +860,9 @@ graph: PenguinSteak node: cooked penguin - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: bird-cooked entries: - burger: - name: food-sequence-burger-content-penguin - taco: - name: food-sequence-content-penguin + Burger: MeatPenguinBurger + Taco: MeatPenguin - type: entity name: cooked chicken @@ -1184,19 +892,9 @@ graph: ChickenSteak node: cooked chicken - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: bird-cooked entries: - burger: - name: food-sequence-content-chicken - taco: - name: food-sequence-content-chicken - skewer: - name: food-sequence-content-chicken - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-meat + Burger: MeatChicken + Taco: MeatChicken - type: entity name: fried chicken @@ -1226,19 +924,9 @@ - ReagentId: Protein Quantity: 5 - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: chicken-fried entries: - burger: - name: food-sequence-content-chicken - taco: - name: food-sequence-content-chicken - skewer: - name: food-sequence-content-chicken - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-meat + Burger: MeatChicken + Taco: MeatChicken - type: entity name: cooked duck @@ -1268,19 +956,9 @@ graph: DuckSteak node: cooked duck - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: bird-cooked entries: - burger: - name: food-sequence-content-duck - taco: - name: food-sequence-content-duck - skewer: - name: food-sequence-content-duck - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-meat + Burger: MeatDuck + Taco: MeatDuck - type: entity name: cooked crab @@ -1310,14 +988,9 @@ graph: CrabSteak node: cooked crab - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: crab-cooked entries: - burger: - name: food-sequence-content-crab - taco: - name: food-sequence-content-crab + Burger: MeatCrabBurger + Taco: MeatCrab - type: entity name: goliath steak @@ -1345,14 +1018,9 @@ graph: GoliathSteak node: goliath steak - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: goliath-cooked entries: - burger: - name: food-sequence-burger-content-goliath - taco: - name: food-sequence-content-goliath + Burger: MeatGoliathBurger + Taco: MeatGoliath - type: entity name: rouny steak @@ -1384,14 +1052,9 @@ graph: RounySteak node: rouny steak - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: rouny-cooked entries: - burger: - name: food-sequence-content-rouny - taco: - name: food-sequence-content-rouny + Burger: MeatXeno + Taco: MeatXeno - type: entity name: lizard steak @@ -1422,19 +1085,9 @@ graph: LizardSteak node: lizard steak - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: lizard-cooked entries: - burger: - name: food-sequence-burger-content-lizard - taco: - name: food-sequence-content-lizard - skewer: - name: food-sequence-content-lizard - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-tail-cooked + Burger: MeatLizardBurger + Taco: MeatLizard - type: entity name: boiled spider leg @@ -1458,14 +1111,9 @@ - ReagentId: Protein Quantity: 5 - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: spiderleg-cooked entries: - burger: - name: food-sequence-burger-content-spider - taco: - name: food-sequence-content-spider + Burger: MeatSpiderBurger + Taco: MeatSpider - type: entity name: meatball @@ -1488,19 +1136,9 @@ - ReagentId: Protein Quantity: 5 - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: meatball-cooked entries: - burger: - name: food-sequence-burger-content-meat - taco: - name: food-sequence-content-meat - skewer: - name: food-sequence-content-meat - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-meat + Burger: MeatBall + Taco: MeatBall - type: entity name: boiled snail @@ -1515,15 +1153,6 @@ - type: Sprite layers: - state: snail-cooked - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: snail-cooked - entries: - burger: - name: food-sequence-content-snail - taco: - name: food-sequence-content-snail - type: SolutionContainerManager solutions: food: @@ -1535,6 +1164,10 @@ Quantity: 3 - ReagentId: Water Quantity: 4 # makes saline if you add salt! + - type: FoodSequenceElement + entries: + Burger: MeatSnail + Taco: MeatSnail # Cutlets @@ -1561,20 +1194,6 @@ Quantity: 3 - ReagentId: Fat Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet - entries: - burger: - name: food-sequence-burger-content-meat - taco: - name: food-sequence-content-meat - skewer: - name: food-sequence-content-meat - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-meat - type: Construction graph: Cutlet node: start @@ -1604,16 +1223,6 @@ Quantity: 3 - ReagentId: Fat Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet - color: brown - entries: - burger: - name: food-sequence-burger-content-bear - taco: - name: food-sequence-content-bear - type: Construction graph: BearCutlet node: start @@ -1641,16 +1250,6 @@ Quantity: 3 - ReagentId: Fat Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet - color: white - entries: - burger: - name: food-sequence-burger-content-penguin - taco: - name: food-sequence-content-penguin - type: Construction graph: PenguinCutlet node: start @@ -1678,21 +1277,6 @@ Quantity: 3 - ReagentId: Fat Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet - color: white - entries: - burger: - name: food-sequence-content-chicken - taco: - name: food-sequence-content-chicken - skewer: - name: food-sequence-content-chicken - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-meat - type: Construction graph: ChickenCutlet node: start @@ -1720,21 +1304,6 @@ Quantity: 3 - ReagentId: Fat Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet - color: white - entries: - burger: - name: food-sequence-content-duck - taco: - name: food-sequence-content-duck - skewer: - name: food-sequence-content-duck - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-meat - type: Construction graph: DuckCutlet node: start @@ -1765,21 +1334,6 @@ Quantity: 3 - ReagentId: Fat Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet - color: pink - entries: - burger: - name: food-sequence-burger-content-lizard - taco: - name: food-sequence-content-lizard - skewer: - name: food-sequence-content-lizard - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-tail - type: Construction graph: LizardCutlet node: start @@ -1806,15 +1360,6 @@ Quantity: 3 - ReagentId: Fat Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: spidercutlet - entries: - burger: - name: food-sequence-burger-content-spider - taco: - name: food-sequence-content-spider - type: Construction graph: SpiderCutlet node: start @@ -1843,15 +1388,6 @@ reagents: - ReagentId: SulfuricAcid Quantity: 20 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: xenocutlet - entries: - burger: - name: food-sequence-content-xeno - taco: - name: food-sequence-content-xeno - type: Construction graph: XenoCutlet node: start @@ -1872,15 +1408,6 @@ color: red - type: StaticPrice price: 30 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: salami-slice - entries: - burger: - name: food-sequence-content-tomato - taco: - name: food-sequence-content-tomato - type: entity name: salami slice @@ -1903,15 +1430,6 @@ Quantity: 1 - ReagentId: Protein Quantity: 1 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: salami-slice - entries: - burger: - name: food-sequence-content-salami - taco: - name: food-sequence-content-salami # Cooked @@ -1936,18 +1454,13 @@ Quantity: 2 - ReagentId: Protein Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet-cooked - entries: - burger: - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet-cooked - type: Construction graph: Cutlet node: cutlet + - type: FoodSequenceElement + entries: + Burger: MeatCutlet + Taco: MeatCutlet - type: entity name: bear cutlet @@ -1973,18 +1486,13 @@ Quantity: 2 - ReagentId: Protein Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet-cooked - entries: - burger: - name: food-sequence-burger-content-bear - taco: - name: food-sequence-content-bear - type: Construction graph: BearCutlet node: bear cutlet + - type: FoodSequenceElement + entries: + Burger: BearCutletBurger + Taco: BearCutlet - type: entity name: penguin cutlet @@ -2008,18 +1516,13 @@ Quantity: 2 - ReagentId: Protein Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet-cooked - entries: - burger: - name: food-sequence-burger-content-penguin - taco: - name: food-sequence-content-penguin - type: Construction graph: PenguinCutlet node: penguin cutlet + - type: FoodSequenceElement + entries: + Burger: PenguinCutletBurger + Taco: PenguinCutlet - type: entity name: chicken cutlet @@ -2043,23 +1546,13 @@ Quantity: 2 - ReagentId: Protein Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet-cooked - entries: - burger: - name: food-sequence-content-chicken - taco: - name: food-sequence-content-chicken - skewer: - name: food-sequence-content-chicken - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-meat - type: Construction graph: ChickenCutlet node: chicken cutlet + - type: FoodSequenceElement + entries: + Burger: ChickenCutlet + Taco: ChickenCutlet - type: entity name: duck cutlet @@ -2083,23 +1576,13 @@ Quantity: 2 - ReagentId: Protein Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet-cooked - entries: - burger: - name: food-sequence-content-duck - taco: - name: food-sequence-content-duck - skewer: - name: food-sequence-content-duck - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-meat - type: Construction graph: DuckCutlet node: duck cutlet + - type: FoodSequenceElement + entries: + Burger: DuckCutlet + Taco: DuckCutlet - type: entity name: lizard cutlet @@ -2124,23 +1607,13 @@ Quantity: 2 - ReagentId: Protein Quantity: 2 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet-cooked - entries: - burger: - name: food-sequence-burger-content-lizard - taco: - name: food-sequence-content-lizard - skewer: - name: food-sequence-content-lizard - sprite: - sprite: Objects/Consumable/Food/skewer.rsi - state: skewer-tail-cooked - type: Construction graph: LizardCutlet node: lizard cutlet + - type: FoodSequenceElement + entries: + Burger: LizardCutletBurger + Taco: LizardCutlet - type: entity name: spider cutlet @@ -2163,16 +1636,13 @@ Quantity: 1 - ReagentId: Protein Quantity: 1 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: cutlet-cooked - entries: - burger: - name: food-sequence-burger-content-spider - type: Construction graph: SpiderCutlet node: spider cutlet + - type: FoodSequenceElement + entries: + Burger: SpiderCutletBurger + Taco: SpiderCutlet - type: entity name: xeno cutlet @@ -2195,13 +1665,10 @@ Quantity: 1 - ReagentId: Protein Quantity: 1 - - type: FoodSequenceElement - sprite: - sprite: Objects/Consumable/Food/meat.rsi - state: xenocutlet-cooked - entries: - burger: - name: food-sequence-content-xeno - type: Construction graph: XenoCutlet - node: xeno cutlet \ No newline at end of file + node: xeno cutlet + - type: FoodSequenceElement + entries: + Burger: XenoCutlet + Taco: XenoCutlet diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml index 7a6f40fab6..15af78e78f 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/skewer.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/skewer.yml index 641f494a9d..7b9db1f41f 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/skewer.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/skewer.yml @@ -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 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/taco.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/taco.yml index 6254ad5cc0..2a83b14d03 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/taco.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/taco.yml @@ -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 \ No newline at end of file + - 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 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/leaves.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/leaves.yml index 92ab8d577c..06f2974305 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/leaves.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/leaves.yml @@ -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 diff --git a/Resources/Prototypes/Recipes/Cooking/food_sequence_element.yml b/Resources/Prototypes/Recipes/Cooking/food_sequence_element.yml new file mode 100644 index 0000000000..d843e7b985 --- /dev/null +++ b/Resources/Prototypes/Recipes/Cooking/food_sequence_element.yml @@ -0,0 +1,1104 @@ +# Bun bottom + +- type: foodSequenceElement + id: BunTopBurger + final: true + sprites: + - sprite: Objects/Consumable/Food/burger_sequence.rsi + state: bun_top + tags: + - Bun + +# Mice + +- type: foodSequenceElement + id: RatBurger + name: food-sequence-burger-content-rat + sprites: + - sprite: Mobs/Animals/mouse.rsi + state: dead-0 + - sprite: Mobs/Animals/mouse.rsi + state: dead-1 + - sprite: Mobs/Animals/mouse.rsi + state: dead-2 + +- type: foodSequenceElement + id: RatTaco + name: food-sequence-content-rat + sprites: + - sprite: Objects/Consumable/Food/taco_sequence.rsi + state: rat + +- type: foodSequenceElement + id: RatSkewer + name: food-sequence-content-rat + sprites: + - sprite: Objects/Consumable/Food/skewer.rsi + state: skewer-rat + +# Cheese + +- type: foodSequenceElement + id: CheeseBurger + name: food-sequence-content-cheese + sprites: + - sprite: Objects/Consumable/Food/burger_sequence.rsi + state: cheese + tags: + - Cheese + +- type: foodSequenceElement + id: CheeseTaco + name: food-sequence-content-cheese + sprites: + - sprite: Objects/Consumable/Food/taco_sequence.rsi + state: cheese + tags: + - Cheese + +# Steak + +- type: foodSequenceElement + id: MeatSteak + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: plain-cooked + tags: + - Cooked + - Meat + +# Becon + +- type: foodSequenceElement + id: MeatBecon + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: bacon-cooked + - sprite: Objects/Consumable/Food/meat.rsi + state: bacon2-cooked + tags: + - Cooked + - Meat + +# Bear meat + +- type: foodSequenceElement + id: MeatBear + name: food-sequence-content-bear + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: product-cooked + tags: + - Cooked + - Meat + +- type: foodSequenceElement + id: MeatBearBurger + name: food-sequence-burger-content-bear + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: product-cooked + tags: + - Cooked + - Meat + +# Penguin meat + +- type: foodSequenceElement + id: MeatPenguin + name: food-sequence-content-penguin + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: bird-cooked + tags: + - Cooked + - Meat + +- type: foodSequenceElement + id: MeatPenguinBurger + name: food-sequence-burger-content-penguin + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: bird-cooked + tags: + - Cooked + - Meat + +# Chicken meat + +- type: foodSequenceElement + id: MeatChicken + name: food-sequence-content-chicken + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: chicken-fried + tags: + - Cooked + - Meat + - Chicken + +# Fried Chicken meat + +- type: foodSequenceElement + id: MeatFriedChicken + name: food-sequence-content-chicken + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: chicken-fried + - sprite: Objects/Consumable/Food/meat.rsi + state: chicken2-fried + tags: + - Cooked + - Meat + - Chicken + +# Duck meat + +- type: foodSequenceElement + id: MeatDuck + name: food-sequence-content-duck + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: bird-cooked + tags: + - Cooked + - Meat + +# Crab meat + +- type: foodSequenceElement + id: MeatCrab + name: food-sequence-content-crab + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: crab-cooked + tags: + - Cooked + - Meat + - Crab + +- type: foodSequenceElement + id: MeatCrabBurger + name: food-sequence-burger-content-crab + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: crab-cooked + tags: + - Cooked + - Meat + - Crab + +# Meat goliath + +- type: foodSequenceElement + id: MeatGoliath + name: food-sequence-content-goliath + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: goliath-cooked + tags: + - Cooked + - Meat + +- type: foodSequenceElement + id: MeatGoliathBurger + name: food-sequence-burger-content-goliath + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: goliath-cooked + tags: + - Cooked + - Meat + +# Xeno meat + +- type: foodSequenceElement + id: MeatXeno + name: food-sequence-content-xeno + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: rouny-cooked + tags: + - Cooked + - Meat + +# Meat lizard + +- type: foodSequenceElement + id: MeatLizard + name: food-sequence-content-lizard + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: lizard-cooked + tags: + - Cooked + - Meat + +- type: foodSequenceElement + id: MeatLizardBurger + name: food-sequence-burger-content-lizard + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: lizard-cooked + tags: + - Cooked + - Meat + +# Meat spider + +- type: foodSequenceElement + id: MeatSpider + name: food-sequence-content-spider + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: spiderleg-cooked + tags: + - Cooked + - Meat + +- type: foodSequenceElement + id: MeatSpiderBurger + name: food-sequence-burger-content-spider + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: spiderleg-cooked + tags: + - Cooked + - Meat + +# Meatball + +- type: foodSequenceElement + id: MeatBall + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: meatball-cooked + tags: + - Cooked + - Meat + +# Snail meat + +- type: foodSequenceElement + id: MeatSnail + name: food-sequence-content-snail + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: snail-cooked + tags: + - Cooked + - Meat + +# Meat cutlet + +- type: foodSequenceElement + id: MeatCutlet + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: cutlet-cooked + tags: + - Cooked + - Cutlet + - Meat + +# Bear cutlet + +- type: foodSequenceElement + id: BearCutlet + name: food-sequence-content-bear + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: cutlet-cooked + tags: + - Cooked + - Cutlet + - Meat + +- type: foodSequenceElement + id: BearCutletBurger + name: food-sequence-burger-content-bear + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: cutlet-cooked + tags: + - Cooked + - Cutlet + - Meat + +# Penguin cutlet + +- type: foodSequenceElement + id: PenguinCutlet + name: food-sequence-content-penguin + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: cutlet-cooked + tags: + - Cooked + - Cutlet + - Meat + +- type: foodSequenceElement + id: PenguinCutletBurger + name: food-sequence-burger-content-penguin + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: cutlet-cooked + tags: + - Cooked + - Cutlet + - Meat + +# Chicken cutlet + +- type: foodSequenceElement + id: ChickenCutlet + name: food-sequence-content-chicken + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: cutlet-cooked + tags: + - Cooked + - Cutlet + - Meat + - Chicken + +# Duck cutlet + +- type: foodSequenceElement + id: DuckCutlet + name: food-sequence-content-duck + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: cutlet-cooked + tags: + - Cooked + - Cutlet + - Meat + +# Spider cutlet + +- type: foodSequenceElement + id: LizardCutlet + name: food-sequence-content-lizard + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: cutlet-cooked + tags: + - Cooked + - Cutlet + - Meat + +- type: foodSequenceElement + id: LizardCutletBurger + name: food-sequence-burger-content-lizard + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: cutlet-cooked + tags: + - Cooked + - Cutlet + - Meat + +# Spider cutlet + +- type: foodSequenceElement + id: SpiderCutlet + name: food-sequence-content-spider + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: spidercutlet-cooked + tags: + - Cooked + - Cutlet + - Meat + +- type: foodSequenceElement + id: SpiderCutletBurger + name: food-sequence-burger-content-spider + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: spidercutlet-cooked + tags: + - Cooked + - Cutlet + - Meat + +# Xeno cutlet + +- type: foodSequenceElement + id: XenoCutlet + name: food-sequence-content-xeno + sprites: + - sprite: Objects/Consumable/Food/meat.rsi + state: xenocutlet-cooked + tags: + - Cooked + - Cutlet + - Meat + +# Brain + +- type: foodSequenceElement + id: Brain + name: food-sequence-content-brain + sprites: + - sprite: Mobs/Species/Human/organs.rsi + state: brain + tags: + - Brain + - Raw + +# Banana + +- type: foodSequenceElement + id: Banana + name: food-sequence-content-banana + sprites: + - sprite: Objects/Specific/Hydroponics/banana.rsi + state: produce + tags: + - Fruit + +# Mimana + +- type: foodSequenceElement + id: Mimana + name: food-sequence-content-mimana + sprites: + - sprite: Objects/Specific/Hydroponics/mimana.rsi + state: produce + tags: + - Fruit + +# Carrot + +- type: foodSequenceElement + id: Carrot + name: food-sequence-content-carrot + sprites: + - sprite: Objects/Specific/Hydroponics/carrot.rsi + state: produce + tags: + - Vegetable + +- type: foodSequenceElement + id: CarrotBurger + name: food-sequence-burger-content-carrot + sprites: + - sprite: Objects/Specific/Hydroponics/carrot.rsi + state: produce + tags: + - Vegetable + +# Cabbage + +- type: foodSequenceElement + id: Cabbage + name: food-sequence-content-cabbage + sprites: + - sprite: Objects/Specific/Hydroponics/carrot.rsi + state: produce + tags: + - Vegetable + +- type: foodSequenceElement + id: CabbageBurger + name: food-sequence-burger-content-cabbage + sprites: + - sprite: Objects/Specific/Hydroponics/cabbage.rsi + state: produce + tags: + - Vegetable + +# Garlic + +- type: foodSequenceElement + id: Garlic + name: food-sequence-content-garlic + sprites: + - sprite: Objects/Specific/Hydroponics/garlic.rsi + state: produce + tags: + - Vegetable + +- type: foodSequenceElement + id: GarlicBurger + name: food-sequence-burger-content-garlic + sprites: + - sprite: Objects/Specific/Hydroponics/garlic.rsi + state: produce + tags: + - Vegetable + +# Lemon + +- type: foodSequenceElement + id: Lemon + name: food-sequence-content-lemon + sprites: + - sprite: Objects/Specific/Hydroponics/lemon.rsi + state: produce + tags: + - Fruit + +# Lemoon + +- type: foodSequenceElement + id: Lemoon + name: food-sequence-content-lemoon + sprites: + - sprite: Objects/Specific/Hydroponics/lemoon.rsi + state: produce + tags: + - Fruit + +# Lime + +- type: foodSequenceElement + id: Lime + name: food-sequence-content-lime + sprites: + - sprite: Objects/Specific/Hydroponics/lime.rsi + state: produce + tags: + - Fruit + +# Orange + +- type: foodSequenceElement + id: Orange + name: food-sequence-content-orange + sprites: + - sprite: Objects/Specific/Hydroponics/orange.rsi + state: produce + tags: + - Fruit + +# Potato + +- type: foodSequenceElement + id: Potato + name: food-sequence-content-potato + sprites: + - sprite: Objects/Specific/Hydroponics/potato.rsi + state: produce + tags: + - Vegetable + +# Tomato + +- type: foodSequenceElement + id: Tomato + name: food-sequence-content-tomato + sprites: + - sprite: Objects/Specific/Hydroponics/tomato.rsi + state: produce + tags: + - Fruit + - Vegetable + +- type: foodSequenceElement + id: TomatoSkewer + name: food-sequence-content-tomato + sprites: + - sprite: Objects/Consumable/Food/skewer.rsi + state: skewer-tomato + tags: + - Fruit + - Vegetable + +# Blue Tomato + +- type: foodSequenceElement + id: BlueTomato + name: food-sequence-content-tomato + sprites: + - sprite: Objects/Specific/Hydroponics/blue_tomato.rsi + state: produce + tags: + - Fruit + - Vegetable + +# Blood Tomato + +- type: foodSequenceElement + id: BloodTomato + name: food-sequence-content-tomato + sprites: + - sprite: Objects/Specific/Hydroponics/blood_tomato.rsi + state: produce + tags: + - Fruit + - Vegetable + +# Apple + +- type: foodSequenceElement + id: Apple + name: food-sequence-content-apple + sprites: + - sprite: Objects/Specific/Hydroponics/apple.rsi + state: produce + tags: + - Fruit + +# Golden Apple + +- type: foodSequenceElement + id: GoldenApple + name: food-sequence-content-apple + sprites: + - sprite: Objects/Specific/Hydroponics/golden_apple.rsi + state: produce + tags: + - Fruit + +# Pineapple + +- type: foodSequenceElement + id: PineappleSliceBurger + name: food-sequence-burger-content-pineapple + sprites: + - sprite: Objects/Specific/Hydroponics/pineapple.rsi + state: slice + tags: + - Fruit + - Slice + +- type: foodSequenceElement + id: PineappleSlice + name: food-sequence-content-pineapple + sprites: + - sprite: Objects/Specific/Hydroponics/pineapple.rsi + state: slice + tags: + - Fruit + - Slice + +# Onion + +- type: foodSequenceElement + id: OnionSliceBurger + name: food-sequence-burger-content-onion + sprites: + - sprite: Objects/Specific/Hydroponics/onion.rsi + state: slice + tags: + - Vegetable + - Slice + +- type: foodSequenceElement + id: OnionSlice + name: food-sequence-content-onion + sprites: + - sprite: Objects/Specific/Hydroponics/onion.rsi + state: slice + tags: + - Vegetable + - Slice + +# Onion red + +- type: foodSequenceElement + id: OnionRedSliceBurger + name: food-sequence-burger-content-onion + sprites: + - sprite: Objects/Specific/Hydroponics/onion_red.rsi + state: slice + tags: + - Vegetable + - Slice + +- type: foodSequenceElement + id: OnionRedSlice + name: food-sequence-content-onion + sprites: + - sprite: Objects/Specific/Hydroponics/onion_red.rsi + state: slice + tags: + - Vegetable + - Slice + +# Watermelon + +- type: foodSequenceElement + id: WatermelonSliceBurger + name: food-sequence-burger-content-watermelon + sprites: + - sprite: Objects/Specific/Hydroponics/watermelon.rsi + state: slice + tags: + - Fruit + - Slice + +- type: foodSequenceElement + id: WatermelonSlice + name: food-sequence-content-watermelon + sprites: + - sprite: Objects/Specific/Hydroponics/watermelon.rsi + state: slice + tags: + - Fruit + - Slice + +- type: foodSequenceElement + id: WatermelonSliceSkewer + name: food-sequence-content-watermelon + sprites: + - sprite: Objects/Consumable/Food/skewer.rsi + state: skewer-watermelon + tags: + - Fruit + - Slice + +# Chili pepper + +- type: foodSequenceElement + id: ChiliPepper + name: food-sequence-content-chili + sprites: + - sprite: Objects/Specific/Hydroponics/chili.rsi + state: produce + tags: + - Vegetable + +- type: foodSequenceElement + id: ChiliPepperSkewer + name: food-sequence-content-chili + sprites: + - sprite: Objects/Consumable/Food/skewer.rsi + state: skewer-pepper + tags: + - Vegetable + +# Chilly pepper + +- type: foodSequenceElement + id: ChillyPepper + name: food-sequence-content-chilly + sprites: + - sprite: Objects/Specific/Hydroponics/chilly.rsi + state: produce + tags: + - Vegetable + +- type: foodSequenceElement + id: ChillyPepperSkewer + name: food-sequence-content-chilly + sprites: + - sprite: Objects/Consumable/Food/skewer.rsi + state: skewer-bluepepper + tags: + - Vegetable + +# Corn +- type: foodSequenceElement + id: Corn + name: food-sequence-content-corn + sprites: + - sprite: Objects/Specific/Hydroponics/corn.rsi + state: produce + tags: + - Vegetable + +- type: foodSequenceElement + id: CornSkewer + name: food-sequence-content-corn + sprites: + - sprite: Objects/Consumable/Food/skewer.rsi + state: skewer-corn + tags: + - Vegetable + +# Aloe + +- type: foodSequenceElement + id: Aloe + name: food-sequence-content-aloe + sprites: + - sprite: Objects/Specific/Hydroponics/aloe.rsi + state: produce + tags: + - Vegetable + +# Poppy + +- type: foodSequenceElement + id: Poppy + name: food-sequence-content-poppy + sprites: + - sprite: Objects/Specific/Hydroponics/poppy.rsi + state: produce + tags: + - Flower + +# lily + +- type: foodSequenceElement + id: Lily + name: food-sequence-content-lily + sprites: + - sprite: Objects/Specific/Hydroponics/lily.rsi + state: produce + tags: + - Flower + +# lingzhi + +- type: foodSequenceElement + id: Lingzhi + name: food-sequence-content-mushroom + sprites: + - sprite: Objects/Specific/Hydroponics/lingzhi.rsi + state: produce + +# AmbrosiaVulgaris + +- type: foodSequenceElement + id: AmbrosiaVulgaris + name: food-sequence-content-ambrosia + sprites: + - sprite: Objects/Specific/Hydroponics/ambrosia_vulgaris.rsi + state: produce + +- type: foodSequenceElement + id: AmbrosiaVulgarisBurger + name: food-sequence-burger-content-ambrosia + sprites: + - sprite: Objects/Specific/Hydroponics/ambrosia_vulgaris.rsi + state: produce + +# AmbrosiaDeus + +- type: foodSequenceElement + id: AmbrosiaDeus + name: food-sequence-content-ambrosia + sprites: + - sprite: Objects/Specific/Hydroponics/ambrosia_deus.rsi + state: produce + +- type: foodSequenceElement + id: AmbrosiaDeusBurger + name: food-sequence-burger-content-ambrosia + sprites: + - sprite: Objects/Specific/Hydroponics/ambrosia_deus.rsi + state: produce + +# Glasstle + +- type: foodSequenceElement + id: Glasstle + name: food-sequence-content-glasstle + sprites: + - sprite: Objects/Specific/Hydroponics/glasstle.rsi + state: produce + tags: + - Fruit + +- type: foodSequenceElement + id: GlasstleBurger + name: food-sequence-burger-content-glasstle + sprites: + - sprite: Objects/Specific/Hydroponics/glasstle.rsi + state: produce + tags: + - Fruit + +# FlyAmanita + +- type: foodSequenceElement + id: FlyAmanita + name: food-sequence-content-mushroom + sprites: + - sprite: Objects/Specific/Hydroponics/fly_amanita.rsi + state: produce + +# Gatfruit + +- type: foodSequenceElement + id: Gatfruit + name: food-sequence-content-gatfruit + sprites: + - sprite: Objects/Specific/Hydroponics/gatfruit.rsi + state: produce + tags: + - Fruit + +- type: foodSequenceElement + id: GatfruitBurger + name: food-sequence-burger-content-gatfruit + sprites: + - sprite: Objects/Specific/Hydroponics/gatfruit.rsi + state: produce + tags: + - Fruit + +# Capfruit + +- type: foodSequenceElement + id: Capfruit + name: food-sequence-content-capfruit + sprites: + - sprite: Objects/Specific/Hydroponics/capfruit.rsi + state: produce + tags: + - Fruit + +- type: foodSequenceElement + id: CapfruitBurger + name: food-sequence-burger-content-capfruit + sprites: + - sprite: Objects/Specific/Hydroponics/capfruit.rsi + state: produce + tags: + - Fruit + +# Soybeans + +- type: foodSequenceElement + id: Soybeans + name: food-sequence-content-soy + sprites: + - sprite: Objects/Specific/Hydroponics/soybeans.rsi + state: produce + tags: + - Vegetable + +- type: foodSequenceElement + id: SoybeansBurger + name: food-sequence-burger-content-soy + sprites: + - sprite: Objects/Specific/Hydroponics/soybeans.rsi + state: produce + tags: + - Vegetable + +# SpacemansTrumpet + +- type: foodSequenceElement + id: SpacemansTrumpet + name: food-sequence-content-spacemans-trumpet + sprites: + - sprite: Objects/Specific/Hydroponics/spacemans_trumpet.rsi + state: produce + tags: + - Flower + +- type: foodSequenceElement + id: SpacemansTrumpetBurger + name: food-sequence-burger-content-spacemans-trumpet + sprites: + - sprite: Objects/Specific/Hydroponics/spacemans_trumpet.rsi + state: produce + tags: + - Flower + +# Koibean + +- type: foodSequenceElement + id: Koibean + name: food-sequence-content-koibean + sprites: + - sprite: Objects/Specific/Hydroponics/koibean.rsi + state: produce + tags: + - Fruit + +- type: foodSequenceElement + id: KoibeanBurger + name: food-sequence-burger-content-koibean + sprites: + - sprite: Objects/Specific/Hydroponics/koibean.rsi + state: produce + tags: + - Fruit + +# Galaxythistle + +- type: foodSequenceElement + id: Galaxythistle + name: food-sequence-content-galaxy + sprites: + - sprite: Objects/Specific/Hydroponics/galaxythistle.rsi + state: produce + tags: + - Fruit + +- type: foodSequenceElement + id: GalaxythistleBurger + name: food-sequence-burger-content-galaxy + sprites: + - sprite: Objects/Specific/Hydroponics/galaxythistle.rsi + state: produce + tags: + - Fruit + +# bungo + +- type: foodSequenceElement + id: Bungo + name: food-sequence-content-bungo + sprites: + - sprite: Objects/Specific/Hydroponics/bungo.rsi + state: produce + tags: + - Fruit + +# Pea + +- type: foodSequenceElement + id: Pea + name: food-sequence-content-pea + sprites: + - sprite: Objects/Specific/Hydroponics/pea.rsi + state: produce + tags: + - Vegetable + +# Cherry + +- type: foodSequenceElement + id: Cherry + name: food-sequence-content-cherry + sprites: + - sprite: Objects/Specific/Hydroponics/cherry.rsi + state: produce + tags: + - Fruit + +# Berries + +- type: foodSequenceElement + id: Berries + name: food-sequence-content-berries + sprites: + - sprite: Objects/Specific/Hydroponics/berries.rsi + state: produce + tags: + - Fruit + +- type: foodSequenceElement + id: BerriesBurger + name: food-sequence-burger-content-berries + sprites: + - sprite: Objects/Specific/Hydroponics/berries.rsi + state: produce + tags: + - Fruit + +# Suppermatter + +- type: foodSequenceElement + id: Suppermatter + name: food-sequence-content-suppermatter + sprites: + - sprite: Objects/Consumable/Food/Baked/cake.rsi + state: suppermatter-shard + +- type: foodSequenceElement + id: SuppermatterBurger + name: food-sequence-burger-content-suppermatter + sprites: + - sprite: Objects/Consumable/Food/Baked/cake.rsi + state: suppermatter-shard diff --git a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml index fb1280daff..8dc25c1c72 100644 --- a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml +++ b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml @@ -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 diff --git a/Resources/Prototypes/Recipes/Cooking/sequence_metamorph.yml b/Resources/Prototypes/Recipes/Cooking/sequence_metamorph.yml new file mode 100644 index 0000000000..95f1c97a22 --- /dev/null +++ b/Resources/Prototypes/Recipes/Cooking/sequence_metamorph.yml @@ -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 \ No newline at end of file diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 7daf090b46..b8ee4d4efd 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -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 diff --git a/Resources/Textures/Mobs/Species/Human/organs.rsi/brain.png b/Resources/Textures/Mobs/Species/Human/organs.rsi/brain.png index 04d04890f6..c4b6ac6385 100644 Binary files a/Resources/Textures/Mobs/Species/Human/organs.rsi/brain.png and b/Resources/Textures/Mobs/Species/Human/organs.rsi/brain.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/burger.rsi/meta.json b/Resources/Textures/Objects/Consumable/Food/burger.rsi/meta.json index 2ad83dfc3c..42c8c461e9 100644 --- a/Resources/Textures/Objects/Consumable/Food/burger.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Food/burger.rsi/meta.json @@ -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" }, diff --git a/Resources/Textures/Objects/Consumable/Food/burger.rsi/screwed.png b/Resources/Textures/Objects/Consumable/Food/burger.rsi/screwed.png new file mode 100644 index 0000000000..d9a33730f6 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/burger.rsi/screwed.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/burger.rsi/bun_bottom.png b/Resources/Textures/Objects/Consumable/Food/burger_sequence.rsi/bun_bottom.png similarity index 100% rename from Resources/Textures/Objects/Consumable/Food/burger.rsi/bun_bottom.png rename to Resources/Textures/Objects/Consumable/Food/burger_sequence.rsi/bun_bottom.png diff --git a/Resources/Textures/Objects/Consumable/Food/burger.rsi/bun_top.png b/Resources/Textures/Objects/Consumable/Food/burger_sequence.rsi/bun_top.png similarity index 100% rename from Resources/Textures/Objects/Consumable/Food/burger.rsi/bun_top.png rename to Resources/Textures/Objects/Consumable/Food/burger_sequence.rsi/bun_top.png diff --git a/Resources/Textures/Objects/Consumable/Food/burger_sequence.rsi/cheese.png b/Resources/Textures/Objects/Consumable/Food/burger_sequence.rsi/cheese.png new file mode 100644 index 0000000000..2678c7f7d6 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/burger_sequence.rsi/cheese.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/burger_sequence.rsi/meta.json b/Resources/Textures/Objects/Consumable/Food/burger_sequence.rsi/meta.json new file mode 100644 index 0000000000..2b9671e9b4 --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Food/burger_sequence.rsi/meta.json @@ -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" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/meta.json b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/meta.json index bf65bed84b..f99e5d77d4 100644 --- a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/meta.json @@ -42,6 +42,9 @@ }, { "name": "skewer-snake" + }, + { + "name": "skewer-watermelon" } ] } diff --git a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-tomato.png b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-tomato.png index 4cefaada53..46bbdc372d 100644 Binary files a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-tomato.png and b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-tomato.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-watermelon.png b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-watermelon.png new file mode 100644 index 0000000000..1e0146459e Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-watermelon.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/taco.rsi/beeftaco.png b/Resources/Textures/Objects/Consumable/Food/taco.rsi/beeftaco.png new file mode 100644 index 0000000000..36e605235b Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/taco.rsi/beeftaco.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/taco.rsi/beeftacosupreme.png b/Resources/Textures/Objects/Consumable/Food/taco.rsi/beeftacosupreme.png new file mode 100644 index 0000000000..4db06131dc Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/taco.rsi/beeftacosupreme.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/taco.rsi/chickentaco.png b/Resources/Textures/Objects/Consumable/Food/taco.rsi/chickentaco.png new file mode 100644 index 0000000000..014e20c0e9 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/taco.rsi/chickentaco.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/taco.rsi/chickentacosupreme.png b/Resources/Textures/Objects/Consumable/Food/taco.rsi/chickentacosupreme.png new file mode 100644 index 0000000000..ac07ed66b2 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/taco.rsi/chickentacosupreme.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/taco.rsi/fishtaco.png b/Resources/Textures/Objects/Consumable/Food/taco.rsi/fishtaco.png new file mode 100644 index 0000000000..4a2a605523 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/taco.rsi/fishtaco.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/taco.rsi/meta.json b/Resources/Textures/Objects/Consumable/Food/taco.rsi/meta.json index 6f07c71238..71bda2cd42 100644 --- a/Resources/Textures/Objects/Consumable/Food/taco.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Food/taco.rsi/meta.json @@ -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" } ] -} +} \ No newline at end of file diff --git a/Resources/Textures/Objects/Consumable/Food/taco.rsi/rattaco.png b/Resources/Textures/Objects/Consumable/Food/taco.rsi/rattaco.png new file mode 100644 index 0000000000..f80673f6a6 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/taco.rsi/rattaco.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/taco.rsi/tacoshell_back.png b/Resources/Textures/Objects/Consumable/Food/taco.rsi/tacoshell_back.png deleted file mode 100644 index 979a8a92d8..0000000000 Binary files a/Resources/Textures/Objects/Consumable/Food/taco.rsi/tacoshell_back.png and /dev/null differ diff --git a/Resources/Textures/Objects/Consumable/Food/taco.rsi/tacoshell_forward.png b/Resources/Textures/Objects/Consumable/Food/taco.rsi/tacoshell_forward.png deleted file mode 100644 index 4d01f637fe..0000000000 Binary files a/Resources/Textures/Objects/Consumable/Food/taco.rsi/tacoshell_forward.png and /dev/null differ diff --git a/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/cheese.png b/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/cheese.png new file mode 100644 index 0000000000..59c459e0c2 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/cheese.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/meta.json b/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/meta.json new file mode 100644 index 0000000000..7704812eed --- /dev/null +++ b/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/meta.json @@ -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" + } + ] +} diff --git a/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/rat.png b/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/rat.png new file mode 100644 index 0000000000..6dde4d7989 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/rat.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/tacoshell_back.png b/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/tacoshell_back.png new file mode 100644 index 0000000000..7cd31d3b69 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/tacoshell_back.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/tacoshell_forward.png b/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/tacoshell_forward.png new file mode 100644 index 0000000000..6c517b8dc2 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/taco_sequence.rsi/tacoshell_forward.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/pineapple.rsi/slice.png b/Resources/Textures/Objects/Specific/Hydroponics/pineapple.rsi/slice.png index 1c4d96d8e1..50882ec820 100644 Binary files a/Resources/Textures/Objects/Specific/Hydroponics/pineapple.rsi/slice.png and b/Resources/Textures/Objects/Specific/Hydroponics/pineapple.rsi/slice.png differ