Salvage mining, ore processing, and material clean-up (#7406)
* adding stuff cuz new computer
* removed unused materials
* remove unused materials and such, lathe things
* material volume no longer hardcoded
* fixed mining system
* add 5 stacks of materials, and add them to the ore processor
* fix copyright for ores and handdrill
* comma momma
* whyyyyy
* more fixes to make the yaml linter happy
* i should get my eyes checked
* silver proper
* more cleanup
* leftovers
* remove more references to material doors
* couldn't bear to be without bearhide
* added uranium, added more lathe recipes
* copyright fix, stack fix
* ore processor sprite and such
* ore processing some binches
* MaterialCotton removal
* 1 uranium ore means 1 sheet
* fix merge conflict? idk
* time to ketchup
* lathe recognizes material volume again
* yaml cleanup
* forgot to remove adamantine lol
* re-added diamond for now
* diamond stacks
* functional ore processor
* added ignoreColor to lathe visuals
* ore processor machine board
* add board to industrial tech and circuit printer
* provided lathes their whitelists
* fix wonky ore spawning, added insert sound to lathe, adjusted ore chance
* re-added ore processor
* typos and cleanup
* Update Content.Client/Lathe/LatheSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/Lathe/LatheSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* revert mapchange
* VV ignorecolor, pass entitymanager, move canceltoken to pickaxe, removed foreach from orespawn
* actually null canceltoken
* remove five-stacks, ore processor produces full stacks or single sheets/ingots
* VV proper
* adjust ore chances
* readd Cotton
* Update Content.Server/Mining/MineableSystem.cs
* tweaks
* Material is now dict (material, volume)
* removed unused property
* Space crystal -> space quartz
* forgor asteroid space quartz
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-04-28 03:41:04 -07:00
|
|
|
using System.Linq;
|
2021-05-20 10:37:34 +02:00
|
|
|
using Content.Shared.Materials;
|
|
|
|
|
using Robust.Shared.Prototypes;
|
Salvage mining, ore processing, and material clean-up (#7406)
* adding stuff cuz new computer
* removed unused materials
* remove unused materials and such, lathe things
* material volume no longer hardcoded
* fixed mining system
* add 5 stacks of materials, and add them to the ore processor
* fix copyright for ores and handdrill
* comma momma
* whyyyyy
* more fixes to make the yaml linter happy
* i should get my eyes checked
* silver proper
* more cleanup
* leftovers
* remove more references to material doors
* couldn't bear to be without bearhide
* added uranium, added more lathe recipes
* copyright fix, stack fix
* ore processor sprite and such
* ore processing some binches
* MaterialCotton removal
* 1 uranium ore means 1 sheet
* fix merge conflict? idk
* time to ketchup
* lathe recognizes material volume again
* yaml cleanup
* forgot to remove adamantine lol
* re-added diamond for now
* diamond stacks
* functional ore processor
* added ignoreColor to lathe visuals
* ore processor machine board
* add board to industrial tech and circuit printer
* provided lathes their whitelists
* fix wonky ore spawning, added insert sound to lathe, adjusted ore chance
* re-added ore processor
* typos and cleanup
* Update Content.Client/Lathe/LatheSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/Lathe/LatheSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* revert mapchange
* VV ignorecolor, pass entitymanager, move canceltoken to pickaxe, removed foreach from orespawn
* actually null canceltoken
* remove five-stacks, ore processor produces full stacks or single sheets/ingots
* VV proper
* adjust ore chances
* readd Cotton
* Update Content.Server/Mining/MineableSystem.cs
* tweaks
* Material is now dict (material, volume)
* removed unused property
* Space crystal -> space quartz
* forgor asteroid space quartz
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-04-28 03:41:04 -07:00
|
|
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary;
|
2021-05-20 10:37:34 +02:00
|
|
|
|
2021-06-09 22:19:39 +02:00
|
|
|
namespace Content.Server.Materials
|
2021-05-20 10:37:34 +02:00
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Component to store data such as "this object is made out of steel".
|
|
|
|
|
/// This is not a storage system for say smelteries.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[RegisterComponent]
|
2022-02-16 00:23:23 -07:00
|
|
|
public sealed class MaterialComponent : Component
|
2021-05-20 10:37:34 +02:00
|
|
|
{
|
|
|
|
|
[ViewVariables]
|
Salvage mining, ore processing, and material clean-up (#7406)
* adding stuff cuz new computer
* removed unused materials
* remove unused materials and such, lathe things
* material volume no longer hardcoded
* fixed mining system
* add 5 stacks of materials, and add them to the ore processor
* fix copyright for ores and handdrill
* comma momma
* whyyyyy
* more fixes to make the yaml linter happy
* i should get my eyes checked
* silver proper
* more cleanup
* leftovers
* remove more references to material doors
* couldn't bear to be without bearhide
* added uranium, added more lathe recipes
* copyright fix, stack fix
* ore processor sprite and such
* ore processing some binches
* MaterialCotton removal
* 1 uranium ore means 1 sheet
* fix merge conflict? idk
* time to ketchup
* lathe recognizes material volume again
* yaml cleanup
* forgot to remove adamantine lol
* re-added diamond for now
* diamond stacks
* functional ore processor
* added ignoreColor to lathe visuals
* ore processor machine board
* add board to industrial tech and circuit printer
* provided lathes their whitelists
* fix wonky ore spawning, added insert sound to lathe, adjusted ore chance
* re-added ore processor
* typos and cleanup
* Update Content.Client/Lathe/LatheSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/Lathe/LatheSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* revert mapchange
* VV ignorecolor, pass entitymanager, move canceltoken to pickaxe, removed foreach from orespawn
* actually null canceltoken
* remove five-stacks, ore processor produces full stacks or single sheets/ingots
* VV proper
* adjust ore chances
* readd Cotton
* Update Content.Server/Mining/MineableSystem.cs
* tweaks
* Material is now dict (material, volume)
* removed unused property
* Space crystal -> space quartz
* forgor asteroid space quartz
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-04-28 03:41:04 -07:00
|
|
|
[DataField("materials", customTypeSerializer:typeof(PrototypeIdDictionarySerializer<int, MaterialPrototype>))]
|
2021-05-20 10:37:34 +02:00
|
|
|
// ReSharper disable once CollectionNeverUpdated.Local
|
Salvage mining, ore processing, and material clean-up (#7406)
* adding stuff cuz new computer
* removed unused materials
* remove unused materials and such, lathe things
* material volume no longer hardcoded
* fixed mining system
* add 5 stacks of materials, and add them to the ore processor
* fix copyright for ores and handdrill
* comma momma
* whyyyyy
* more fixes to make the yaml linter happy
* i should get my eyes checked
* silver proper
* more cleanup
* leftovers
* remove more references to material doors
* couldn't bear to be without bearhide
* added uranium, added more lathe recipes
* copyright fix, stack fix
* ore processor sprite and such
* ore processing some binches
* MaterialCotton removal
* 1 uranium ore means 1 sheet
* fix merge conflict? idk
* time to ketchup
* lathe recognizes material volume again
* yaml cleanup
* forgot to remove adamantine lol
* re-added diamond for now
* diamond stacks
* functional ore processor
* added ignoreColor to lathe visuals
* ore processor machine board
* add board to industrial tech and circuit printer
* provided lathes their whitelists
* fix wonky ore spawning, added insert sound to lathe, adjusted ore chance
* re-added ore processor
* typos and cleanup
* Update Content.Client/Lathe/LatheSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/Lathe/LatheSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* revert mapchange
* VV ignorecolor, pass entitymanager, move canceltoken to pickaxe, removed foreach from orespawn
* actually null canceltoken
* remove five-stacks, ore processor produces full stacks or single sheets/ingots
* VV proper
* adjust ore chances
* readd Cotton
* Update Content.Server/Mining/MineableSystem.cs
* tweaks
* Material is now dict (material, volume)
* removed unused property
* Space crystal -> space quartz
* forgor asteroid space quartz
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-04-28 03:41:04 -07:00
|
|
|
public readonly Dictionary<string, int> _materials = new();
|
|
|
|
|
public List<string> MaterialIds => _materials.Keys.ToList();
|
2021-05-20 10:37:34 +02:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Returns all materials which make up this entity.
|
|
|
|
|
/// This property has an IoC resolve and is generally slow, so be sure to cache the results if needed.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[ViewVariables]
|
|
|
|
|
public IEnumerable<MaterialPrototype> Materials
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
var prototypeManager = IoCManager.Resolve<IPrototypeManager>();
|
|
|
|
|
|
|
|
|
|
foreach (var id in MaterialIds)
|
|
|
|
|
{
|
|
|
|
|
if(prototypeManager.TryIndex<MaterialPrototype>(id, out var material))
|
|
|
|
|
yield return material;
|
|
|
|
|
else
|
|
|
|
|
Logger.Error($"Material prototype {id} does not exist! Entity: {Owner}");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|