diff --git a/Content.Client/Lathe/Components/LatheVisualsComponent.cs b/Content.Client/Lathe/Components/LatheVisualsComponent.cs
index 9622641787..a38f22ce20 100644
--- a/Content.Client/Lathe/Components/LatheVisualsComponent.cs
+++ b/Content.Client/Lathe/Components/LatheVisualsComponent.cs
@@ -2,7 +2,7 @@ namespace Content.Client.Lathe;
///
/// Holds the idle and running state for machines to control
-/// playing animtions on the client.
+/// playing animations on the client.
///
[RegisterComponent]
public sealed class LatheVisualsComponent : Component
@@ -12,4 +12,8 @@ public sealed class LatheVisualsComponent : Component
[DataField("runningState", required: true)]
public string RunningState = default!;
+
+ [ViewVariables]
+ [DataField("ignoreColor")]
+ public bool IgnoreColor;
}
diff --git a/Content.Client/Lathe/LatheSystem.cs b/Content.Client/Lathe/LatheSystem.cs
index 304ef397db..a62d820368 100644
--- a/Content.Client/Lathe/LatheSystem.cs
+++ b/Content.Client/Lathe/LatheSystem.cs
@@ -29,9 +29,10 @@ namespace Content.Client.Lathe
if (args.Component.TryGetData(LatheVisuals.IsInserting, out bool isInserting)
&& sprite.LayerMapTryGet(LatheVisualLayers.IsInserting, out var isInsertingLayer))
{
- if (args.Component.TryGetData(LatheVisuals.InsertingColor, out Color color))
+ if (args.Component.TryGetData(LatheVisuals.InsertingColor, out Color color)
+ && !component.IgnoreColor)
sprite.LayerSetColor(isInsertingLayer, color);
-
+
sprite.LayerSetAnimationTime(isInsertingLayer, 0f);
sprite.LayerSetVisible(isInsertingLayer, isInserting);
}
diff --git a/Content.Client/Lathe/UI/LatheMenu.cs b/Content.Client/Lathe/UI/LatheMenu.cs
index 2f31748000..44103d77f2 100644
--- a/Content.Client/Lathe/UI/LatheMenu.cs
+++ b/Content.Client/Lathe/UI/LatheMenu.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using Content.Client.Lathe.Components;
+using Content.Shared.Lathe;
using Content.Shared.Materials;
using Content.Shared.Research.Prototypes;
using Robust.Client.UserInterface;
@@ -35,7 +36,7 @@ namespace Content.Client.Lathe.UI
Owner = owner;
- Title = "Lathe Menu";
+ Title = "Lathe Menu"; // TODO Replace this with the name of the lathe itself
var vBox = new BoxContainer
{
diff --git a/Content.Server/Lathe/Components/LatheComponent.cs b/Content.Server/Lathe/Components/LatheComponent.cs
index 13ad772c79..cd32e2aba9 100644
--- a/Content.Server/Lathe/Components/LatheComponent.cs
+++ b/Content.Server/Lathe/Components/LatheComponent.cs
@@ -3,6 +3,7 @@ using Content.Shared.Lathe;
using Content.Shared.Research.Prototypes;
using Robust.Server.GameObjects;
using Content.Shared.Sound;
+using Content.Shared.Whitelist;
namespace Content.Server.Lathe.Components
{
@@ -10,9 +11,11 @@ namespace Content.Server.Lathe.Components
public sealed class LatheComponent : SharedLatheComponent
{
///
- /// How much volume in cm^3 each sheet of material adds
+ /// Whitelist for specifying the kind of materials that can be insert into the lathe
///
- public int VolumePerSheet = 100;
+ [ViewVariables]
+ [DataField("whitelist")]
+ public EntityWhitelist? LatheWhitelist;
///
/// The lathe's construction queue
@@ -46,10 +49,16 @@ namespace Content.Server.Lathe.Components
///
[DataField("producingSound")]
public SoundSpecifier? ProducingSound;
+
+ ///
+ /// The sound that plays when inserting an item into the lathe, if any
+ ///
+ [DataField("insertingSound")]
+ public SoundSpecifier? InsertingSound;
///
/// The lathe's UI.
///
[ViewVariables] public BoundUserInterface? UserInterface;
}
-}
+}
\ No newline at end of file
diff --git a/Content.Server/Lathe/LatheSystem.cs b/Content.Server/Lathe/LatheSystem.cs
index cdb37f42ab..8ff8769f93 100644
--- a/Content.Server/Lathe/LatheSystem.cs
+++ b/Content.Server/Lathe/LatheSystem.cs
@@ -102,7 +102,9 @@ namespace Content.Server.Lathe
///
private void OnInteractUsing(EntityUid uid, LatheComponent component, InteractUsingEvent args)
{
- if (!TryComp(uid, out var storage) || !TryComp(args.Used, out var material))
+ if (!TryComp(uid, out var storage)
+ || !TryComp(args.Used, out var material)
+ || component.LatheWhitelist?.IsValid(args.Used) == false)
return;
var multiplier = 1;
@@ -113,24 +115,30 @@ namespace Content.Server.Lathe
var totalAmount = 0;
// Check if it can insert all materials.
- foreach (var mat in material.MaterialIds)
+ foreach (var (mat, vol) in material._materials)
{
- // TODO: Change how MaterialComponent works so this is not hard-coded.
- if (!storage.CanInsertMaterial(mat, component.VolumePerSheet * multiplier))
- return;
- totalAmount += component.VolumePerSheet * multiplier;
+ if (!storage.CanInsertMaterial(mat,
+ vol * multiplier)) return;
+ totalAmount += vol * multiplier;
}
// Check if it can take ALL of the material's volume.
if (storage.StorageLimit > 0 && !storage.CanTakeAmount(totalAmount))
return;
var lastMat = string.Empty;
- foreach (var mat in material.MaterialIds)
+ foreach (var (mat, vol) in material._materials)
{
- storage.InsertMaterial(mat, component.VolumePerSheet * multiplier);
+ storage.InsertMaterial(mat, vol * multiplier);
lastMat = mat;
}
- /// We need the prototype to get the color
+
+ // Play a sound when inserting, if any
+ if (component.InsertingSound != null)
+ {
+ SoundSystem.Play(Filter.Pvs(component.Owner, entityManager: EntityManager), component.InsertingSound.GetSound(), component.Owner);
+ }
+
+ // We need the prototype to get the color
_prototypeManager.TryIndex(lastMat, out MaterialPrototype? matProto);
EntityManager.QueueDeleteEntity(args.Used);
diff --git a/Content.Server/Materials/MaterialComponent.cs b/Content.Server/Materials/MaterialComponent.cs
index 5b99041459..0f71902538 100644
--- a/Content.Server/Materials/MaterialComponent.cs
+++ b/Content.Server/Materials/MaterialComponent.cs
@@ -1,12 +1,7 @@
-using System.Collections.Generic;
+using System.Linq;
using Content.Shared.Materials;
-using Robust.Shared.GameObjects;
-using Robust.Shared.IoC;
-using Robust.Shared.Log;
using Robust.Shared.Prototypes;
-using Robust.Shared.Serialization.Manager.Attributes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
-using Robust.Shared.ViewVariables;
+using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary;
namespace Content.Server.Materials
{
@@ -18,10 +13,10 @@ namespace Content.Server.Materials
public sealed class MaterialComponent : Component
{
[ViewVariables]
- [DataField("materials", customTypeSerializer:typeof(PrototypeIdListSerializer))]
+ [DataField("materials", customTypeSerializer:typeof(PrototypeIdDictionarySerializer))]
// ReSharper disable once CollectionNeverUpdated.Local
- private readonly List _materials = new();
- public IEnumerable MaterialIds => _materials;
+ public readonly Dictionary _materials = new();
+ public List MaterialIds => _materials.Keys.ToList();
///
/// Returns all materials which make up this entity.
diff --git a/Content.Server/Mining/Components/MineableComponent.cs b/Content.Server/Mining/Components/MineableComponent.cs
index edbfbdbc8c..0368bcc9e1 100644
--- a/Content.Server/Mining/Components/MineableComponent.cs
+++ b/Content.Server/Mining/Components/MineableComponent.cs
@@ -1,5 +1,5 @@
-using Robust.Shared.Analyzers;
-using Robust.Shared.GameObjects;
+using System.Threading;
+using Content.Shared.Storage;
namespace Content.Server.Mining.Components;
@@ -7,5 +7,6 @@ namespace Content.Server.Mining.Components;
[Friend(typeof(MineableSystem))]
public sealed class MineableComponent : Component
{
+ [DataField("ores")] public List Ores = new();
public float BaseMineTime = 1.0f;
}
diff --git a/Content.Server/Mining/Components/PickaxeComponent.cs b/Content.Server/Mining/Components/PickaxeComponent.cs
index d3f1a0c9da..181ed2757a 100644
--- a/Content.Server/Mining/Components/PickaxeComponent.cs
+++ b/Content.Server/Mining/Components/PickaxeComponent.cs
@@ -1,17 +1,20 @@
-using System.Collections.Generic;
+using System.Threading;
using Content.Shared.Damage;
using Content.Shared.Sound;
-using Robust.Shared.GameObjects;
-using Robust.Shared.Serialization.Manager.Attributes;
namespace Content.Server.Mining.Components
{
+ ///
+ /// When interacting with an allows it to spawn entities.
+ ///
[RegisterComponent]
public sealed class PickaxeComponent : Component
{
+ [ViewVariables(VVAccess.ReadWrite)]
[DataField("sound")]
public SoundSpecifier MiningSound { get; set; } = new SoundPathSpecifier("/Audio/Items/Mining/pickaxe.ogg");
+ [ViewVariables(VVAccess.ReadWrite)]
[DataField("timeMultiplier")]
public float MiningTimeMultiplier { get; set; } = 1f;
@@ -25,9 +28,11 @@ namespace Content.Server.Mining.Components
///
/// How many entities can this pickaxe mine at once?
///
+ [ViewVariables(VVAccess.ReadWrite)]
[DataField("maxEntities")]
public int MaxMiningEntities = 1;
- public HashSet MiningEntities = new();
+ [ViewVariables]
+ public readonly Dictionary MiningEntities = new();
}
}
diff --git a/Content.Server/Mining/MineableSystem.cs b/Content.Server/Mining/MineableSystem.cs
index 0426d10dd8..7b25f1e9f5 100644
--- a/Content.Server/Mining/MineableSystem.cs
+++ b/Content.Server/Mining/MineableSystem.cs
@@ -1,11 +1,12 @@
-using Content.Server.DoAfter;
+using System.Threading;
+using Content.Server.DoAfter;
using Content.Server.Mining.Components;
using Content.Shared.Damage;
using Content.Shared.Interaction;
+using Content.Shared.Storage;
using Robust.Shared.Audio;
-using Robust.Shared.GameObjects;
-using Robust.Shared.IoC;
using Robust.Shared.Player;
+using Robust.Shared.Random;
namespace Content.Server.Mining;
@@ -13,6 +14,7 @@ public sealed class MineableSystem : EntitySystem
{
[Dependency] private readonly DoAfterSystem _doAfterSystem = default!;
[Dependency] private readonly DamageableSystem _damageableSystem = default!;
+ [Dependency] private readonly IRobustRandom _random = null!;
public override void Initialize()
{
@@ -20,7 +22,7 @@ public sealed class MineableSystem : EntitySystem
SubscribeLocalEvent(OnInteractUsing);
SubscribeLocalEvent(OnDoafterCancel);
- SubscribeLocalEvent(OnDoafterSuccess);
+ SubscribeLocalEvent(OnDoafterSuccess);
}
private void OnInteractUsing(EntityUid uid, MineableComponent component, InteractUsingEvent args)
@@ -28,45 +30,63 @@ public sealed class MineableSystem : EntitySystem
if (!TryComp(args.Used, out var pickaxe))
return;
+ if (pickaxe.MiningEntities.TryGetValue(uid, out var cancelToken))
+ {
+ cancelToken.Cancel();
+ pickaxe.MiningEntities.Remove(uid);
+ return;
+ }
+
// Can't mine too many entities at once.
if (pickaxe.MaxMiningEntities < pickaxe.MiningEntities.Count + 1)
return;
- // Can't mine one object multiple times.
- if (!pickaxe.MiningEntities.Add(uid))
- return;
+ cancelToken = new CancellationTokenSource();
+ pickaxe.MiningEntities[uid] = cancelToken;
- var doAfter = new DoAfterEventArgs(args.User, component.BaseMineTime * pickaxe.MiningTimeMultiplier, default, uid)
+ var doAfter = new DoAfterEventArgs(args.User, component.BaseMineTime * pickaxe.MiningTimeMultiplier, cancelToken.Token, uid)
{
BreakOnDamage = true,
BreakOnStun = true,
BreakOnTargetMove = true,
BreakOnUserMove = true,
- MovementThreshold = 0.5f,
- BroadcastCancelledEvent = new MiningDoafterCancel() { Pickaxe = args.Used, Rock = uid },
- BroadcastFinishedEvent = new MiningDoafterSuccess() { Pickaxe = args.Used, Rock = uid }
+ MovementThreshold = 0.25f,
+ BroadcastCancelledEvent = new MiningDoafterCancel { Pickaxe = args.Used, Rock = uid },
+ TargetFinishedEvent = new MiningDoafterSuccess { Pickaxe = args.Used, Rock = uid, Player = args.User }
};
_doAfterSystem.DoAfter(doAfter);
}
- private void OnDoafterSuccess(MiningDoafterSuccess ev)
+ private void OnDoafterSuccess(EntityUid uid, MineableComponent component, MiningDoafterSuccess ev)
{
if (!TryComp(ev.Pickaxe, out PickaxeComponent? pickaxe))
return;
_damageableSystem.TryChangeDamage(ev.Rock, pickaxe.Damage);
- SoundSystem.Play(Filter.Pvs(ev.Rock), pickaxe.MiningSound.GetSound(), ev.Rock, AudioParams.Default);
+ SoundSystem.Play(Filter.Pvs(ev.Rock, entityManager: EntityManager), pickaxe.MiningSound.GetSound(), ev.Rock);
pickaxe.MiningEntities.Remove(ev.Rock);
+
+ var spawnOre = EntitySpawnCollection.GetSpawns(component.Ores, _random);
+ var playerPos = Transform(ev.Player).MapPosition;
+ var spawnPos = playerPos.Offset(_random.NextVector2(0.3f));
+ EntityManager.SpawnEntity(spawnOre[0], spawnPos);
+ pickaxe.MiningEntities.Remove(uid);
}
private void OnDoafterCancel(MiningDoafterCancel ev)
{
- if (!TryComp(ev.Pickaxe, out PickaxeComponent? pickaxe))
+ if (!TryComp(ev.Pickaxe, out var pickaxe))
return;
pickaxe.MiningEntities.Remove(ev.Rock);
}
+
+ private sealed class MiningDoafterCancel : EntityEventArgs
+ {
+ public EntityUid Pickaxe;
+ public EntityUid Rock;
+ }
}
// grumble grumble
@@ -74,10 +94,6 @@ public sealed class MiningDoafterSuccess : EntityEventArgs
{
public EntityUid Pickaxe;
public EntityUid Rock;
+ public EntityUid Player;
}
-public sealed class MiningDoafterCancel : EntityEventArgs
-{
- public EntityUid Pickaxe;
- public EntityUid Rock;
-}
diff --git a/Resources/Maps/nss_pillar.yml b/Resources/Maps/nss_pillar.yml
index 89b6478ead..87d4202470 100644
--- a/Resources/Maps/nss_pillar.yml
+++ b/Resources/Maps/nss_pillar.yml
@@ -29565,6 +29565,13 @@ entities:
pos: -73.5,33.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 1445
type: AirlockExternalGlassShuttleLocked
components:
@@ -29572,6 +29579,13 @@ entities:
pos: -67.5,33.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 1446
type: AirlockExternalGlassLocked
components:
@@ -29591,6 +29605,13 @@ entities:
pos: -61.5,33.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 1449
type: ReinforcedWindow
components:
@@ -34960,6 +34981,13 @@ entities:
pos: -46.5,46.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 2162
type: PoweredSmallLight
components:
@@ -99866,6 +99894,13 @@ entities:
pos: -42.5,46.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 8313
type: WallReinforced
components:
@@ -107635,6 +107670,13 @@ entities:
pos: -83.5,24.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 9241
type: AirlockExternalGlassShuttleLocked
components:
@@ -107642,6 +107684,13 @@ entities:
pos: -83.5,25.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 9242
type: ReinforcedWindow
components:
@@ -107760,6 +107809,13 @@ entities:
pos: -79.5,29.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 9257
type: AirlockExternalGlassShuttleLocked
components:
@@ -107767,6 +107823,13 @@ entities:
pos: -80.5,29.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 9258
type: CableApcExtension
components:
@@ -109983,6 +110046,13 @@ entities:
changeAirtight: False
state: Opening
type: Door
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 9482
type: AirlockShuttle
components:
@@ -109995,6 +110065,13 @@ entities:
changeAirtight: False
state: Opening
type: Door
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 9483
type: WallReinforced
components:
@@ -112979,6 +113056,13 @@ entities:
changeAirtight: False
state: Opening
type: Door
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 9801
type: AirlockShuttle
components:
@@ -112992,6 +113076,13 @@ entities:
changeAirtight: False
state: Opening
type: Door
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 9802
type: SignShipDock
components:
@@ -114505,6 +114596,13 @@ entities:
pos: -43.5,-29.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 9979
type: FirelockGlass
components:
@@ -114534,6 +114632,13 @@ entities:
pos: -43.5,-25.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 9983
type: ReinforcedWindow
components:
@@ -114703,6 +114808,13 @@ entities:
changeAirtight: False
state: Opening
type: Door
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 10009
type: AirlockShuttle
components:
@@ -114715,6 +114827,13 @@ entities:
changeAirtight: False
state: Opening
type: Door
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 10010
type: CableApcExtension
components:
@@ -127293,6 +127412,13 @@ entities:
pos: 65.5,19.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 11270
type: AirlockShuttle
components:
@@ -127300,6 +127426,13 @@ entities:
pos: 66.5,16.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 11271
type: AirlockExternalGlassShuttleLocked
components:
@@ -127307,6 +127440,13 @@ entities:
pos: 66.5,0.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 11272
type: AirlockExternalGlassShuttleLocked
components:
@@ -127314,6 +127454,13 @@ entities:
pos: 66.5,4.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 11273
type: AirlockExternalGlassShuttleLocked
components:
@@ -127321,6 +127468,13 @@ entities:
pos: 66.5,7.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 11274
type: AirlockExternalGlassShuttleLocked
components:
@@ -127328,6 +127482,13 @@ entities:
pos: 66.5,11.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 11275
type: Catwalk
components:
@@ -137082,6 +137243,13 @@ entities:
changeAirtight: False
state: Opening
type: Door
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 12248
type: AirlockShuttle
components:
@@ -137095,18 +137263,39 @@ entities:
changeAirtight: False
state: Opening
type: Door
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 12249
type: AirlockShuttle
components:
- pos: 0.5,-7.5
parent: 12185
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 12250
type: AirlockShuttle
components:
- pos: 1.5,-7.5
parent: 12185
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 12251
type: Thruster
components:
@@ -138849,6 +139038,13 @@ entities:
pos: 25.5,36.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 12428
type: ExtinguisherCabinetFilled
components:
@@ -141916,6 +142112,13 @@ entities:
pos: -43.5,-24.5
parent: 130
type: Transform
+ - fixtures:
+ - shape: !type:PhysShapeCircle
+ position: 0,-0.5
+ radius: 0.2
+ hard: False
+ id: docking
+ type: Fixtures
- uid: 12723
type: BoxSterile
components:
diff --git a/Resources/Prototypes/Catalog/Research/technologies.yml b/Resources/Prototypes/Catalog/Research/technologies.yml
index 99e5ce4cd6..58bbf3cf84 100644
--- a/Resources/Prototypes/Catalog/Research/technologies.yml
+++ b/Resources/Prototypes/Catalog/Research/technologies.yml
@@ -270,6 +270,7 @@
- FireExtinguisher
- AutolatheMachineCircuitboard
- ProtolatheMachineCircuitboard
+ - OreProcessorMachineCircuitboard
- CircuitImprinterMachineCircuitboard
- UniformPrinterMachineCircuitboard
- AirAlarmElectronics
diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml
index 6021522361..63cf603f99 100644
--- a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml
+++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml
@@ -68,7 +68,6 @@
- Shovel
- Welder
- FlareGun
- - IngotIron
- SheetSteel
- SheetPlastic
chance: 0.6
diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml
index e799916fae..c2324b7e2e 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml
@@ -335,3 +335,16 @@
DefaultPrototype: CryostasisBeaker
ExamineName: Cryostasis Beaker
+- type: entity
+ id: OreProcessorMachineCircuitboard
+ parent: BaseMachineCircuitboard
+ name: ore processor machine board
+ components:
+ - type: MachineBoard
+ prototype: OreProcessor
+ requirements:
+ MatterBin: 1
+ Manipulator: 1
+ Laser: 2
+ materialRequirements:
+ Glass: 1
diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml
index 05fb93172a..5eb779c646 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml
@@ -48,7 +48,7 @@
components:
- type: Material
materials:
- - Glass
+ Glass: 100
- type: Stack
stackType: Glass
- type: Sprite
@@ -89,7 +89,7 @@
components:
- type: Material
materials:
- - ReinforcedGlass
+ ReinforcedGlass: 100
- type: Stack
stackType: ReinforcedGlass
- type: Sprite
@@ -130,7 +130,7 @@
components:
- type: Material
materials:
- - PlasmaGlass
+ PlasmaGlass: 100
- type: Stack
stackType: PlasmaGlass
- type: Sprite
@@ -168,7 +168,7 @@
components:
- type: Material
materials:
- - ReinforcedPlasmaGlass
+ ReinforcedPlasmaGlass: 500
- type: Stack
stackType: ReinforcedPlasmaGlass
- type: Sprite
@@ -197,73 +197,3 @@
- type: Stack
stackType: ReinforcedPlasmaGlass
count: 1
-
-- type: entity
- parent: SheetGlassBase
- id: SheetTitaniumGlass
- name: titanium glass
- suffix: Full
- components:
- - type: Material
- materials:
- - TitaniumGlass
- - type: Stack
- stackType: TitaniumGlass
- - type: Sprite
- state: titaniumglass_3
- - type: Item
- HeldPrefix: titaniumglass
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - titaniumglass
- - titaniumglass_2
- - titaniumglass_3
-
-- type: entity
- parent: SheetTitaniumGlass
- id: SheetTitaniumGlass1
- name: titanium glass
- suffix: Single
- components:
- - type: Sprite
- state: titaniumglass
- - type: Stack
- stackType: TitaniumGlass
- count: 1
-
-- type: entity
- parent: SheetGlassBase
- id: SheetPlastitaniumGlass
- name: plastitanium glass
- suffix: Full
- components:
- - type: Material
- materials:
- - PlastitaniumGlass
- - type: Stack
- stackType: PlastitaniumGlass
- - type: Sprite
- state: plastitaniumglass_3
- - type: Item
- HeldPrefix: plastitaniumglass
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - plastitaniumglass
- - plastitaniumglass_2
- - plastitaniumglass_3
-
-- type: entity
- parent: SheetPlastitaniumGlass
- id: SheetPlastitaniumGlass1
- name: plastitanium glass
- suffix: Single
- components:
- - type: Sprite
- state: plastitaniumglass
- - type: Stack
- stackType: PlastitaniumGlass
- count: 1
diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml
index a5f37448ba..3c3ab8d2a6 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml
@@ -35,7 +35,7 @@
components:
- type: Material
materials:
- - Steel
+ Steel: 100
- type: Stack
stackType: Steel
- type: Sprite
@@ -73,7 +73,7 @@
components:
- type: Material
materials:
- - Plasteel
+ Plasteel: 100
- type: Stack
stackType: Plasteel
- type: Sprite
@@ -99,108 +99,3 @@
- type: Stack
stackType: Plasteel
count: 1
-
-- type: entity
- parent: SheetMetalBase
- id: SheetTitanium
- name: titanium
- suffix: Full
- components:
- - type: Material
- materials:
- - Titanium
- - type: Stack
- stackType: Titanium
- - type: Sprite
- state: titanium_3
- - type: Item
- HeldPrefix: titanium
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - titanium
- - titanium_2
- - titanium_3
-
-- type: entity
- parent: SheetTitanium
- id: SheetTitanium1
- name: titanium
- suffix: Single
- components:
- - type: Sprite
- state: titanium
- - type: Stack
- stackType: Titanium
- count: 1
-
-- type: entity
- parent: SheetMetalBase
- id: SheetPlastitanium
- name: plastitanium
- suffix: Full
- components:
- - type: Material
- materials:
- - Plastitanium
- - type: Stack
- stackType: Plastitanium
- - type: Sprite
- state: plastitanium_3
- - type: Item
- HeldPrefix: plastitanium
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - plastitanium
- - plastitanium_2
- - plastitanium_3
-
-- type: entity
- parent: SheetPlastitanium
- id: SheetPlastitanium1
- name: plastitanium
- suffix: Single
- components:
- - type: Sprite
- state: plastitanium
- - type: Stack
- stackType: Plastitanium
- count: 1
-
-- type: entity
- parent: SheetMetalBase
- id: SheetBrass
- name: brass
- suffix: Full
- components:
- - type: Material
- materials:
- - Brass
- - type: Stack
- stackType: Brass
- - type: Sprite
- state: brass_3
- - type: Item
- HeldPrefix: brass
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - brass
- - brass_2
- - brass_3
-
-- type: entity
- parent: SheetBrass
- id: SheetBrass1
- name: brass
- suffix: Single
- components:
- - type: Sprite
- state: brass
- - type: Stack
- stackType: Brass
- count: 1
diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml
index 9debf560f8..eb5dac11ea 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml
@@ -56,31 +56,6 @@
- type: Stack
count: 1
-- type: entity
- parent: SheetOtherBase
- id: SheetPhoron
- name: phoron
- suffix: Full
- components:
- - type: Material
- materials:
- - Phoron
- - type: Stack
- stackType: Phoron
- - type: Sprite
- state: phoron
- - type: Item
- HeldPrefix: phoron
-
-- type: entity
- parent: SheetPhoron
- id: SheetPhoron1
- name: phoron
- suffix: Single
- components:
- - type: Stack
- count: 1
-
- type: entity
parent: SheetOtherBase
id: SheetPlasma
@@ -89,7 +64,7 @@
components:
- type: Material
materials:
- - Plasma
+ Plasma: 500
- type: Stack
stackType: Plasma
- type: Sprite
@@ -137,7 +112,7 @@
- Plastic
- type: Material
materials:
- - Plastic
+ Plastic: 100
- type: Stack
stackType: Plastic
- type: Sprite
@@ -169,6 +144,9 @@
name: uranium
suffix: Full
components:
+ - type: Material
+ materials:
+ Uranium: 100
- type: Stack
stackType: Uranium
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Objects/Materials/ingots.yml b/Resources/Prototypes/Entities/Objects/Materials/ingots.yml
index 06dc3dd427..f4f95cb3a0 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/ingots.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/ingots.yml
@@ -25,74 +25,6 @@
- !type:DoActsBehavior
acts: [ "Destruction" ]
-- type: entity
- parent: IngotBase
- id: IngotAdamantine
- name: adamantine bar
- suffix: Full
- components:
- - type: Material
- materials:
- - Adamantine
- - type: Stack
- stackType: Adamantine
- - type: Sprite
- state: adamantine_3
- - type: Item
- HeldPrefix: adamantine
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - adamantine
- - adamantine_2
- - adamantine_3
-
-- type: entity
- parent: IngotAdamantine
- id: IngotAdamantine1
- name: adamantine bar
- suffix: Single
- components:
- - type: Sprite
- state: adamantine
- - type: Stack
- count: 1
-
-- type: entity
- parent: IngotBase
- id: IngotCopper
- name: copper bar
- suffix: Full
- components:
- - type: Material
- materials:
- - Copper
- - type: Stack
- stackType: Copper
- - type: Sprite
- state: copper_3
- - type: Item
- HeldPrefix: copper
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - copper
- - copper_2
- - copper_3
-
-- type: entity
- parent: IngotCopper
- id: IngotCopper1
- name: copper bar
- suffix: Single
- components:
- - type: Sprite
- state: copper
- - type: Stack
- count: 1
-
- type: entity
parent: IngotBase
id: IngotGold
@@ -101,7 +33,7 @@
components:
- type: Material
materials:
- - Gold
+ Gold: 100
- type: Stack
stackType: Gold
- type: Sprite
@@ -127,74 +59,6 @@
- type: Stack
count: 1
-- type: entity
- parent: IngotBase
- id: IngotHydrogen
- name: hydrogen bar
- suffix: Full
- components:
- - type: Material
- materials:
- - Hydrogen
- - type: Stack
- stackType: Hydrogen
- - type: Sprite
- state: hydrogen_3
- - type: Item
- HeldPrefix: hydrogen
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - hydrogen
- - hydrogen_2
- - hydrogen_3
-
-- type: entity
- parent: IngotHydrogen
- id: IngotHydrogen1
- name: hydrogen bar
- suffix: Single
- components:
- - type: Sprite
- state: hydrogen
- - type: Stack
- count: 1
-
-- type: entity
- parent: IngotBase
- id: IngotIron
- name: iron bar
- suffix: Full
- components:
- - type: Material
- materials:
- - Iron
- - type: Stack
- stackType: Iron
- - type: Sprite
- state: iron_3
- - type: Item
- HeldPrefix: iron
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - iron
- - iron_2
- - iron_3
-
-- type: entity
- parent: IngotIron
- id: IngotIron1
- name: iron bar
- suffix: Single
- components:
- - type: Sprite
- state: iron
- - type: Stack
- count: 1
-
- type: entity
parent: IngotBase
id: IngotSilver
@@ -203,7 +67,7 @@
components:
- type: Material
materials:
- - Silver
+ Silver: 100
- type: Stack
stackType: Silver
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Objects/Materials/materials.yml b/Resources/Prototypes/Entities/Objects/Materials/materials.yml
index 835522c68e..a9a4244d2a 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/materials.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/materials.yml
@@ -12,6 +12,7 @@
- type: ItemStatus
- type: Tag
tags:
+ - RawMaterial
- DroneUsable
- type: Damageable
damageContainer: Inorganic
@@ -24,25 +25,6 @@
- !type:DoActsBehavior
acts: [ "Destruction" ]
-- type: entity
- parent: MaterialBase
- id: MaterialBananium
- name: bananium
- suffix: Full
- components:
- - type: Stack
- stackType: Bananium
- - type: Sprite
- state: bananium
-
-- type: entity
- parent: MaterialBananium
- id: MaterialBananium1
- suffix: Single
- components:
- - type: Stack
- count: 1
-
- type: entity
parent: MaterialBase
id: MaterialCloth
@@ -53,7 +35,7 @@
stackType: Cloth
- type: Material
materials:
- - Cloth
+ Cloth: 100
- type: Extractable
juiceSolution:
reagents:
@@ -79,55 +61,6 @@
- type: Stack
count: 1
-- type: entity
- parent: MaterialBase
- id: MaterialCotton
- name: cotton
- suffix: Full
- components:
- - type: Stack
- stackType: Cotton
- - type: Sprite
- state: cotton_3
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - cotton
- - cotton_2
- - cotton_3
-
-- type: entity
- parent: MaterialCotton
- id: MaterialCotton1
- suffix: Single
- components:
- - type: Sprite
- state: cotton
- - type: Stack
- count: 1
-
-- type: entity
- parent: MaterialBase
- id: MaterialDiamond
- name: refined diamond
- suffix: Full
- components:
- - type: Stack
- stackType: Diamond
- - type: Sprite
- state: diamond
- - type: Item
- HeldPrefix: diamond
-
-- type: entity
- parent: MaterialDiamond
- id: MaterialDiamond1
- suffix: Single
- components:
- - type: Stack
- count: 1
-
- type: entity
parent: MaterialBase
id: MaterialDurathread
@@ -138,7 +71,7 @@
stackType: Durathread
- type: Material
materials:
- - Durathread
+ Durathread: 100
- type: Sprite
state: durathread_3
- type: Appearance
@@ -162,90 +95,6 @@
- type: Stack
count: 1
-- type: entity
- parent: MaterialBase
- id: MaterialDurathreadRaw
- name: raw durathread
- suffix: Full
- components:
- - type: Stack
- stackType: RawDurathread
- - type: Sprite
- state: durathreadraw_3
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - durathreadraw
- - durathreadraw_2
- - durathreadraw_3
-
-- type: entity
- parent: MaterialDurathreadRaw
- id: MaterialDurathreadRaw1
- suffix: Single
- components:
- - type: Sprite
- state: durathreadraw
- - type: Stack
- count: 1
-
-- type: entity
- parent: MaterialBase
- id: MaterialHide
- name: hide
- suffix: Full
- components:
- - type: Stack
- stackType: Hide
- - type: Sprite
- state: hide_3
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - hide
- - hide_2
- - hide_3
-
-- type: entity
- parent: MaterialHide
- id: MaterialHide1
- suffix: Single
- components:
- - type: Sprite
- state: hide
- - type: Stack
- count: 1
-
-- type: entity
- parent: MaterialBase
- id: MaterialLeather
- name: leather
- suffix: Full
- components:
- - type: Stack
- stackType: Leather
- - type: Sprite
- state: leather_3
- - type: Appearance
- visuals:
- - type: StackVisualizer
- stackLayers:
- - leather
- - leather_2
- - leather_3
-
-- type: entity
- parent: MaterialLeather
- id: MaterialLeather1
- suffix: Single
- components:
- - type: Sprite
- state: leather
- - type: Stack
- count: 1
-
- type: entity
parent: MaterialBase
id: MaterialWoodPlank
@@ -254,7 +103,7 @@
components:
- type: Material
materials:
- - Wood
+ Wood: 100
- type: Stack
stackType: WoodPlank
- type: Sprite
@@ -270,8 +119,7 @@
- type: Stack
count: 1
-# Specific Hides
-
+# Following not used currently
- type: entity
parent: MaterialBase
id: MaterialHideBear
@@ -284,32 +132,53 @@
sprite: Clothing/Head/Misc/hides.rsi
HeldPrefix: bear
Slots:
- - HEAD
+ - HEAD
- type: entity
parent: MaterialBase
- id: MaterialHideCat
- name: cat hide
+ id: MaterialDiamond
+ name: refined diamond
+ suffix: Full
components:
+ - type: Stack
+ stackType: Diamond
- type: Sprite
- sprite: Objects/Materials/materials.rsi
- state: cathide
- # - type: Clothing
- # sprite: Clothing/Head/Misc/hides.rsi
- # HeldPrefix: cat
- # Slots:
- # - HEAD
+ state: diamond
+ - type: Item
+ HeldPrefix: diamond
+
+- type: entity
+ parent: MaterialDiamond
+ id: MaterialDiamond1
+ suffix: Single
+ components:
+ - type: Stack
+ count: 1
- type: entity
parent: MaterialBase
- id: MaterialHideCorgi
- name: corgi hide
+ id: MaterialCotton
+ name: cotton
+ suffix: Full
+ components:
+ - type: Stack
+ stackType: Cotton
+ - type: Sprite
+ state: cotton_3
+ - type: Appearance
+ visuals:
+ - type: StackVisualizer
+ stackLayers:
+ - cotton
+ - cotton_2
+ - cotton_3
+
+- type: entity
+ parent: MaterialCotton
+ id: MaterialCotton1
+ suffix: Single
components:
- type: Sprite
- sprite: Objects/Materials/materials.rsi
- state: corgihide
- - type: Clothing
- sprite: Clothing/Head/Misc/hides.rsi
- HeldPrefix: corgi
- Slots:
- - HEAD
+ state: cotton
+ - type: Stack
+ count: 1
diff --git a/Resources/Prototypes/Entities/Objects/Materials/ore.yml b/Resources/Prototypes/Entities/Objects/Materials/ore.yml
index 72d7669da8..781cdb053d 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/ore.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/ore.yml
@@ -25,82 +25,6 @@
- !type:DoActsBehavior
acts: [ "Destruction" ]
-- type: entity
- parent: OreBase
- id: AdamantineOre
- name: adamantine ore
- suffix: Full
- components:
- - type: Stack
- stackType: AdamantineOre
- - type: Sprite
- state: adamantine
-
-- type: entity
- parent: AdamantineOre
- id: AdamantineOre1
- suffix: Single
- components:
- - type: Stack
- count: 1
-
-- type: entity
- parent: OreBase
- id: Ammonia
- name: ammonia
- suffix: Full
- components:
- - type: Stack
- stackType: Ammonia
- - type: Sprite
- state: ammonia
-
-- type: entity
- parent: Ammonia
- id: Ammonia1
- suffix: Single
- components:
- - type: Stack
- count: 1
-
-- type: entity
- parent: OreBase
- id: BananiumOre
- name: bananium ore
- suffix: Full
- components:
- - type: Stack
- stackType: BananiumOre
- - type: Sprite
- state: bananium
-
-- type: entity
- parent: BananiumOre
- id: BananiumOre1
- suffix: Single
- components:
- - type: Stack
- count: 1
-
-- type: entity
- parent: OreBase
- id: DiamondRaw
- name: raw diamond
- suffix: Full
- components:
- - type: Stack
- stackType: DiamondRaw
- - type: Sprite
- state: diamond
-
-- type: entity
- parent: DiamondRaw
- id: DiamondRaw1
- suffix: Single
- components:
- - type: Stack
- count: 1
-
- type: entity
parent: OreBase
id: GoldOre
@@ -111,6 +35,9 @@
stackType: GoldOre
- type: Sprite
state: gold
+ - type: Material
+ materials:
+ Gold: 500
- type: entity
parent: GoldOre
@@ -122,42 +49,26 @@
- type: entity
parent: OreBase
- id: IronOre
- name: iron ore
+ id: SteelOre
+ name: steel ore
suffix: Full
components:
- type: Stack
- stackType: IronOre
+ stackType: SteelOre
- type: Sprite
state: iron
+ - type: Material
+ materials:
+ Steel: 500
- type: entity
- id: IronOre1
- parent: IronOre
+ id: SteelOre1
+ parent: SteelOre
suffix: Single
components:
- type: Stack
count: 1
-- type: entity
- parent: OreBase
- id: PhoronOre
- name: phoron ore
- suffix: Full
- components:
- - type: Stack
- stackType: PhoronOre
- - type: Sprite
- state: phoron
-
-- type: entity
- parent: PhoronOre
- id: PhoronOre1
- suffix: Single
- components:
- - type: Stack
- count: 1
-
- type: entity
parent: OreBase
id: PlasmaOre
@@ -168,52 +79,17 @@
stackType: PlasmaOre
- type: Sprite
state: plasma
+ - type: Material
+ materials:
+ Plasma: 500
- type: entity
parent: PlasmaOre
id: PlasmaOre1
suffix: Single
components:
- - type: Stack
- count: 1
-
-- type: entity
- parent: OreBase
- id: Sand
- name: sand
- suffix: Full
- components:
- - type: Stack
- stackType: Sand
- - type: Sprite
- state: sand
-
-- type: entity
- parent: Sand
- id: Sand1
- suffix: Single
- components:
- - type: Stack
- count: 1
-
-- type: entity
- parent: OreBase
- id: SandBlack
- name: black sand
- suffix: Full
- components:
- - type: Stack
- stackType: BlackSand
- - type: Sprite
- state: sand_black
-
-- type: entity
- parent: SandBlack
- id: SandBlack1
- suffix: Single
- components:
- - type: Stack
- count: 1
+ - type: Stack
+ count: 1
- type: entity
parent: OreBase
@@ -225,6 +101,9 @@
stackType: SilverOre
- type: Sprite
state: silver
+ - type: Material
+ materials:
+ Silver: 500
- type: entity
parent: SilverOre
@@ -236,37 +115,21 @@
- type: entity
parent: OreBase
- id: Slag
- name: slag
+ id: SpaceQuartz
+ name: space Quartz
suffix: Full
components:
- type: Stack
- stackType: Slag
+ stackType: SpaceQuartz
- type: Sprite
- state: slag
+ state: spacequartz
+ - type: Material
+ materials:
+ Glass: 500
- type: entity
- parent: Slag
- id: Slag1
- suffix: Single
- components:
- - type: Stack
- count: 1
-
-- type: entity
- parent: OreBase
- id: TitaniumOre
- name: titanium ore
- suffix: Full
- components:
- - type: Stack
- stackType: TitaniumOre
- - type: Sprite
- state: titanium
-
-- type: entity
- parent: TitaniumOre
- id: TitaniumOre1
+ parent: SpaceQuartz
+ id: SpaceQuartz1
suffix: Single
components:
- type: Stack
@@ -282,6 +145,9 @@
stackType: UraniumOre
- type: Sprite
state: uranium
+ - type: Material
+ materials:
+ Uranium: 500
- type: entity
parent: UraniumOre
@@ -289,4 +155,4 @@
suffix: Single
components:
- type: Stack
- count: 1
+ count: 1
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml
index e6508f9ff2..9f7bdef5f9 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml
@@ -6,7 +6,7 @@
components:
- type: Material
materials:
- - Credit
+ Credit: 100
- type: Stack
stackType: Credit
max: 1000000 # if you somehow get this rich consider buying a second station
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml
index 81fe190744..6a6993e02a 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml
@@ -18,8 +18,29 @@
Piercing: 10
Blunt: 4
arcCooldownTime: 3
-
- type: Item
size: 24
sprite: Objects/Weapons/Melee/pickaxe.rsi
prefix: inhand
+
+- type: entity
+ name: mining drill
+ parent: BaseItem
+ id: MiningDrill
+ description: Powerful tool used to quickly drill through rocks
+ components:
+ - type: Sprite
+ sprite: Objects/Tools/handdrill.rsi
+ state: handdrill
+ - type: Pickaxe
+ damage:
+ types:
+ Piercing: 25
+ timeMultiplier: 0.75
+ - type: ItemCooldown
+ - type: MeleeWeapon
+ damage:
+ types:
+ Piercing: 10
+ Blunt: 4
+ arcCooldownTime: 3
diff --git a/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml b/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml
index 49320e9927..9252d97026 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml
@@ -164,60 +164,6 @@
graph: DoorGraph
node: plasmaDoor
-- type: entity
- id: DiamondDoor
- name: diamond door
- parent: BaseMaterialDoor
- description: A door, where will it lead?
- components:
- - type: Sprite
- netsync: false
- sprite: Structures/Doors/MineralDoors/diamond_door.rsi
- layers:
- - state: closed
- map: ["enum.DoorVisualLayers.Base"]
- - type: Damageable
- damageContainer: Inorganic
- damageModifierSet: StrongMetallic
- - type: Destructible
- thresholds:
- - trigger:
- !type:DamageTrigger
- damage: 400
- behaviors:
- - !type:DoActsBehavior
- acts: ["Destruction"]
- - type: Construction
- graph: DoorGraph
- node: diamondDoor
-
-- type: entity
- id: UraniumDoor
- name: uranium door
- parent: BaseMaterialDoor
- description: A door, where will it lead?
- components:
- - type: Sprite
- netsync: false
- sprite: Structures/Doors/MineralDoors/uranium_door.rsi
- layers:
- - state: closed
- map: ["enum.DoorVisualLayers.Base"]
- - type: Damageable
- damageContainer: Inorganic
- damageModifierSet: StrongMetallic
- - type: Destructible
- thresholds:
- - trigger:
- !type:DamageTrigger
- damage: 300
- behaviors:
- - !type:DoActsBehavior
- acts: ["Destruction"]
- - type: Construction
- graph: DoorGraph
- node: uraniumDoor
-
- type: entity
id: GoldDoor
name: gold door
@@ -250,19 +196,3 @@
graph: DoorGraph
node: silverDoor
-- type: entity
- id: SandstoneDoor
- name: sandstone door
- parent: BaseMaterialDoor
- description: A door, where will it lead?
- components:
- - type: Sprite
- netsync: false
- sprite: Structures/Doors/MineralDoors/sandstone_door.rsi
- layers:
- - state: closed
- map: ["enum.DoorVisualLayers.Base"]
- - type: Construction
- graph: DoorGraph
- node: sandstoneDoor
-
diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
index b88c4f00c6..677c28b9a0 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
@@ -81,6 +81,10 @@
anchored: true
- type: Pullable
- type: Lathe
+ whitelist:
+ tags:
+ - Sheet
+ - RawMaterial
- type: entity
parent: BaseMachinePowered
@@ -207,6 +211,10 @@
anchored: true
- type: Pullable
- type: Lathe
+ whitelist:
+ tags:
+ - Sheet
+ - RawMaterial
- type: entity
parent: Protolathe
@@ -247,10 +255,15 @@
- CircuitImprinterMachineCircuitboard
- DawInstrumentMachineCircuitboard
- StasisBedMachineCircuitboard
+ - OreProcessorMachineCircuitboard
- type: Machine
board: CircuitImprinterMachineCircuitboard
- type: Lathe
producingSound: /Audio/Machines/circuitprinter.ogg
+ whitelist:
+ tags:
+ - Sheet
+ - RawMaterial
- type: entity
parent: Protolathe
@@ -306,6 +319,11 @@
- TimerTrigger
- Signaller
- SignalTrigger
+ - type: Lathe
+ whitelist:
+ tags:
+ - Sheet
+ - RawMaterial
- type: entity
parent: Protolathe
@@ -445,3 +463,47 @@
board: UniformPrinterMachineCircuitboard
- type: Lathe
producingSound: /Audio/Machines/uniformprinter.ogg
+ whitelist:
+ tags:
+ - Sheet
+ - RawMaterial
+
+- type: entity
+ parent: Autolathe
+ id: OreProcessor
+ name: ore processor
+ description: It produces sheets and ingots using ores.
+ components:
+ - type: LatheVisuals
+ ignoreColor: true
+ - type: Sprite
+ sprite: Structures/Machines/ore_processor.rsi
+ netsync: false
+ layers:
+ - state: icon
+ map: ["enum.LatheVisualLayers.IsRunning"]
+ - state: unlit
+ shader: unshaded
+ map: ["enum.PowerDeviceVisualLayers.Powered"]
+ - state: inserting
+ map: ["enum.LatheVisualLayers.IsInserting"]
+ - state: panel
+ map: ["enum.WiresVisualLayers.MaintenancePanel"]
+ - type: Machine
+ board: AutolatheMachineCircuitboard
+ - type: LatheDatabase
+ static: true
+ recipes:
+ - SheetSteel30
+ - SheetGlass30
+ - SheetRGlass30
+ - SheetPlasma30
+ - SheetPGlass30
+ - SheetRPGlass30
+ - SheetUranium1
+ - IngotGold1
+ - IngotSilver1
+ - type: Lathe
+ whitelist:
+ tags:
+ - Ore
diff --git a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml
index 918404ef8e..f72d7756a5 100644
--- a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml
+++ b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml
@@ -7,6 +7,25 @@
- type: RandomAppearance
key: enum.AsteroidRockVisuals.State
- type: Mineable
+ ores:
+ - id: SteelOre1
+ prob: 0.25
+ orGroup: Asteroid
+ - id: GoldOre1
+ prob: 0.05
+ orGroup: Asteroid
+ - id: SpaceQuartz1
+ prob: 0.20
+ orGroup: Asteroid
+ - id: PlasmaOre1
+ prob: 0.10
+ orGroup: Asteroid
+ - id: SilverOre1
+ prob: 0.025
+ orGroup: Asteroid
+ - id: UraniumOre1
+ prob: 0.025
+ orGroup: Asteroid
- type: Sprite
sprite: Structures/Walls/asteroid_rock.rsi
state: 0
diff --git a/Resources/Prototypes/Reagents/Materials/glass.yml b/Resources/Prototypes/Reagents/Materials/glass.yml
index 73387a86a0..422f9a1a16 100644
--- a/Resources/Prototypes/Reagents/Materials/glass.yml
+++ b/Resources/Prototypes/Reagents/Materials/glass.yml
@@ -25,17 +25,3 @@
name: reinforced plasma glass
icon: Objects/Materials/Sheets/glass.rsi/rpglass.png
color: "#8c4069"
-
-- type: material
- id: TitaniumGlass
- stack: TitaniumGlass
- name: titanium glass
- icon: Objects/Materials/Sheets/glass.rsi/titaniumglass.png
- color: "#333135"
-
-- type: material
- id: PlastitaniumGlass
- stack: PlastitaniumGlass
- name: plastitanium glass
- icon: Objects/Materials/Sheets/glass.rsi/plastitaniumglass.png
- color: "#232127"
diff --git a/Resources/Prototypes/Reagents/Materials/materials.yml b/Resources/Prototypes/Reagents/Materials/materials.yml
index 152691d3cf..b57352c19e 100644
--- a/Resources/Prototypes/Reagents/Materials/materials.yml
+++ b/Resources/Prototypes/Reagents/Materials/materials.yml
@@ -20,13 +20,6 @@
icon: Objects/Materials/Sheets/other.rsi/plasma.png
color: "#7e009e"
-- type: material
- id: Phoron
- stack: Phoron
- name: phoron
- icon: Objects/Materials/Sheets/other.rsi/phoron.png
- color: "#FF3300"
-
- type: material
id: Plastic
stack: Plastic
@@ -40,3 +33,10 @@
name: wood
icon: Objects/Materials/materials.rsi/wood.png
color: "#966F33"
+
+- type: material
+ id: Uranium
+ stack: Uranium
+ name: uranium
+ icon: Objects/Materials/Sheets/other.rsi/uranium.png
+ color: "#32a852"
diff --git a/Resources/Prototypes/Reagents/Materials/metals.yml b/Resources/Prototypes/Reagents/Materials/metals.yml
index 47b0371c7e..f1a5905697 100644
--- a/Resources/Prototypes/Reagents/Materials/metals.yml
+++ b/Resources/Prototypes/Reagents/Materials/metals.yml
@@ -4,20 +4,6 @@
name: steel
icon: Objects/Materials/Sheets/metal.rsi/steel.png
-- type: material
- id: Adamantine
- stack: Adamantine
- name: adamantine
- icon: Objects/Materials/ingots.rsi/adamantine.png
- color: "#7dc37f"
-
-- type: material
- id: Copper
- stack: Copper
- name: copper
- icon: Objects/Materials/ingots.rsi/copper.png
- color: "#B87333"
-
- type: material
id: Gold
stack: Gold
@@ -25,18 +11,6 @@
icon: Objects/Materials/ingots.rsi/gold.png
color: "#FFD700"
-- type: material
- id: Hydrogen
- stack: Hydrogen
- name: hydrogen
- icon: Objects/Materials/ingots.rsi/hydrogen.png
-
-- type: material
- id: Iron
- stack: Iron
- name: iron
- icon: Objects/Materials/ingots.rsi/iron.png #Do we even distinguish between steel and iron?
-
- type: material
id: Silver
stack: Silver
@@ -50,24 +24,3 @@
name: plasteel
icon: Objects/Materials/Sheets/metal.rsi/plasteel.png
color: "#696969" #Okay, this is epic
-
-- type: material
- id: Brass
- stack: Brass
- name: brass
- icon: Objects/Materials/Sheets/metal.rsi/brass.png
- color: "#E1C16E"
-
-- type: material
- id: Titanium
- stack: Titanium
- name: titanium
- icon: Objects/Materials/Sheets/metal.rsi/titanium.png
- color: "#878681"
-
-- type: material
- id: Plastitanium
- stack: Plastitanium
- name: plastitanium
- icon: Objects/Materials/Sheets/metal.rsi/plastitanium.png
- color: "#4e4e4b"
diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/doors.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/doors.yml
index dee7118453..74bf319274 100644
--- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/doors.yml
+++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/doors.yml
@@ -27,20 +27,6 @@
- material: Plasma
amount: 20
doAfter: 15
- - to: diamondDoor
- completed:
- - !type:SnapToGrid { }
- steps:
- - material: Diamond
- amount: 20
- doAfter: 15
- - to: uraniumDoor
- completed:
- - !type:SnapToGrid { }
- steps:
- - material: Uranium
- amount: 20
- doAfter: 15
- to: goldDoor
completed:
- !type:SnapToGrid { }
@@ -55,13 +41,6 @@
- material: Silver
amount: 20
doAfter: 15
- - to: sandstoneDoor
- completed:
- - !type:SnapToGrid { }
- steps:
- - material: Sand
- amount: 20
- doAfter: 15
- to: paperDoor
completed:
- !type:SnapToGrid { }
@@ -102,28 +81,6 @@
steps:
- tool: Anchoring
doAfter: 15
- - node: diamondDoor
- entity: DiamondDoor
- edges:
- - to: start
- completed:
- - !type:SpawnPrototype
- prototype: MaterialDiamond1
- amount: 20
- steps:
- - tool: Anchoring
- doAfter: 15
- - node: uraniumDoor
- entity: UraniumDoor
- edges:
- - to: start
- completed:
- - !type:SpawnPrototype
- prototype: SheetUranium1
- amount: 20
- steps:
- - tool: Anchoring
- doAfter: 15
- node: goldDoor
entity: GoldDoor
edges:
@@ -146,17 +103,6 @@
steps:
- tool: Anchoring
doAfter: 15
- - node: sandstoneDoor
- entity: SandstoneDoor
- edges:
- - to: start
- completed:
- - !type:SpawnPrototype
- prototype: Sand
- amount: 20
- steps:
- - tool: Anchoring
- doAfter: 15
- node: paperDoor
entity: PaperDoor
edges:
diff --git a/Resources/Prototypes/Recipes/Construction/structures.yml b/Resources/Prototypes/Recipes/Construction/structures.yml
index f6978a6359..add03bb298 100644
--- a/Resources/Prototypes/Recipes/Construction/structures.yml
+++ b/Resources/Prototypes/Recipes/Construction/structures.yml
@@ -573,40 +573,6 @@
conditions:
- !type:TileNotBlocked
-- type: construction
- name: diamond door
- id: DiamondDoor
- graph: DoorGraph
- startNode: start
- targetNode: diamondDoor
- category: Structures
- description: A primitive door with manual operation like the cavemen used.
- objectType: Structure
- placementMode: SnapgridCenter
- canBuildInImpassable: false
- icon:
- sprite: Structures/Doors/MineralDoors/diamond_door.rsi
- state: closed
- conditions:
- - !type:TileNotBlocked
-
-- type: construction
- name: uranium door
- id: UraniumDoor
- graph: DoorGraph
- startNode: start
- targetNode: uraniumDoor
- category: Structures
- description: A primitive door with manual operation like the cavemen used.
- objectType: Structure
- placementMode: SnapgridCenter
- canBuildInImpassable: false
- icon:
- sprite: Structures/Doors/MineralDoors/uranium_door.rsi
- state: closed
- conditions:
- - !type:TileNotBlocked
-
- type: construction
name: gold door
id: GoldDoor
@@ -641,23 +607,6 @@
conditions:
- !type:TileNotBlocked
-- type: construction
- name: sandstone door
- id: SandstoneDoor
- graph: DoorGraph
- startNode: start
- targetNode: sandstoneDoor
- category: Structures
- description: A primitive door with manual operation like the cavemen used.
- objectType: Structure
- placementMode: SnapgridCenter
- canBuildInImpassable: false
- icon:
- sprite: Structures/Doors/MineralDoors/sandstone_door.rsi
- state: closed
- conditions:
- - !type:TileNotBlocked
-
- type: construction
name: paper door
id: PaperDoor
diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml
index 8b4639e532..066041d4e6 100644
--- a/Resources/Prototypes/Recipes/Lathes/electronics.yml
+++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml
@@ -194,6 +194,16 @@
Steel: 100
Glass: 900
Gold: 100
+
+- type: latheRecipe
+ id: OreProcessorMachineCircuitboard
+ icon: Objects/Misc/module.rsi/id_mod.png
+ result: OreProcessorMachineCircuitboard
+ completetime: 4
+ materials:
+ Steel: 100
+ Glass: 900
+ Gold: 100
# Power
- type: latheRecipe
id: APCElectronics
diff --git a/Resources/Prototypes/Recipes/Lathes/sheet.yml b/Resources/Prototypes/Recipes/Lathes/sheet.yml
index 4cea46e015..5967a30ad7 100644
--- a/Resources/Prototypes/Recipes/Lathes/sheet.yml
+++ b/Resources/Prototypes/Recipes/Lathes/sheet.yml
@@ -7,6 +7,16 @@
completetime: 2
materials:
Steel: 100
+
+- type: latheRecipe
+ id: SheetSteel30
+ icon:
+ sprite: Objects/Materials/Sheets/metal.rsi
+ state: steel_3
+ result: SheetSteel
+ completetime: 2
+ materials:
+ Steel: 3000
- type: latheRecipe
id: SheetGlass1
@@ -17,6 +27,16 @@
completetime: 2
materials:
Glass: 100
+
+- type: latheRecipe
+ id: SheetGlass30
+ icon:
+ sprite: Objects/Materials/Sheets/glass.rsi
+ state: glass_3
+ result: SheetGlass
+ completetime: 2
+ materials:
+ Glass: 3000
- type: latheRecipe
id: SheetRGlass
@@ -28,6 +48,80 @@
materials:
Glass: 100
Steel: 50
+
+- type: latheRecipe
+ id: SheetRGlass30
+ icon:
+ sprite: Objects/Materials/Sheets/glass.rsi
+ state: rglass_3
+ result: SheetRGlass
+ completetime: 2
+ materials:
+ Glass: 3000
+ Steel: 1500
+
+- type: latheRecipe
+ id: SheetPGlass30
+ icon:
+ sprite: Objects/Materials/Sheets/glass.rsi
+ state: pglass_3
+ result: SheetPGlass
+ completetime: 2
+ materials:
+ Glass: 3000
+ Plasma: 3000
+
+- type: latheRecipe
+ id: SheetRPGlass30
+ icon:
+ sprite: Objects/Materials/Sheets/glass.rsi
+ state: rpglass_3
+ result: SheetRPGlass
+ completetime: 2
+ materials:
+ Glass: 3000
+ Plasma: 3000
+ Steel: 1500
+
+- type: latheRecipe
+ id: SheetPlasma30
+ icon:
+ sprite: Objects/Materials/Sheets/other.rsi
+ state: plasma_3
+ result: SheetPlasma
+ completetime: 2
+ materials:
+ Plasma: 3000
+
+- type: latheRecipe
+ id: SheetUranium1
+ icon:
+ sprite: Objects/Materials/Sheets/other.rsi
+ state: uranium
+ result: SheetUranium1
+ completetime: 2
+ materials:
+ Uranium: 500
+
+- type: latheRecipe
+ id: IngotGold1
+ icon:
+ sprite: Objects/Materials/ingots.rsi
+ state: gold
+ result: IngotGold1
+ completetime: 2
+ materials:
+ Gold: 500
+
+- type: latheRecipe
+ id: IngotSilver1
+ icon:
+ sprite: Objects/Materials/ingots.rsi
+ state: silver
+ result: IngotSilver1
+ completetime: 2
+ materials:
+ Silver: 500
- type: latheRecipe
id: SheetPlastic
diff --git a/Resources/Prototypes/Stacks/Materials/Sheets/glass.yml b/Resources/Prototypes/Stacks/Materials/Sheets/glass.yml
index 780cfeb3c6..bfdb7f6d21 100644
--- a/Resources/Prototypes/Stacks/Materials/Sheets/glass.yml
+++ b/Resources/Prototypes/Stacks/Materials/Sheets/glass.yml
@@ -22,14 +22,3 @@
icon: /Textures/Objects/Materials/Sheets/glass.rsi/rpglass.png
spawn: SheetRPGlass1
-- type: stack
- id: TitaniumGlass
- name: titanium glass
- icon: /Textures/Objects/Materials/Sheets/glass.rsi/titaniumglass.png
- spawn: SheetTitaniumGlass1
-
-- type: stack
- id: PlastitaniumGlass
- name: plastitanium glass
- icon: /Textures/Objects/Materials/Sheets/glass.rsi/plastitaniumglass.png
- spawn: SheetPlastitaniumGlass1
diff --git a/Resources/Prototypes/Stacks/Materials/Sheets/metal.yml b/Resources/Prototypes/Stacks/Materials/Sheets/metal.yml
index a4e21c0487..de5c2b4b6f 100644
--- a/Resources/Prototypes/Stacks/Materials/Sheets/metal.yml
+++ b/Resources/Prototypes/Stacks/Materials/Sheets/metal.yml
@@ -10,21 +10,4 @@
icon: /Textures/Objects/Materials/Sheets/metal.rsi/plasteel.png
spawn: SheetPlasteel1
-- type: stack
- id: Titanium
- name: titanium
- icon: /Textures/Objects/Materials/Sheets/metal.rsi/titanium.png
- spawn: SheetTitanium1
-
-- type: stack
- id: Plastitanium
- name: plastitanium
- icon: /Textures/Objects/Materials/Sheets/metal.rsi/plastitanium.png
- spawn: SheetPlastitanium1
-
-- type: stack
- id: Brass
- name: brass
- icon: /Textures/Objects/Materials/Sheets/metal.rsi/brass.png
- spawn: SheetBrass1
diff --git a/Resources/Prototypes/Stacks/Materials/Sheets/other.yml b/Resources/Prototypes/Stacks/Materials/Sheets/other.yml
index 9b638a0011..cea9d6c804 100644
--- a/Resources/Prototypes/Stacks/Materials/Sheets/other.yml
+++ b/Resources/Prototypes/Stacks/Materials/Sheets/other.yml
@@ -4,12 +4,6 @@
icon: /Textures/Objects/Materials/Sheets/other.rsi/paper.png
spawn: SheetPaper1
-- type: stack
- id: Phoron
- name: phoron
- icon: /Textures/Objects/Materials/Sheets/other.rsi/phoron.png
- spawn: SheetPhoron1
-
- type: stack
id: Plasma
name: plasma
@@ -26,4 +20,4 @@
id: Uranium
name: uranium
icon: /Textures/Objects/Materials/Sheets/other.rsi/uranium.png
- spawn: SheetUranium1
+ spawn: SheetUranium1
\ No newline at end of file
diff --git a/Resources/Prototypes/Stacks/Materials/ingots.yml b/Resources/Prototypes/Stacks/Materials/ingots.yml
index 87d082e604..3a26afa8cf 100644
--- a/Resources/Prototypes/Stacks/Materials/ingots.yml
+++ b/Resources/Prototypes/Stacks/Materials/ingots.yml
@@ -1,33 +1,9 @@
-- type: stack
- id: Adamantine
- name: adamantine
- icon: "/Textures/Objects/Materials/ingots.rsi/adamantine.png"
- spawn: IngotAdamantine1
-
-- type: stack
- id: Copper
- name: copper
- icon: "/Textures/Objects/Materials/ingots.rsi/copper.png"
- spawn: IngotCopper1
-
- type: stack
id: Gold
name: gold
icon: "/Textures/Objects/Materials/ingots.rsi/gold.png"
spawn: IngotGold1
-- type: stack
- id: Hydrogen
- name: hydrogen
- icon: "/Textures/Objects/Materials/ingots.rsi/hydrogen.png"
- spawn: IngotHydrogen1
-
-- type: stack
- id: Iron
- name: iron
- icon: "/Textures/Objects/Materials/ingots.rsi/iron.png"
- spawn: IngotIron1
-
- type: stack
id: Silver
name: silver
diff --git a/Resources/Prototypes/Stacks/Materials/materials.yml b/Resources/Prototypes/Stacks/Materials/materials.yml
index 91cda5f129..ce33f3f5e6 100644
--- a/Resources/Prototypes/Stacks/Materials/materials.yml
+++ b/Resources/Prototypes/Stacks/Materials/materials.yml
@@ -1,15 +1,3 @@
-- type: stack
- id: Bananium
- name: bananium
- icon: /Textures/Objects/Materials/materials.rsi/bananium.png
- spawn: MaterialBananium1
-
-- type: stack
- id: Diamond
- name: diamond
- icon: /Textures/Objects/Materials/materials.rsi/diamond.png
- spawn: MaterialDiamond1
-
- type: stack
id: WoodPlank
name: wood plank
@@ -22,12 +10,6 @@
icon: /Textures/Objects/Materials/materials.rsi/cloth.png
spawn: MaterialCloth1
-- type: stack
- id: Cotton
- name: cotton
- icon: /Textures/Objects/Materials/materials.rsi/cotton.png
- spawn: MaterialCotton1
-
- type: stack
id: Durathread
name: durathread
@@ -35,19 +17,13 @@
spawn: MaterialDurathread1
- type: stack
- id: RawDurathread
- name: raw durathread
- icon: /Textures/Objects/Materials/materials.rsi/durathreadraw.png
- spawn: MaterialDurathreadRaw1
-
+ id: Diamond
+ name: diamond
+ icon: /Textures/Objects/Materials/materials.rsi/diamond.png
+ spawn: MaterialDiamond1
+
- type: stack
- id: Hide
- name: hide
- icon: /Textures/Objects/Materials/materials.rsi/hide.png
- spawn: MaterialHide1
-
-- type: stack
- id: Leather
- name: leather
- icon: /Textures/Objects/Materials/materials.rsi/leather.png
- spawn: MaterialLeather1
+ id: Cotton
+ name: cotton
+ icon: /Textures/Objects/Materials/materials.rsi/cotton.png
+ spawn: MaterialCotton1
diff --git a/Resources/Prototypes/Stacks/Materials/ore.yml b/Resources/Prototypes/Stacks/Materials/ore.yml
index af319ee5dc..5634b1fcaf 100644
--- a/Resources/Prototypes/Stacks/Materials/ore.yml
+++ b/Resources/Prototypes/Stacks/Materials/ore.yml
@@ -1,27 +1,3 @@
-- type: stack
- id: AdamantineOre
- name: adamantine ore
- icon: /Textures/Objects/Materials/ore.rsi/adamantine.png
- spawn: AdamantineOre1
-
-- type: stack
- id: Ammonia
- name: ammonia
- icon: /Textures/Objects/Materials/ore.rsi/ammonia.png
- spawn: Ammonia1
-
-- type: stack
- id: BananiumOre
- name: bananium ore
- icon: /Textures/Objects/Materials/ore.rsi/bananium.png
- spawn: BananiumOre1
-
-- type: stack
- id: DiamondRaw
- name: diamond ore
- icon: /Textures/Objects/Materials/ore.rsi/diamond.png
- spawn: DiamondRaw1
-
- type: stack
id: GoldOre
name: gold ore
@@ -29,16 +5,10 @@
spawn: GoldOre1
- type: stack
- id: IronOre
- name: iron ore
+ id: SteelOre
+ name: steel ore
icon: /Textures/Objects/Materials/ore.rsi/iron.png
- spawn: IronOre1
-
-- type: stack
- id: PhoronOre
- name: phoron ore
- icon: /Textures/Objects/Materials/ore.rsi/phoron.png
- spawn: PhoronOre1
+ spawn: SteelOre1
- type: stack
id: PlasmaOre
@@ -46,18 +16,6 @@
icon: /Textures/Objects/Materials/ore.rsi/plasma.png
spawn: PlasmaOre1
-- type: stack
- id: Sand
- name: sand
- icon: /Textures/Objects/Materials/ore.rsi/sand.png
- spawn: Sand1
-
-- type: stack
- id: BlackSand
- name: black sand
- icon: /Textures/Objects/Materials/ore.rsi/sand_black.png
- spawn: SandBlack1
-
- type: stack
id: SilverOre
name: silver ore
@@ -65,19 +23,13 @@
spawn: SilverOre1
- type: stack
- id: Slag
- name: slag
- icon: /Textures/Objects/Materials/ore.rsi/slag.png
- spawn: Slag1
-
-- type: stack
- id: TitaniumOre
- name: titanium ore
- icon: /Textures/Objects/Materials/ore.rsi/titanium.png
- spawn: TitaniumOre1
+ id: SpaceQuartz
+ name: space quartz
+ icon: /Textures/Objects/Materials/ore.rsi/spacequartz.png
+ spawn: SpaceQuartz1
- type: stack
id: UraniumOre
name: uranium ore
- icon: /Textures/Objects/Materials/ore.rsi/titanium.png
- spawn: UraniumOre1
+ icon: /Textures/Objects/Materials/ore.rsi/uranium.png
+ spawn: UraniumOre1
\ No newline at end of file
diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml
index c8d98d14ee..b157a8d7b9 100644
--- a/Resources/Prototypes/tags.yml
+++ b/Resources/Prototypes/tags.yml
@@ -269,6 +269,9 @@
- type: Tag
id: PussyWagonKeys
+
+- type: Tag
+ id: RawMaterial
# Give this to something that doesn't need any special recycler behavior and just needs deleting.
- type: Tag
@@ -351,3 +354,4 @@
- type: Tag
id: Write
+
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/adamantine.png b/Resources/Textures/Objects/Materials/ore.rsi/adamantine.png
index 72a1e938c1..1664f1a3af 100644
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/adamantine.png and b/Resources/Textures/Objects/Materials/ore.rsi/adamantine.png differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/ammonia.png b/Resources/Textures/Objects/Materials/ore.rsi/ammonia.png
index f7689b1e85..024045a145 100644
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/ammonia.png and b/Resources/Textures/Objects/Materials/ore.rsi/ammonia.png differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/bananium.png b/Resources/Textures/Objects/Materials/ore.rsi/bananium.png
deleted file mode 100644
index a8b3325f41..0000000000
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/bananium.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/coal.png b/Resources/Textures/Objects/Materials/ore.rsi/coal.png
new file mode 100644
index 0000000000..d89a0b4766
Binary files /dev/null and b/Resources/Textures/Objects/Materials/ore.rsi/coal.png differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/copper.png b/Resources/Textures/Objects/Materials/ore.rsi/copper.png
new file mode 100644
index 0000000000..1ee4970668
Binary files /dev/null and b/Resources/Textures/Objects/Materials/ore.rsi/copper.png differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/diamond.png b/Resources/Textures/Objects/Materials/ore.rsi/diamond.png
deleted file mode 100644
index 5a6de137f4..0000000000
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/diamond.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/gold.png b/Resources/Textures/Objects/Materials/ore.rsi/gold.png
index 6ac90a19ed..b841dde074 100644
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/gold.png and b/Resources/Textures/Objects/Materials/ore.rsi/gold.png differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/iron.png b/Resources/Textures/Objects/Materials/ore.rsi/iron.png
index 2f5ad0a16e..693963eacb 100644
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/iron.png and b/Resources/Textures/Objects/Materials/ore.rsi/iron.png differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/meta.json b/Resources/Textures/Objects/Materials/ore.rsi/meta.json
index c4b3f33488..90269cd3dd 100644
--- a/Resources/Textures/Objects/Materials/ore.rsi/meta.json
+++ b/Resources/Textures/Objects/Materials/ore.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
- "license": "CC-BY-SA-3.0",
- "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24",
+ "license": "CC-BY-NC-SA-3.0",
+ "copyright": "Taken from goonstation at commit https://github.com/goonstation/goonstation/pull/210/commits/d188de4d110a4f433ce3d30211be30d8257dc4c3 modified by HoofedEar",
"size": {
"x": 32,
"y": 32
@@ -13,12 +13,6 @@
{
"name": "ammonia"
},
- {
- "name": "bananium"
- },
- {
- "name": "diamond"
- },
{
"name": "gold"
},
@@ -26,28 +20,22 @@
"name": "iron"
},
{
- "name": "phoron"
+ "name": "uranium"
},
{
"name": "plasma"
},
{
- "name": "sand"
- },
- {
- "name": "sand_black"
+ "name": "spacequartz"
},
{
"name": "silver"
},
{
- "name": "slag"
+ "name": "copper"
},
{
- "name": "titanium"
- },
- {
- "name": "uranium"
+ "name": "coal"
}
]
-}
+}
\ No newline at end of file
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/phoron.png b/Resources/Textures/Objects/Materials/ore.rsi/phoron.png
deleted file mode 100644
index 3a9537c129..0000000000
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/phoron.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/plasma.png b/Resources/Textures/Objects/Materials/ore.rsi/plasma.png
index 71d824eedb..7b5882364d 100644
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/plasma.png and b/Resources/Textures/Objects/Materials/ore.rsi/plasma.png differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/sand.png b/Resources/Textures/Objects/Materials/ore.rsi/sand.png
deleted file mode 100644
index 87c1be5e7d..0000000000
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/sand.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/sand_black.png b/Resources/Textures/Objects/Materials/ore.rsi/sand_black.png
deleted file mode 100644
index cb5732ce21..0000000000
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/sand_black.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/silver.png b/Resources/Textures/Objects/Materials/ore.rsi/silver.png
index 0e107bc45d..a8da0b92cc 100644
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/silver.png and b/Resources/Textures/Objects/Materials/ore.rsi/silver.png differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/slag.png b/Resources/Textures/Objects/Materials/ore.rsi/slag.png
deleted file mode 100644
index 18f3a8e4da..0000000000
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/slag.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/spacequartz.png b/Resources/Textures/Objects/Materials/ore.rsi/spacequartz.png
new file mode 100644
index 0000000000..c615636f9f
Binary files /dev/null and b/Resources/Textures/Objects/Materials/ore.rsi/spacequartz.png differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/titanium.png b/Resources/Textures/Objects/Materials/ore.rsi/titanium.png
deleted file mode 100644
index bb9de5bda3..0000000000
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/titanium.png and /dev/null differ
diff --git a/Resources/Textures/Objects/Materials/ore.rsi/uranium.png b/Resources/Textures/Objects/Materials/ore.rsi/uranium.png
index 89fbaef427..085c05d0a1 100644
Binary files a/Resources/Textures/Objects/Materials/ore.rsi/uranium.png and b/Resources/Textures/Objects/Materials/ore.rsi/uranium.png differ
diff --git a/Resources/Textures/Objects/Tools/handdrill.rsi/handdrill.png b/Resources/Textures/Objects/Tools/handdrill.rsi/handdrill.png
new file mode 100644
index 0000000000..ae7ac72151
Binary files /dev/null and b/Resources/Textures/Objects/Tools/handdrill.rsi/handdrill.png differ
diff --git a/Resources/Textures/Objects/Tools/handdrill.rsi/meta.json b/Resources/Textures/Objects/Tools/handdrill.rsi/meta.json
new file mode 100644
index 0000000000..d31b77623a
--- /dev/null
+++ b/Resources/Textures/Objects/Tools/handdrill.rsi/meta.json
@@ -0,0 +1,14 @@
+{
+ "version": 1,
+ "license": "CC-BY-NC-SA-3.0",
+ "copyright": "Taken from goonstation at commit https://github.com/goonstation/goonstation/commit/2ce04dea2495ed19aeca4b6b42bf59fef2b4dd37",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "handdrill"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/Structures/Machines/ore_processor.rsi/building.png b/Resources/Textures/Structures/Machines/ore_processor.rsi/building.png
new file mode 100644
index 0000000000..66c255a5f4
Binary files /dev/null and b/Resources/Textures/Structures/Machines/ore_processor.rsi/building.png differ
diff --git a/Resources/Textures/Structures/Machines/ore_processor.rsi/icon.png b/Resources/Textures/Structures/Machines/ore_processor.rsi/icon.png
new file mode 100644
index 0000000000..96c4060642
Binary files /dev/null and b/Resources/Textures/Structures/Machines/ore_processor.rsi/icon.png differ
diff --git a/Resources/Textures/Structures/Machines/ore_processor.rsi/inserting.png b/Resources/Textures/Structures/Machines/ore_processor.rsi/inserting.png
new file mode 100644
index 0000000000..4f60c78da1
Binary files /dev/null and b/Resources/Textures/Structures/Machines/ore_processor.rsi/inserting.png differ
diff --git a/Resources/Textures/Structures/Machines/ore_processor.rsi/meta.json b/Resources/Textures/Structures/Machines/ore_processor.rsi/meta.json
new file mode 100644
index 0000000000..c821ed3075
--- /dev/null
+++ b/Resources/Textures/Structures/Machines/ore_processor.rsi/meta.json
@@ -0,0 +1,50 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/2b7f2c42f1bd57497052e8ef593d5e05ea45208e and edited by HoofedEar",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "inserting",
+ "delays": [
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 5
+ ]
+ ]
+ },
+ {
+ "name": "building",
+ "delays": [
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ ]
+ },
+ {
+ "name": "icon"
+ },
+ {
+ "name": "panel"
+ },
+ {
+ "name": "unlit"
+ },
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/Structures/Machines/ore_processor.rsi/panel.png b/Resources/Textures/Structures/Machines/ore_processor.rsi/panel.png
new file mode 100644
index 0000000000..bcade0fb54
Binary files /dev/null and b/Resources/Textures/Structures/Machines/ore_processor.rsi/panel.png differ
diff --git a/Resources/Textures/Structures/Machines/ore_processor.rsi/unlit.png b/Resources/Textures/Structures/Machines/ore_processor.rsi/unlit.png
new file mode 100644
index 0000000000..7e824815e1
Binary files /dev/null and b/Resources/Textures/Structures/Machines/ore_processor.rsi/unlit.png differ