using SS14.Shared.Prototypes; using SS14.Shared.Serialization; using SS14.Shared.Utility; using YamlDotNet.RepresentationModel; namespace Content.Shared.Research { [Prototype("latheRecipe")] public class LatheRecipePrototype : IPrototype, IIndexedPrototype { private string _name; private string _id; private SpriteSpecifier _icon; private string _description; private string _result; private bool _hacked; private string _latheType; public string ID => _id; /// /// Name displayed in the lathe GUI. /// public string Name => _name; /// /// Short description displayed in the lathe GUI. /// public string Description => _description; /// /// Texture path used in the lathe GUI. /// public SpriteSpecifier Icon => _icon; /// /// The prototype name of the resulting entity when the recipe is printed. /// public string Result => _result; /// /// Whether the lathe should be hacked to unlock this recipe. /// public bool Hacked => _hacked; /// /// The type of lathe that'll print this recipe. /// TODO: Replace with an enum before merging, henk! /// public string LatheType => _latheType; public void LoadFrom(YamlMappingNode mapping) { var serializer = YamlObjectSerializer.NewReader(mapping); _name = serializer.ReadDataField("name"); serializer.DataField(ref _id, "id", string.Empty); serializer.DataField(ref _description, "description", string.Empty); serializer.DataField(ref _icon, "icon", SpriteSpecifier.Invalid); serializer.DataField(ref _result, "result", null); serializer.DataField(ref _hacked, "hacked", false); serializer.DataField(ref _latheType, "lathetype", "default"); } } }