]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Hyper convection lathes and industrial ore processor (#23202)
authorNemanja <98561806+EmoGarbage404@users.noreply.github.com>
Sat, 30 Dec 2023 16:18:58 +0000 (11:18 -0500)
committerGitHub <noreply@github.com>
Sat, 30 Dec 2023 16:18:58 +0000 (03:18 +1100)
* Hyper-convection lathes and industrial ore processor

* balance

* gold... why not?

* review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
25 files changed:
Content.Server/Lathe/Components/LatheHeatProducingComponent.cs [new file with mode: 0644]
Content.Server/Lathe/LatheSystem.cs
Content.Shared/Lathe/LatheComponent.cs
Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml
Resources/Prototypes/Entities/Structures/Machines/lathe.yml
Resources/Prototypes/Recipes/Lathes/electronics.yml
Resources/Prototypes/Research/industrial.yml
Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/building.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/icon.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/inserting.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/panel.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/unlit.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/building.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/icon.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/inserting.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/panel.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/unlit.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/building.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/icon.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/inserting.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/panel.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/unlit.png [new file with mode: 0644]

diff --git a/Content.Server/Lathe/Components/LatheHeatProducingComponent.cs b/Content.Server/Lathe/Components/LatheHeatProducingComponent.cs
new file mode 100644 (file)
index 0000000..ea5912a
--- /dev/null
@@ -0,0 +1,21 @@
+using Content.Shared.Lathe;
+using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
+
+namespace Content.Server.Lathe.Components;
+
+/// <summary>
+/// This is used for a <see cref="LatheComponent"/> that releases heat into the surroundings while producing items.
+/// </summary>
+[RegisterComponent]
+[Access(typeof(LatheSystem))]
+public sealed partial class LatheHeatProducingComponent : Component
+{
+    /// <summary>
+    /// The amount of energy produced each second when producing an item.
+    /// </summary>
+    [DataField, ViewVariables(VVAccess.ReadWrite)]
+    public float EnergyPerSecond = 40000;
+
+    [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
+    public TimeSpan NextSecond;
+}
index c6614fcd4f98c0ae098d985a12c571239b8d57e8..a262c1a69f7730458d7bfb9e06ebe05a1e004ff5 100644 (file)
@@ -1,7 +1,8 @@
 using System.Diagnostics.CodeAnalysis;
 using System.Linq;
 using Content.Server.Administration.Logs;
-using Content.Server.Construction;
+using Content.Server.Atmos;
+using Content.Server.Atmos.EntitySystems;
 using Content.Server.Lathe.Components;
 using Content.Server.Materials;
 using Content.Server.Power.Components;
@@ -16,7 +17,6 @@ using Content.Shared.Research.Components;
 using Content.Shared.Research.Prototypes;
 using JetBrains.Annotations;
 using Robust.Server.GameObjects;
-using Robust.Shared.Audio;
 using Robust.Shared.Audio.Systems;
 using Robust.Shared.Prototypes;
 using Robust.Shared.Timing;
@@ -29,12 +29,18 @@ namespace Content.Server.Lathe
         [Dependency] private readonly IGameTiming _timing = default!;
         [Dependency] private readonly IPrototypeManager _proto = default!;
         [Dependency] private readonly IAdminLogManager _adminLogger = default!;
+        [Dependency] private readonly AtmosphereSystem _atmosphere = default!;
         [Dependency] private readonly SharedAppearanceSystem _appearance = default!;
         [Dependency] private readonly SharedAudioSystem _audio = default!;
         [Dependency] private readonly UserInterfaceSystem _uiSys = default!;
         [Dependency] private readonly MaterialStorageSystem _materialStorage = default!;
         [Dependency] private readonly StackSystem _stack = default!;
-        [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
+        [Dependency] private readonly TransformSystem _transform = default!;
+
+        /// <summary>
+        /// Per-tick cache
+        /// </summary>
+        private readonly List<GasMixture> _environments = new();
 
         public override void Initialize()
         {
@@ -42,8 +48,6 @@ namespace Content.Server.Lathe
             SubscribeLocalEvent<LatheComponent, GetMaterialWhitelistEvent>(OnGetWhitelist);
             SubscribeLocalEvent<LatheComponent, MapInitEvent>(OnMapInit);
             SubscribeLocalEvent<LatheComponent, PowerChangedEvent>(OnPowerChanged);
-            SubscribeLocalEvent<LatheComponent, RefreshPartsEvent>(OnPartsRefresh);
-            SubscribeLocalEvent<LatheComponent, UpgradeExamineEvent>(OnUpgradeExamine);
             SubscribeLocalEvent<LatheComponent, TechnologyDatabaseModifiedEvent>(OnDatabaseModified);
             SubscribeLocalEvent<LatheComponent, ResearchRegistrationChangedEvent>(OnResearchRegistrationChanged);
 
@@ -54,6 +58,7 @@ namespace Content.Server.Lathe
             SubscribeLocalEvent<LatheComponent, MaterialAmountChangedEvent>(OnMaterialAmountChanged);
             SubscribeLocalEvent<TechnologyDatabaseComponent, LatheGetRecipesEvent>(OnGetRecipes);
             SubscribeLocalEvent<EmagLatheRecipesComponent, LatheGetRecipesEvent>(GetEmagLatheRecipes);
+            SubscribeLocalEvent<LatheHeatProducingComponent, LatheStartPrintingEvent>(OnHeatStartPrinting);
 
             SubscribeLocalEvent<LatheComponent, LatheEjectMaterialMessage>(OnLatheEjectMessage);
         }
@@ -63,14 +68,14 @@ namespace Content.Server.Lathe
             if (!lathe.CanEjectStoredMaterials)
                 return;
 
-            if (!_prototypeManager.TryIndex<MaterialPrototype>(message.Material, out var material))
+            if (!_proto.TryIndex<MaterialPrototype>(message.Material, out var material))
                 return;
 
             var volume = 0;
 
             if (material.StackEntity != null)
             {
-                var entProto = _prototypeManager.Index<EntityPrototype>(material.StackEntity);
+                var entProto = _proto.Index<EntityPrototype>(material.StackEntity);
                 if (!entProto.TryGetComponent<PhysicalCompositionComponent>(out var composition))
                     return;
 
@@ -103,6 +108,34 @@ namespace Content.Server.Lathe
                 if (_timing.CurTime - comp.StartTime >= comp.ProductionLength)
                     FinishProducing(uid, lathe);
             }
+
+            var heatQuery = EntityQueryEnumerator<LatheHeatProducingComponent, LatheProducingComponent, TransformComponent>();
+            while (heatQuery.MoveNext(out var uid, out var heatComp, out _, out var xform))
+            {
+                if (_timing.CurTime < heatComp.NextSecond)
+                    continue;
+                heatComp.NextSecond += TimeSpan.FromSeconds(1);
+
+                var position = _transform.GetGridTilePositionOrDefault((uid,xform));
+                _environments.Clear();
+
+                if (_atmosphere.GetTileMixture(xform.GridUid, xform.MapUid, position, true) is { } tileMix)
+                    _environments.Add(tileMix);
+
+                if (xform.GridUid != null)
+                {
+                    _environments.AddRange(_atmosphere.GetAdjacentTileMixtures(xform.GridUid.Value, position, false, true));
+                }
+
+                if (_environments.Count > 0)
+                {
+                    var heatPerTile = heatComp.EnergyPerSecond / _environments.Count;
+                    foreach (var env in _environments)
+                    {
+                        _atmosphere.AddHeat(env, heatPerTile);
+                    }
+                }
+            }
         }
 
         private void OnGetWhitelist(EntityUid uid, LatheComponent component, ref GetMaterialWhitelistEvent args)
@@ -189,6 +222,9 @@ namespace Content.Server.Lathe
             lathe.ProductionLength = recipe.CompleteTime * component.TimeMultiplier;
             component.CurrentRecipe = recipe;
 
+            var ev = new LatheStartPrintingEvent(recipe);
+            RaiseLocalEvent(uid, ref ev);
+
             _audio.PlayPvs(component.ProducingSound, uid);
             UpdateRunningAppearance(uid, true);
             UpdateUserInterfaceState(uid, component);
@@ -260,6 +296,11 @@ namespace Content.Server.Lathe
             }
         }
 
+        private void OnHeatStartPrinting(EntityUid uid, LatheHeatProducingComponent component, LatheStartPrintingEvent args)
+        {
+            component.NextSecond = _timing.CurTime;
+        }
+
         private void OnMaterialAmountChanged(EntityUid uid, LatheComponent component, ref MaterialAmountChangedEvent args)
         {
             UpdateUserInterfaceState(uid, component);
@@ -300,22 +341,6 @@ namespace Content.Server.Lathe
             }
         }
 
-        private void OnPartsRefresh(EntityUid uid, LatheComponent component, RefreshPartsEvent args)
-        {
-            var printTimeRating = args.PartRatings[component.MachinePartPrintSpeed];
-            var materialUseRating = args.PartRatings[component.MachinePartMaterialUse];
-
-            component.TimeMultiplier = MathF.Pow(component.PartRatingPrintTimeMultiplier, printTimeRating - 1);
-            component.MaterialUseMultiplier = MathF.Pow(component.PartRatingMaterialUseMultiplier, materialUseRating - 1);
-            Dirty(component);
-        }
-
-        private void OnUpgradeExamine(EntityUid uid, LatheComponent component, UpgradeExamineEvent args)
-        {
-            args.AddPercentageUpgrade("lathe-component-upgrade-speed", 1 / component.TimeMultiplier);
-            args.AddPercentageUpgrade("lathe-component-upgrade-material-use", component.MaterialUseMultiplier);
-        }
-
         private void OnDatabaseModified(EntityUid uid, LatheComponent component, ref TechnologyDatabaseModifiedEvent args)
         {
             UpdateUserInterfaceState(uid, component);
index 410db3c86f910e8cd2977c4483bf65ab5611c70a..8607cf48e2a626999c9a10a2fa3bb4fc3ba15e34 100644 (file)
@@ -57,39 +57,15 @@ namespace Content.Shared.Lathe
         /// <summary>
         /// A modifier that changes how long it takes to print a recipe
         /// </summary>
-        [ViewVariables(VVAccess.ReadWrite)]
+        [DataField, ViewVariables(VVAccess.ReadWrite)]
         public float TimeMultiplier = 1;
 
-        /// <summary>
-        /// The machine part that reduces how long it takes to print a recipe.
-        /// </summary>
-        [DataField]
-        public ProtoId<MachinePartPrototype> MachinePartPrintSpeed = "Manipulator";
-
-        /// <summary>
-        /// The value that is used to calculate the modified <see cref="TimeMultiplier"/>
-        /// </summary>
-        [DataField]
-        public float PartRatingPrintTimeMultiplier = 0.5f;
-
         /// <summary>
         /// A modifier that changes how much of a material is needed to print a recipe
         /// </summary>
-        [ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
+        [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
         public float MaterialUseMultiplier = 1;
 
-        /// <summary>
-        /// The machine part that reduces how much material it takes to print a recipe.
-        /// </summary>
-        [DataField]
-        public ProtoId<MachinePartPrototype> MachinePartMaterialUse = "MatterBin";
-
-        /// <summary>
-        /// The value that is used to calculate the modifier <see cref="MaterialUseMultiplier"/>
-        /// </summary>
-        [DataField]
-        public float PartRatingMaterialUseMultiplier = DefaultPartRatingMaterialUseMultiplier;
-
         public const float DefaultPartRatingMaterialUseMultiplier = 0.85f;
         #endregion
     }
@@ -105,4 +81,10 @@ namespace Content.Shared.Lathe
             Lathe = lathe;
         }
     }
+
+    /// <summary>
+    /// Event raised on a lathe when it starts producing a recipe.
+    /// </summary>
+    [ByRefEvent]
+    public readonly record struct LatheStartPrintingEvent(LatheRecipePrototype Recipe);
 }
index 221dbddbe5b35c93143594d9e7f7a6096d59f40e..d9a0ef573b1ef958e4b4a1936d983319daa4c3a0 100644 (file)
       materialRequirements:
         Glass: 1
 
+- type: entity
+  parent: BaseMachineCircuitboard
+  id: AutolatheHyperConvectionMachineCircuitboard
+  name: hyper convection autolathe machine board
+  description: A machine printed circuit board for a hyper convection autolathe
+  components:
+  - type: MachineBoard
+    prototype: AutolatheHyperConvection
+    requirements:
+      MatterBin: 3
+    materialRequirements:
+      Glass: 1
+    tagRequirements:
+      Igniter:
+        Amount: 1
+        DefaultPrototype: Igniter
+        ExamineName: Igniter
+
 - type: entity
   id: ProtolatheMachineCircuitboard
   parent: BaseMachineCircuitboard
           DefaultPrototype: Beaker
           ExamineName: Glass Beaker
 
+- type: entity
+  parent: BaseMachineCircuitboard
+  id: ProtolatheHyperConvectionMachineCircuitboard
+  name: hyper convection protolathe machine board
+  description: A machine printed circuit board for a hyper convection protolathe.
+  components:
+  - type: MachineBoard
+    prototype: ProtolatheHyperConvection
+    requirements:
+      MatterBin: 2
+    tagRequirements:
+      GlassBeaker:
+        Amount: 2
+        DefaultPrototype: Beaker
+        ExamineName: Glass Beaker
+      Igniter:
+        Amount: 1
+        DefaultPrototype: Igniter
+        ExamineName: Igniter
+
 - type: entity
   id: SecurityTechFabCircuitboard
   parent: BaseMachineCircuitboard
       materialRequirements:
         Glass: 1
 
+- type: entity
+  parent: BaseMachineCircuitboard
+  id: OreProcessorIndustrialMachineCircuitboard
+  name: industrial ore processor machine board
+  components:
+  - type: Sprite
+    state: supply
+  - type: MachineBoard
+    prototype: OreProcessorIndustrial
+    requirements:
+      MatterBin: 1
+      Manipulator: 3
+    materialRequirements:
+      Glass: 1
+
 - type: entity
   id: SheetifierMachineCircuitboard
   parent: BaseMachineCircuitboard
index 76e6aaf76a7e37e372eb36400fe951b9d5b338f6..7472258f75f610224b877b5b68eac0ceb3265a01 100644 (file)
       - MagazineBoxLightRifleUranium
       - MagazineBoxRifleUranium
 
+- type: entity
+  id: AutolatheHyperConvection
+  parent: Autolathe
+  name: hyper convection autolathe
+  description: A highly-experimental autolathe that harnesses the power of extreme heat to slowly create objects more cost-effectively.
+  components:
+  - type: Sprite
+    sprite: Structures/Machines/autolathe_hypercon.rsi
+  - type: Lathe
+    materialUseMultiplier: 0.70
+    timeMultiplier: 1.5
+  - type: LatheHeatProducing
+  - type: Machine
+    board: AutolatheHyperConvectionMachineCircuitboard
+
 - type: entity
   id: Protolathe
   parent: BaseLathe
       - WeaponLaserCannon
       - WeaponXrayCannon
 
+- type: entity
+  id: ProtolatheHyperConvection
+  parent: Protolathe
+  name: hyper convection protolathe
+  description: A highly-experimental protolathe that harnesses the power of extreme heat to slowly create objects more cost-effectively.
+  components:
+  - type: Sprite
+    sprite: Structures/Machines/protolathe_hypercon.rsi
+  - type: Lathe
+    materialUseMultiplier: 0.70
+    timeMultiplier: 1.5
+  - type: LatheHeatProducing
+  - type: Machine
+    board: ProtolatheHyperConvectionMachineCircuitboard
+
 - type: entity
   id: CircuitImprinter
   parent: BaseLathe
     idleState: icon
     runningState: building
     staticRecipes:
+    - ProtolatheMachineCircuitboard
+    - AutolatheMachineCircuitboard
+    - CircuitImprinterMachineCircuitboard
+    - OreProcessorMachineCircuitboard
+    - MaterialReclaimerMachineCircuitboard
     - ElectrolysisUnitMachineCircuitboard
     - CentrifugeMachineCircuitboard
     - CondenserMachineCircuitBoard
       - SolarControlComputerCircuitboard
       - SolarTrackerElectronics
       - PowerComputerCircuitboard
-      - AutolatheMachineCircuitboard
-      - ProtolatheMachineCircuitboard
+      - AutolatheHyperConvectionMachineCircuitboard
+      - ProtolatheHyperConvectionMachineCircuitboard
       - ReagentGrinderMachineCircuitboard
       - HotplateMachineCircuitboard
       - MicrowaveMachineCircuitboard
       - UniformPrinterMachineCircuitboard
       - ShuttleConsoleCircuitboard
       - RadarConsoleCircuitboard
-      - CircuitImprinterMachineCircuitboard
       - TechDiskComputerCircuitboard
       - DawInstrumentMachineCircuitboard
       - CloningConsoleComputerCircuitboard
       - StasisBedMachineCircuitboard
-      - MaterialReclaimerMachineCircuitboard
-      - OreProcessorMachineCircuitboard
+      - OreProcessorIndustrialMachineCircuitboard
       - CargoTelepadMachineCircuitboard
       - RipleyCentralElectronics
       - RipleyPeripheralsElectronics
         - IngotSilver30
         - MaterialBananium10
 
+- type: entity
+  parent: OreProcessor
+  id: OreProcessorIndustrial
+  name: industrial ore processor
+  description: An ore processor specifically designed for mass-producing metals in industrial applications.
+  components:
+  - type: Sprite
+    sprite: Structures/Machines/ore_processor_industrial.rsi
+  - type: Machine
+    board: OreProcessorIndustrialMachineCircuitboard
+  - type: Lathe
+    materialUseMultiplier: 0.75
+    timeMultiplier: 0.5
+
 - type: entity
   parent: BaseLathe
   id: Sheetifier
index b4b05a8a01ed84945d9066e44363fc8447b8f899..340047856ce69e793a246112cd2ae0cf18996f73 100644 (file)
      Steel: 100
      Glass: 900
 
+- type: latheRecipe
+  id: AutolatheHyperConvectionMachineCircuitboard
+  result: AutolatheHyperConvectionMachineCircuitboard
+  completetime: 4
+  materials:
+    Steel: 100
+    Glass: 900
+    Gold: 100
+
+- type: latheRecipe
+  id: ProtolatheHyperConvectionMachineCircuitboard
+  result: ProtolatheHyperConvectionMachineCircuitboard
+  completetime: 4
+  materials:
+    Steel: 100
+    Glass: 900
+    Gold: 100
+
 - type: latheRecipe
   id: CircuitImprinterMachineCircuitboard
   result: CircuitImprinterMachineCircuitboard
   materials:
     Steel: 100
     Glass: 900
+
+- type: latheRecipe
+  id: OreProcessorIndustrialMachineCircuitboard
+  result: OreProcessorIndustrialMachineCircuitboard
+  completetime: 4
+  materials:
+    Steel: 100
+    Glass: 900
     Gold: 100
 
 - type: latheRecipe
index e460957b80d8e106a6f6d07573e46183c0fef741..ef4df8370b2b09e7a4ad43cb897a467200e9fe3b 100644 (file)
@@ -12,7 +12,7 @@
   recipeUnlocks:
   - MiningDrill
   - BorgModuleMining
-  - OreProcessorMachineCircuitboard
+  - OreProcessorIndustrialMachineCircuitboard
   - OreBagOfHolding
 
 - type: technology
   id: IndustrialEngineering
   name: research-technology-industrial-engineering
   icon:
-    sprite: Structures/Machines/protolathe.rsi
-    state: icon
+    sprite: Structures/Machines/protolathe_hypercon.rsi
+    state: building
   discipline: Industrial
   tier: 1
-  cost: 7500
+  cost: 10000
   recipeUnlocks:
-  - ProtolatheMachineCircuitboard
-  - AutolatheMachineCircuitboard
-  - CircuitImprinterMachineCircuitboard
-  - MaterialReclaimerMachineCircuitboard
+  - AutolatheHyperConvectionMachineCircuitboard
+  - ProtolatheHyperConvectionMachineCircuitboard
   - SheetifierMachineCircuitboard
 
 - type: technology
diff --git a/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/building.png b/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/building.png
new file mode 100644 (file)
index 0000000..cb1abc7
Binary files /dev/null and b/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/building.png differ
diff --git a/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/icon.png b/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/icon.png
new file mode 100644 (file)
index 0000000..1cd22be
Binary files /dev/null and b/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/icon.png differ
diff --git a/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/inserting.png b/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/inserting.png
new file mode 100644 (file)
index 0000000..8c927b2
Binary files /dev/null and b/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/inserting.png differ
diff --git a/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/meta.json b/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/meta.json
new file mode 100644 (file)
index 0000000..3dfb068
--- /dev/null
@@ -0,0 +1,51 @@
+{
+  "version": 1,
+  "license": "CC-BY-SA-3.0",
+  "copyright": "Created by UbaserB (GitHub) for SS14",
+  "size": {
+    "x": 32,
+    "y": 32
+  },
+  "states": [
+    {
+      "name": "icon"
+    },
+    {
+      "name": "panel"
+    },
+    {
+      "name": "unlit"
+    },
+    {
+      "name": "building",
+      "delays": [
+        [
+          0.5,
+          0.5,
+          0.5,
+          0.5,
+          0.5,
+          0.5,
+          0.5,
+          0.5,
+          0.5
+        ]
+      ]
+    },
+    {
+      "name": "inserting",
+      "delays": [
+        [
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1
+        ]
+      ]
+    }
+  ]
+}
diff --git a/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/panel.png b/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/panel.png
new file mode 100644 (file)
index 0000000..1e07131
Binary files /dev/null and b/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/panel.png differ
diff --git a/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/unlit.png b/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/unlit.png
new file mode 100644 (file)
index 0000000..f837d09
Binary files /dev/null and b/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/unlit.png differ
diff --git a/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/building.png b/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/building.png
new file mode 100644 (file)
index 0000000..da9b15a
Binary files /dev/null and b/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/building.png differ
diff --git a/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/icon.png b/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/icon.png
new file mode 100644 (file)
index 0000000..adeaf7b
Binary files /dev/null and b/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/icon.png differ
diff --git a/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/inserting.png b/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/inserting.png
new file mode 100644 (file)
index 0000000..568e62f
Binary files /dev/null and b/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/inserting.png differ
diff --git a/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/meta.json b/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/meta.json
new file mode 100644 (file)
index 0000000..30361f8
--- /dev/null
@@ -0,0 +1,50 @@
+{
+  "version": 1,
+  "license": "CC-BY-SA-3.0",
+  "copyright": "Created by UbaserB (GitHub) for SS14, based on ore processor sprite from tgstation",
+  "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"
+       }
+  ]
+}
diff --git a/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/panel.png b/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/panel.png
new file mode 100644 (file)
index 0000000..eebe721
Binary files /dev/null and b/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/panel.png differ
diff --git a/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/unlit.png b/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/unlit.png
new file mode 100644 (file)
index 0000000..3b3190d
Binary files /dev/null and b/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/unlit.png differ
diff --git a/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/building.png b/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/building.png
new file mode 100644 (file)
index 0000000..8cb2114
Binary files /dev/null and b/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/building.png differ
diff --git a/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/icon.png b/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/icon.png
new file mode 100644 (file)
index 0000000..1ac31a7
Binary files /dev/null and b/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/icon.png differ
diff --git a/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/inserting.png b/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/inserting.png
new file mode 100644 (file)
index 0000000..752cad3
Binary files /dev/null and b/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/inserting.png differ
diff --git a/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/meta.json b/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/meta.json
new file mode 100644 (file)
index 0000000..b032632
--- /dev/null
@@ -0,0 +1,52 @@
+{
+  "version": 1,
+  "license": "CC-BY-SA-3.0",
+  "copyright": "Created by UbaserB (GitHub) for SS14",
+  "size": {
+    "x": 32,
+    "y": 32
+  },
+  "states": [
+    {
+      "name": "icon"
+    },
+    {
+      "name": "panel"
+    },
+    {
+      "name": "unlit"
+    },
+    {
+      "name": "building",
+      "delays": [
+        [
+          1.0,
+          1.0,
+          1.0,
+          1.0,
+          1.0,
+          1.0,
+          1.0,
+          1.0,
+          1.0,
+          1.0
+        ]
+      ]
+    },
+    {
+      "name": "inserting",
+      "delays": [
+        [
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1
+        ]
+      ]
+    }
+  ]
+}
diff --git a/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/panel.png b/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/panel.png
new file mode 100644 (file)
index 0000000..1d2d002
Binary files /dev/null and b/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/panel.png differ
diff --git a/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/unlit.png b/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/unlit.png
new file mode 100644 (file)
index 0000000..dd7d0d8
Binary files /dev/null and b/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/unlit.png differ