Hyper convection lathes and industrial ore processor (#23202)
* Hyper-convection lathes and industrial ore processor * balance * gold... why not? * review --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 711 B |
@@ -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
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 470 B |
|
After Width: | Height: | Size: 166 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 903 B |
|
After Width: | Height: | Size: 2.9 KiB |
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 223 B |
|
After Width: | Height: | Size: 167 B |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 652 B |
@@ -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
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 761 B |
|
After Width: | Height: | Size: 202 B |