From c3f81bfe033a14922dc6e91de402c56d321f3370 Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Sat, 30 Dec 2023 11:18:58 -0500 Subject: [PATCH] Hyper convection lathes and industrial ore processor (#23202) * Hyper-convection lathes and industrial ore processor * balance * gold... why not? * review --------- Co-authored-by: metalgearsloth --- .../Components/LatheHeatProducingComponent.cs | 21 ++++++ Content.Server/Lathe/LatheSystem.cs | 71 ++++++++++++------ Content.Shared/Lathe/LatheComponent.cs | 34 ++------- .../Circuitboards/Machine/production.yml | 53 +++++++++++++ .../Entities/Structures/Machines/lathe.yml | 57 ++++++++++++-- .../Prototypes/Recipes/Lathes/electronics.yml | 26 +++++++ Resources/Prototypes/Research/industrial.yml | 14 ++-- .../autolathe_hypercon.rsi/building.png | Bin 0 -> 3124 bytes .../Machines/autolathe_hypercon.rsi/icon.png | Bin 0 -> 1319 bytes .../autolathe_hypercon.rsi/inserting.png | Bin 0 -> 711 bytes .../Machines/autolathe_hypercon.rsi/meta.json | 51 +++++++++++++ .../Machines/autolathe_hypercon.rsi/panel.png | Bin 0 -> 470 bytes .../Machines/autolathe_hypercon.rsi/unlit.png | Bin 0 -> 166 bytes .../ore_processor_industrial.rsi/building.png | Bin 0 -> 1421 bytes .../ore_processor_industrial.rsi/icon.png | Bin 0 -> 903 bytes .../inserting.png | Bin 0 -> 2948 bytes .../ore_processor_industrial.rsi/meta.json | 50 ++++++++++++ .../ore_processor_industrial.rsi/panel.png | Bin 0 -> 223 bytes .../ore_processor_industrial.rsi/unlit.png | Bin 0 -> 167 bytes .../protolathe_hypercon.rsi/building.png | Bin 0 -> 4341 bytes .../Machines/protolathe_hypercon.rsi/icon.png | Bin 0 -> 1199 bytes .../protolathe_hypercon.rsi/inserting.png | Bin 0 -> 652 bytes .../protolathe_hypercon.rsi/meta.json | 52 +++++++++++++ .../protolathe_hypercon.rsi/panel.png | Bin 0 -> 761 bytes .../protolathe_hypercon.rsi/unlit.png | Bin 0 -> 202 bytes 25 files changed, 367 insertions(+), 62 deletions(-) create mode 100644 Content.Server/Lathe/Components/LatheHeatProducingComponent.cs create mode 100644 Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/building.png create mode 100644 Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/icon.png create mode 100644 Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/inserting.png create mode 100644 Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/meta.json create mode 100644 Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/panel.png create mode 100644 Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/unlit.png create mode 100644 Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/building.png create mode 100644 Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/icon.png create mode 100644 Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/inserting.png create mode 100644 Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/meta.json create mode 100644 Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/panel.png create mode 100644 Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/unlit.png create mode 100644 Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/building.png create mode 100644 Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/icon.png create mode 100644 Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/inserting.png create mode 100644 Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/meta.json create mode 100644 Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/panel.png create mode 100644 Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/unlit.png diff --git a/Content.Server/Lathe/Components/LatheHeatProducingComponent.cs b/Content.Server/Lathe/Components/LatheHeatProducingComponent.cs new file mode 100644 index 0000000000..ea5912ad2f --- /dev/null +++ b/Content.Server/Lathe/Components/LatheHeatProducingComponent.cs @@ -0,0 +1,21 @@ +using Content.Shared.Lathe; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Server.Lathe.Components; + +/// +/// This is used for a that releases heat into the surroundings while producing items. +/// +[RegisterComponent] +[Access(typeof(LatheSystem))] +public sealed partial class LatheHeatProducingComponent : Component +{ + /// + /// The amount of energy produced each second when producing an item. + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float EnergyPerSecond = 40000; + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] + public TimeSpan NextSecond; +} diff --git a/Content.Server/Lathe/LatheSystem.cs b/Content.Server/Lathe/LatheSystem.cs index c6614fcd4f..a262c1a69f 100644 --- a/Content.Server/Lathe/LatheSystem.cs +++ b/Content.Server/Lathe/LatheSystem.cs @@ -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!; + + /// + /// Per-tick cache + /// + private readonly List _environments = new(); public override void Initialize() { @@ -42,8 +48,6 @@ namespace Content.Server.Lathe SubscribeLocalEvent(OnGetWhitelist); SubscribeLocalEvent(OnMapInit); SubscribeLocalEvent(OnPowerChanged); - SubscribeLocalEvent(OnPartsRefresh); - SubscribeLocalEvent(OnUpgradeExamine); SubscribeLocalEvent(OnDatabaseModified); SubscribeLocalEvent(OnResearchRegistrationChanged); @@ -54,6 +58,7 @@ namespace Content.Server.Lathe SubscribeLocalEvent(OnMaterialAmountChanged); SubscribeLocalEvent(OnGetRecipes); SubscribeLocalEvent(GetEmagLatheRecipes); + SubscribeLocalEvent(OnHeatStartPrinting); SubscribeLocalEvent(OnLatheEjectMessage); } @@ -63,14 +68,14 @@ namespace Content.Server.Lathe if (!lathe.CanEjectStoredMaterials) return; - if (!_prototypeManager.TryIndex(message.Material, out var material)) + if (!_proto.TryIndex(message.Material, out var material)) return; var volume = 0; if (material.StackEntity != null) { - var entProto = _prototypeManager.Index(material.StackEntity); + var entProto = _proto.Index(material.StackEntity); if (!entProto.TryGetComponent(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(); + 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); diff --git a/Content.Shared/Lathe/LatheComponent.cs b/Content.Shared/Lathe/LatheComponent.cs index 410db3c86f..8607cf48e2 100644 --- a/Content.Shared/Lathe/LatheComponent.cs +++ b/Content.Shared/Lathe/LatheComponent.cs @@ -57,39 +57,15 @@ namespace Content.Shared.Lathe /// /// A modifier that changes how long it takes to print a recipe /// - [ViewVariables(VVAccess.ReadWrite)] + [DataField, ViewVariables(VVAccess.ReadWrite)] public float TimeMultiplier = 1; - /// - /// The machine part that reduces how long it takes to print a recipe. - /// - [DataField] - public ProtoId MachinePartPrintSpeed = "Manipulator"; - - /// - /// The value that is used to calculate the modified - /// - [DataField] - public float PartRatingPrintTimeMultiplier = 0.5f; - /// /// A modifier that changes how much of a material is needed to print a recipe /// - [ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] public float MaterialUseMultiplier = 1; - /// - /// The machine part that reduces how much material it takes to print a recipe. - /// - [DataField] - public ProtoId MachinePartMaterialUse = "MatterBin"; - - /// - /// The value that is used to calculate the modifier - /// - [DataField] - public float PartRatingMaterialUseMultiplier = DefaultPartRatingMaterialUseMultiplier; - public const float DefaultPartRatingMaterialUseMultiplier = 0.85f; #endregion } @@ -105,4 +81,10 @@ namespace Content.Shared.Lathe Lathe = lathe; } } + + /// + /// Event raised on a lathe when it starts producing a recipe. + /// + [ByRefEvent] + public readonly record struct LatheStartPrintingEvent(LatheRecipePrototype Recipe); } diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml index 221dbddbe5..d9a0ef573b 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml @@ -12,6 +12,24 @@ 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 @@ -29,6 +47,26 @@ 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 @@ -873,6 +911,21 @@ 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 diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 76e6aaf76a..7472258f75 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -180,6 +180,21 @@ - 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 @@ -296,6 +311,21 @@ - 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 @@ -320,6 +350,11 @@ idleState: icon runningState: building staticRecipes: + - ProtolatheMachineCircuitboard + - AutolatheMachineCircuitboard + - CircuitImprinterMachineCircuitboard + - OreProcessorMachineCircuitboard + - MaterialReclaimerMachineCircuitboard - ElectrolysisUnitMachineCircuitboard - CentrifugeMachineCircuitboard - CondenserMachineCircuitBoard @@ -345,8 +380,8 @@ - SolarControlComputerCircuitboard - SolarTrackerElectronics - PowerComputerCircuitboard - - AutolatheMachineCircuitboard - - ProtolatheMachineCircuitboard + - AutolatheHyperConvectionMachineCircuitboard + - ProtolatheHyperConvectionMachineCircuitboard - ReagentGrinderMachineCircuitboard - HotplateMachineCircuitboard - MicrowaveMachineCircuitboard @@ -356,13 +391,11 @@ - UniformPrinterMachineCircuitboard - ShuttleConsoleCircuitboard - RadarConsoleCircuitboard - - CircuitImprinterMachineCircuitboard - TechDiskComputerCircuitboard - DawInstrumentMachineCircuitboard - CloningConsoleComputerCircuitboard - StasisBedMachineCircuitboard - - MaterialReclaimerMachineCircuitboard - - OreProcessorMachineCircuitboard + - OreProcessorIndustrialMachineCircuitboard - CargoTelepadMachineCircuitboard - RipleyCentralElectronics - RipleyPeripheralsElectronics @@ -925,6 +958,20 @@ - 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 diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index b4b05a8a01..340047856c 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -188,6 +188,24 @@ 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 @@ -390,6 +408,14 @@ materials: Steel: 100 Glass: 900 + +- type: latheRecipe + id: OreProcessorIndustrialMachineCircuitboard + result: OreProcessorIndustrialMachineCircuitboard + completetime: 4 + materials: + Steel: 100 + Glass: 900 Gold: 100 - type: latheRecipe diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml index e460957b80..ef4df8370b 100644 --- a/Resources/Prototypes/Research/industrial.yml +++ b/Resources/Prototypes/Research/industrial.yml @@ -12,7 +12,7 @@ recipeUnlocks: - MiningDrill - BorgModuleMining - - OreProcessorMachineCircuitboard + - OreProcessorIndustrialMachineCircuitboard - OreBagOfHolding - type: technology @@ -45,16 +45,14 @@ 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 index 0000000000000000000000000000000000000000..cb1abc7aa8e5c16ab9cc68f8c17361dd009c968d GIT binary patch literal 3124 zcmb7{X*d+>7rZ6bS?kuhTzS!%|!NLNR?7~ zRpe@FSej0VuZjyeO|ZF*-w?W3PT-Yocq)82>N=jT8&%|uANA3hIDES?RVq(2PS)m` zluBZbifW6Hw7;@0xidjQG`xwoxPG=NoV4W?Y(?aK_BcV}{6ZDOakEjyvpm!mP$jjG zydMK?aT}NZ;vmHTJ)VPcb6G_`JVnJ_sK>Olv}7(|RDoAs{)*Si!UYNe$P`Mw`!YNw zg0rb_d;39#C5OF?yVo?SId8QFI+jP#!r|DqhOrD9jc}s}1^l$O3Su7AT?MOUY+HbbJ?hfX4&f|BjB&Un9~3LPPiMx~x)S zf{;E#>bR>Kog(H~w1Egpdf80$?%{nOACC<)NotP6S)j_~ z1t{kJeMFAV?M%3jSr@5FKBEwKMJ3l8`S}upU2nviTq2~DDQ70vpDMWE*C<;WYP1ks zgxvvI;AM}Ov7sBWra|QuLdoQHsF=98-Nm~!ZuxPgUbm%MQugA;wtbGcz?g1&RK9p@ zG;gLt%4GDrA9QyA-DKoxrJ=_lSt|)fwO8-eEtd38vWuxluC-cKRc%SxqE&>88sjrS zNNB>GMRpE8>2x({l+8oExK{KbUQ{S0VtI&U7`bU}ziqvw9x6KXHY&W+JDdwI_@*wA zL1Zkc$F=-mr-=0p4P>R#w_Z0@eM?u%zQA>7i?5pU)4lMd)U5R}b^w{er^z=OVof!ciR0!Q$!9@8dYYK+;^^6Oo6 z$Lj2tV3BB*%jvzJY>slF&fE_NP}i>;2>Kfsce(8S=I`t*F%r7TtfX2=%`1`?&hBk) z_H0A&OONl~*3uPKb#)`3t`cErJA2~^;8RiccWmX$;_8)B(#K^6Hp{bfnPKPbyte}%3C^&boSr`L z?V8f5ynwwcD~3={ib8O3y-bF)N*CpP??{=SHVkFJe!`$453U5y>Qy|Mg{v_JjRNX? zr)Pb?bKe#MlNR?^XJ=B^(*6D4HZo!w1e(64jZP~EY-uqDnx}QL@6#3UTu7b_+j#9^ zX=F5*3Pf8PkcRFv{%{^0K<|(Xeb_hU7ZM)$01p-a0Y3NgOmid76uDN?lJ9slP1emt z$%I87Iq@}I#u7+yqz(%J65C`EqAr|3KVOvNBK`veQ6fcZmDn2VW;Ir4ajQ60Zj9v5 z0YpQ)25zvt5;UebP2+q7+Kftx5gATm71BLpyMi9y!zL+QHc_!#_vsxuCm7w8bOaDw zR=xT53IV@=5QIK37+x3Z{)l}WXG`w^m9cZILH%Lmy=;77$hGUqx`45}XwuksRHl&l z+Ei13F2Lcg4C2=#x`(`)ove(^X`o?HsSLK?+@hyuK14oN55wg5Q4}k#dusUlwIk_LW0Dl?FlqVIi%`L&#Z=VAm+*7{(wyFAB zyNxaIDU~@BE6^MnneZoSN21@Yj=KGz;B>JrAk#WeQ#95j2Vt+Fc_JI|_sVY}SG%B- z6P>1Qp}%sMLOdQ3RB!}|? zSb`x-^8YQw&t(h#jRU7YBy9%z_LMy?#YQlyrW%&9Z&n$KIIzU~#geAFyo{XhW=?rJ z1b+1PF)OE#`$pOKbO)Erm|UjQI6Wf|qIAmiZhgoqqbCOF>*Qps`K3p9ZYRJzBPpfO zgyNkAIfgbly3IA_ov^$~o++ys+OooEr`}v_;#eH`H=@g)^~%ln0% zk&Rb|?(?x*l!AuWpNRQwxBM;!TJizF-wxi-wpqjJ*T>YKrb6DAV?=c%%}VJ^b5_Dd zUM+wO*UTzSMrd@JHG&S-W}x|b1u_GwP`BO3%};+f`RsDVnU^)GK*;+th!cO5;L=lJ zE^=FT5Yz%z>owd~w)nR-cY|-27}`eIM{OP^@Ai~F9AmPfG@XdQn9Q{$$z1zzaY5tO zgWj3wPds1_2@DJPcVD<>$aApbP^}3>y%@}2C{SZ8OOhOYjNYGxQz};&y*h(%YMBxw z9imh|)c&%jNV12?5nSK7bl?@bX3!z(^}QY2d7bv zn+s7g#lcADXB3|!6tsIb)#I6L9wnJAShY^LK{aEGE^DcTu_Ytlu&emdiTI{HUMcee zaucn1NAKMl4{RfyUMYUq%1_iY(gsXzw|9@6^kcGgEm(r~EbyqFQ+lB*dmp-EM+X)j zg?z!#75_)4>2->zgot%1K0iH26<+ydzy+RX>_bNnBL8DZ@ie+)Em(YF!OAhQ)%w97 zk5>a0U5!mIHaNV~`zwu49)(Q*46Y-m8GPx4MbH5aA2RTL7wVskv)q>?HTq7eNH9;f zQVbWi+d@$7=+bjfK0t3-X5ic|1bq}WzcV#F4IKHwG1R17PU_;Zni`FI1#Pu#-=0)D%9OCH%-;3(^%VsC87{;5eC z*%WS3FjLg^935Y~QVmhU%uTG#*Vd7fvUcWwLpmtI_ZpokF#TP;4!NURXwrY}PMy#uLK8FHMmEyKGc)4c83l2RAl36IlZ}ri5lK}7 z+=K_RmuND|YW#xEemm7cMQpehRAz@8A6f0H7Av%xg_uWB&&bk6vd0 literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..1cd22bea850ea63a2ca75d93b435e3ac43cb9cac GIT binary patch literal 1319 zcmV+?1=#wDP)Px(;Ymb6R9J=OmuqZOWf;eQ@7aa56VB<%*g7^c?wtX)L7Cx;Y~cecB+A8@-~}QY zP5dOV5TbaAF-Ap=CK?kZieFGvf=oW3iA=(Vj55YxYX>;SER&>lauJ?rT? zg;nAwpQL%u^PGR*=l?#pw}t<^h*ZEEHdbr*>+sv19~yk7r{cVN%PalBG((Q@FEeYH!$0NfdQjAFR={6S3pUa{}iy0goqUn^MvQoFcmX?+=I5@<~CLiTx zB}w z_LPcn&FU5Wy!U`18Zi`^XJXECuU3acD+jyMUo`u&09cM zS0@mSfGjKHa-Nlyg(OM$#D&9Q3JZ&vI8ip(u3Zb#+k44?O(_Kjf2+$GFZR$M2lbf{ zFYc20$qCqPS$f}kJQeyBv)i%&XlZFCGt*`oyYVtQI!rJaq_S!`Jw08xTm`6V0GF$P zKWl&I_1CuQ?QJ43Nsfd}QN{|%Zp+f`0Q-O0bC+`q9(i;n0O7E)P!%PIDS1NtJ+6ad$+U+3b*i%FfwB!-DOOy)Q# z0f6UU`iq@kE@9)#M@^M%RoU_HlD$`y9Qt~DOmUXLbc4%% z0bbqoj^#Y~Xve!u$(xF%Y0iB~n=N&#kR3Q6~}I>eo_yrwD+GC68$x9p@-7ub{E<7y#3!N3Puq7tSI{ zX%rXF0-(LU4M~zHE}k9L&mzPazP-H-Aw-;hmRQXQAyHnwn8wBiX3UtwvHAm%fIYWi zwKh6B$`88_h+L;rdv9~cC$91b2oe?F<6h)<^Payq#@Fd%aCXKO-0pL#B( d|EB+m`~%bd8hrpsXP^K8002ovPDHLkV1lAoaLoV! literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..8c927b29ceb1a3f06b68801c1c287005124fd15c GIT binary patch literal 711 zcmV;&0yzDNP)EX>4Tx04R}tkv&MmKpe$iQ>7vm2TK(Z%ut;yh>AFB6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfbaGO3krMyc6k5c1aNLh~_a1le0HIc5n$C=Larhh zITlcc2D#w}|AXJ%TDi#yHz^ncI$s>;V+0870`;ond>=bb{RHqo16O*>U# zjOHnO-Q(R|?Y;ebrrF;QYqWBtL{jLA0002~NklpxQzW?*jKUvPX%Q^xG)(l{prk?v4RyBZ9N;-}sl~Q`|=V_DyxaBKoqye~P z0MU95fB=FCAXqbi^E`X*!}E_BtQmvMkHv^;4hkmWOjk tB7k552&N$utlAH7J{|x70002sI=`2Ba}ubIMLGZg002ovPDHLkV1h_IGcy1H literal 0 HcmV?d00001 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 index 0000000000..3dfb0685f2 --- /dev/null +++ b/Resources/Textures/Structures/Machines/autolathe_hypercon.rsi/meta.json @@ -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 index 0000000000000000000000000000000000000000..1e07131c13f38b7aa357372870b9086c613da367 GIT binary patch literal 470 zcmV;{0V)28P)Px$kV!;AR9J=W)lVqHVI0Tt_wzGbjmwhd#QG^&E=1XhaH6J!oy0+LktQc4c99}c zloNJSV+TeKEEnbGPYy2g?@HQ=9BlSDNW#Q^{#~Be?f3ki@Avuid+PfWq{-VqD$}ib zHZ?II-maO9G-_>evwv{><^5%)PL`HKDc@;E0{kRH0i=9?3sOp)-Zq@xwv;tOy!-lq zfh%y&_z1`(ns~{cNXE(YPZH|!JuO5cuWBN1o(%^GTP!lvgV$mDy@D`T07PrpA;#)4GCPs}+Ft_G0dOV*~?&?U;*TKrmfp zMtA5mxHFMbqG^(ZNu#6Wieb;uhdt8@Fc^&rfYb9+nmv-a13Liz!(2K`FPZ7urEj4e zfVGu4^_w@;jAvrYzW{Rr)-!Xqc67g>iAhizdzV@PnHl zZA`rzu~~K3pG~_0_PlzakmYo)KE*qsrbyO7xZ#b)qFOU9H%2iAhI`zK-%q4{iv`-n N;OXk;vd$@?2>|E|JBt7S literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..da9b15a9345d175843c2cb32df53123ac8bba1a7 GIT binary patch literal 1421 zcmaKsX;9J$7{>o-Y6l)2ws?hEYfSBwwS`&;YMN=1M~Iq|XovTaT9AQ|mZD{@t7+r0 z7M3WQZfq8N?0$IPcjkHC-!t#0H_Q8^oBn#! z^#B0qyB~M))lA~YTC1z+lXppWngL1jb#n&ldd+75K*!D9#R*3)oiD@2o4LX|)X}f8 zhsJu^FESpneaws75~4QXD1eNjWnk&IJF|3Qzg^O+7SXk%28hYNG22BcuMq(WPj2snWfWWXo5WgC5)VH9v+RAJs$P$fky!ZTbq#5j!@x3tS!shM-XD* zSNXh3c#zc>fy#)y@LD`_38a#Kqs5rBm8X2n(i4G*7lv1Hgqwk+vGi~cTik*h(h)=6 z=S8w7cO4_N3MXCv$ZWcoI#iF(^RS-}AI6UJZ<3Z$xi9_UwZ#|?#2ULJ+2rJT>_O8@ z<4A&S*dE07cjJr?;91ab2p&bhAZZnYvKyC^<*G{iuX!t+mFO59<{K6q-y@Hv&&)&y zH>PmwvjzB+LwV*2z04S-nJKnv4h{kM16sgHBb8sDcHL+ZoRPE{+bvf^uo5CHzrVU^ zoTLM5KR4-|nU$TY4cDls-Wn(Oc;?7pSpoNM)y zTW-eEzyTjg;Z!J(G91-ySl<+~y1g>eG^WNxXS>2;u^_28jV4fb^S1pGHrDpO(PYLVLoK1J^W*cC5aM(N zT<-&@P*QWP@VsRjrQwcUJ!+O%b_19D{QNtGE)CAQR@?u~^GurqzZ0fvq22>G$$r(V zd0RyI&PZ!C&e^>&0AaU5#?Oqc$qJ6clWFVNDyr~D=k4QMZ~j2*#ifQ>bj4If=L3nu zo`7oHQK6&pO0WO-83w~qOyBDEZ4+lQxG&3LW+jXfmgGuWu`w#X)}_^QqB+u*Nz4kx!0vM35%MS|ScH2zw4{QC#`z;fAj$7+%n$!S3oeq#tz3 zVi@efyjbmBptaDZZw8fhhrfi|?Kg&8yRC$&FPXd7*=}r1%c# zL2d|Y%PH{-;HtV*T5%)Es$(KfpUhl{=IjWW@7@26$mB?UvwALIR^Aj(Si8N9y+o}5 zc<-AVin2lL7daDHL>66NWHLkW1!Frp=h%v)%#nv*Y`P(G-jhbow= z&Ejkr+zgx2>FqNrwt;@@(kbnzkx41Q<8lS0EwxwAXvrS#IQRcT*B49(nmDLXUYJIIIVn><}9HGvx7TAHRLM_uwN6Gp*c7KO^5xPx&K}keGR9J=Wmd|e6Mi9n-YuK_Am0VLYQAaRhOK#$*JvIIFKrIj;mpqtHKE*(a z)-TXQdPrRujVdQGse-j=l2&X}A3!W;xHI!{c4l|sfBeS~0Ig3R zs*-j?z*->QJzy;qI=`NXWdN;O<^KI`TDvX!=WY>4t3Y!B0@UgTo!1@Syg3D6d3M6- z>2C-j08lEOnCyl=x$%X4B^hRx+&g)K!jO+F>j2f@uXOUWhqByf{ zmX;>`gTPOWA>#To+b&iE0PBWKEkmtt;JW>UPS@pJf=a1mA)cLO&Px&SeUG1BzD!LF ztKKkbk?z&;&vOZ6A*&7&1U5D{`26wXxdju)XYEf*1&2u%>-Bn~o0b8B!2p2oUc4ye zNGZjiA3l^OaPgyy5CSRJqnL>dNV#6x>EDF_FwIQ`&~88aSArfN{{n#H^lld0G&hwd z^|?k{jYed68`|whyt5`})ukUq`$6bG@O&JnCm^;F2_XnPKl51>b)$w-ik+RENS;Mh z19$GMr9J|@e}AbtW#H=Sy3pQT2IteAv)k<^nJhh|r4o72x%OLX^j>dT26SS2zFw002ovPDHLkV1k_Ls_Xy& literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..568e62f9a2ec6125eebca717f810c717ba9df192 GIT binary patch literal 2948 zcmai0c{mj879WvOKE@Z7P?Qj|Gxi~b8SAw~mJE?KWXLudYqHCikr0t($jDNZWsoHq zSu;q+n6dBsOvbqL-9PUA=RWuT@t*UZ-*cYxoaem1_xGG6OLHTxvjS%U000-%*uaYE z;eQ_vcBY+s8LGx~EC?$jJplH*&@uqP34t2ivI)yyFL>f7IDffUCu6<7K&@@pBLB!%Y`z*(+UVZ0`wKLAK+9FT0ZaE*|aY237`REg?4 zo#~PA@c>-r=JSsTdA_0(cNEmstri;F!BacI)&W;LX`GJmhsayD1gQTIAlBN?>8a`Z z1+ARAebHk)jn=8@A^GDRYM9e9>1>s!f4FP5^SiS(FCa4XEb$5}u8j1#Kz@S7=-lny z{IjEpMn=*;alUD|rPCa2*;zjPXMsuG;wdBUcO@Nloe3$z24B8-G*){sn|ju38<8#~ zIVpcQ24dHzHGm>@q#UEWZJ?S?zVu?wp^1sF=>?k7QcGgaj%FPlO(~tEKxjZQnmHGl z=YZMl92e{jQD;K#pu6cs_{uMSJq|vxOwVx*Tm}0LSbK1pG{%9#8C_QPLqpe&fX+BQ z^)r$$+AH|o0*%&##dv?%u%pyzR;L*(X-DAg`yL0(!!x~A%*7E{xXCR$JBf0m)Y{7B zCiEs~afdJ##+V)0%2=S97;^v%3i2S}C~SER8{e4UU>|;a(WNV%$IAyfjMUXK6E%PCj)ovMJ?=KyT;?IC2 zddr~YR(QOrj*WdLj9QQRgX{446~pEkI^ao$&7z93@RK;hnne6%To>Vxd)YlXP)*lq zbjWJRvE73728E>2?M?MLB<^nj9AhD;LLr7r$#RI5tyR%|g z{)sy`pE5SxVkoEjm}KWZZg|a9Oenu)?utWmV~MinUEBajV~-w^`X&@Kdhq=optDYz z$bR7tsdQ=c?mv}o070`+ueLuDWIbAO-E);%)jC*j3==M8U}6{p8@K``+_;SDLn)2GT;_HTV<+ z^rK}QrEm0;$-V^vN31s&elh?lw2wONZf)zJ_b>lHG{3$5;k)W0Xh|D=+=GeZ@v=6w zxVoa~=JM+M0H7zvMgoEZITN;}8Ge^w48L8+yQo*g`+0LUU0*p=dYvoqw0kAL{UAnx62QK3V0O@IE*P^hFLRZDx_qN+3TSN5~WCYvzSgmX1`>!RIGN{gNau0voIiI&t zgQIvzZC;E?K&i(Om?AEm)Eio2ZvH;p+A)OAB5`EIk3Kc#f&wYkKv;E;_YdE%SJ|;_ zF-!u^X;C>YuRpJ&weOI3EepEERjb4WjGgAl$Lx_Aj z#XM&D&Weh%vr3`#|3Z3nZ!bZEcmTA=Hy*QG*nNmJ z-%Fz+5sF_LVP$j{?!XJ!Af0J{*%Ea*LNNC5ck=zR|8x(kDD@fgDLg zm9|2;usZFfQqLgtdW?p-Q;1v=Yet>+$T!N%?Qb}6);@;;to2l@Pd;+ literal 0 HcmV?d00001 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 index 0000000000..30361f88d6 --- /dev/null +++ b/Resources/Textures/Structures/Machines/ore_processor_industrial.rsi/meta.json @@ -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 index 0000000000000000000000000000000000000000..eebe7218534173cd11b6bee74dde877a871a381f GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Gd*1#Ln2z= zUNYo5_ie4u z6{gwI2lH&04?JU=Jv(ff_~rwrY&T{fUefS#VGTd~-+rGj@&&0^&+Pl#(9!Yd4tME7 WwJXtU-#P&u$>8bg=d#Wzp$PyrGg|Ec literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..3b3190d1e7c10a80a7f58e28323b87ac6f8617a3 GIT binary patch literal 167 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 literal 0 HcmV?d00001 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 index 0000000000..b0326326f9 --- /dev/null +++ b/Resources/Textures/Structures/Machines/protolathe_hypercon.rsi/meta.json @@ -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 index 0000000000000000000000000000000000000000..1d2d0020325fb63d6c784c4c5dcc16ec93f6ab45 GIT binary patch literal 761 zcmVEX>4Tx04R}tkv&MmKpe$iQ$>-gh#jOjWT;LSL`5963Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4P#IXWr2NQwVT3N2zhIPS;0dyl(!fKV?p&FUBjG~G5+ ziMW`_u8Li+2tmLABIuKuWz0!Z629Z>9s$1I#dwzgxj#p*nzI-X5Q%4*VcNtS#M7I$ z!FiuJ%!;x~d`>)O(glehxvqHp#<}3Kz%#>UIyFxmCKd~Ath6yJni}yGaa7fG$`>*o ztDLtuYvn3y-jlyDl+#z1xlVH!2`pj>5=1DdqJ%PR#Aww?v5=zuxQ{>L`XzEH8?JJM&@_EV0003nNklqusNpzuO6y7KxAGQ0|NsCgXfX=3~N_0G6aYHXV|_#kYV|q z2@L5buNXdkXv3K%g#>FWPEBU4uOA^ r8ZZh*!6+C7qhJ(_f>AIE1{weW&AnJ}vUs!M00000NkvXXu0mjfeF#-7 literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..dd7d0d86435414a2e2c43ec95391faf393b30f05 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}EuJopArY-_ zFKy&)P!M3fu)fe*y+D#%d_xf%ck)YyjP+}8CzLt}a5cLL|Ib#4VPdao=;-Kpk$O{j z_O;NJ&aZv#=bk$~KjT4H2J`J3Sqv|(9lYcAENHj0p!S>FObh{=jk1lVNBO*1nY`~e z>wi_p;=}AW9{fyRby?iw!krI{W)=TDTvqZ;i83p{>saXubPt24tDnm{r-UW|lVeS4 literal 0 HcmV?d00001 -- 2.51.2