Mineral Scanner (#31390)

* Mineral Scanner

* doink

* review

* sunday funday

* review and fix bugs i think?

* Update MiningOverlay.cs
This commit is contained in:
Nemanja
2024-09-06 10:05:53 -04:00
committed by GitHub
parent 582a644c24
commit 8599251825
25 changed files with 568 additions and 23 deletions

View File

@@ -0,0 +1,96 @@
using System.Numerics;
using Content.Shared.Mining.Components;
using Robust.Client.GameObjects;
using Robust.Client.Graphics;
using Robust.Client.Player;
using Robust.Shared.Enums;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Content.Client.Mining;
public sealed class MiningOverlay : Overlay
{
[Dependency] private readonly IEntityManager _entityManager = default!;
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly IPlayerManager _player = default!;
private readonly EntityLookupSystem _lookup;
private readonly SpriteSystem _sprite;
private readonly TransformSystem _xform;
private readonly EntityQuery<SpriteComponent> _spriteQuery;
private readonly EntityQuery<TransformComponent> _xformQuery;
public override OverlaySpace Space => OverlaySpace.WorldSpace;
public override bool RequestScreenTexture => false;
private readonly HashSet<Entity<MiningScannerViewableComponent>> _viewableEnts = new();
public MiningOverlay()
{
IoCManager.InjectDependencies(this);
_lookup = _entityManager.System<EntityLookupSystem>();
_sprite = _entityManager.System<SpriteSystem>();
_xform = _entityManager.System<TransformSystem>();
_spriteQuery = _entityManager.GetEntityQuery<SpriteComponent>();
_xformQuery = _entityManager.GetEntityQuery<TransformComponent>();
}
protected override void Draw(in OverlayDrawArgs args)
{
var handle = args.WorldHandle;
if (_player.LocalEntity is not { } localEntity ||
!_entityManager.TryGetComponent<MiningScannerViewerComponent>(localEntity, out var viewerComp))
return;
if (viewerComp.LastPingLocation == null)
return;
var scaleMatrix = Matrix3Helpers.CreateScale(Vector2.One);
_viewableEnts.Clear();
_lookup.GetEntitiesInRange(viewerComp.LastPingLocation.Value, viewerComp.ViewRange, _viewableEnts);
foreach (var ore in _viewableEnts)
{
if (!_xformQuery.TryComp(ore, out var xform) ||
!_spriteQuery.TryComp(ore, out var sprite))
continue;
if (xform.MapID != args.MapId || !sprite.Visible)
continue;
if (!sprite.LayerMapTryGet(MiningScannerVisualLayers.Overlay, out var idx))
continue;
var layer = sprite[idx];
if (layer.ActualRsi?.Path == null || layer.RsiState.Name == null)
continue;
var gridRot = xform.GridUid == null ? 0 : _xformQuery.CompOrNull(xform.GridUid.Value)?.LocalRotation ?? 0;
var rotationMatrix = Matrix3Helpers.CreateRotation(gridRot);
var worldMatrix = Matrix3Helpers.CreateTranslation(_xform.GetWorldPosition(xform));
var scaledWorld = Matrix3x2.Multiply(scaleMatrix, worldMatrix);
var matty = Matrix3x2.Multiply(rotationMatrix, scaledWorld);
handle.SetTransform(matty);
var spriteSpec = new SpriteSpecifier.Rsi(layer.ActualRsi.Path, layer.RsiState.Name);
var texture = _sprite.GetFrame(spriteSpec, TimeSpan.FromSeconds(layer.AnimationTime));
var animTime = (viewerComp.NextPingTime - _timing.CurTime).TotalSeconds;
var alpha = animTime < viewerComp.AnimationDuration
? 0
: (float) Math.Clamp((animTime - viewerComp.AnimationDuration) / viewerComp.AnimationDuration, 0f, 1f);
var color = Color.White.WithAlpha(alpha);
handle.DrawTexture(texture, -(Vector2) texture.Size / 2f / EyeManager.PixelsPerMeter, layer.Rotation, modulate: color);
}
handle.SetTransform(Matrix3x2.Identity);
}
}

View File

@@ -0,0 +1,54 @@
using Content.Shared.Mining.Components;
using Robust.Client.Graphics;
using Robust.Client.Player;
using Robust.Shared.Player;
namespace Content.Client.Mining;
/// <summary>
/// This handles the lifetime of the <see cref="MiningOverlay"/> for a given entity.
/// </summary>
public sealed class MiningOverlaySystem : EntitySystem
{
[Dependency] private readonly IPlayerManager _player = default!;
[Dependency] private readonly IOverlayManager _overlayMan = default!;
private MiningOverlay _overlay = default!;
/// <inheritdoc/>
public override void Initialize()
{
SubscribeLocalEvent<MiningScannerViewerComponent, ComponentInit>(OnInit);
SubscribeLocalEvent<MiningScannerViewerComponent, ComponentShutdown>(OnShutdown);
SubscribeLocalEvent<MiningScannerViewerComponent, LocalPlayerAttachedEvent>(OnPlayerAttached);
SubscribeLocalEvent<MiningScannerViewerComponent, LocalPlayerDetachedEvent>(OnPlayerDetached);
_overlay = new();
}
private void OnPlayerAttached(Entity<MiningScannerViewerComponent> ent, ref LocalPlayerAttachedEvent args)
{
_overlayMan.AddOverlay(_overlay);
}
private void OnPlayerDetached(Entity<MiningScannerViewerComponent> ent, ref LocalPlayerDetachedEvent args)
{
_overlayMan.RemoveOverlay(_overlay);
}
private void OnInit(Entity<MiningScannerViewerComponent> ent, ref ComponentInit args)
{
if (_player.LocalEntity == ent)
{
_overlayMan.AddOverlay(_overlay);
}
}
private void OnShutdown(Entity<MiningScannerViewerComponent> ent, ref ComponentShutdown args)
{
if (_player.LocalEntity == ent)
{
_overlayMan.RemoveOverlay(_overlay);
}
}
}

View File

@@ -1,6 +0,0 @@
namespace Content.Client.Mining;
public sealed class OreVeinVisualsComponent
{
}

View File

@@ -1,6 +1,6 @@
using Content.Server.Mining.Components;
using Content.Shared.Destructible; using Content.Shared.Destructible;
using Content.Shared.Mining; using Content.Shared.Mining;
using Content.Shared.Mining.Components;
using Content.Shared.Random; using Content.Shared.Random;
using Content.Shared.Random.Helpers; using Content.Shared.Random.Helpers;
using Robust.Shared.Prototypes; using Robust.Shared.Prototypes;

View File

@@ -282,7 +282,7 @@ public sealed class ItemToggleSystem : EntitySystem
if (comp.ActiveSound != null && comp.PlayingStream == null) if (comp.ActiveSound != null && comp.PlayingStream == null)
{ {
var loop = AudioParams.Default.WithLoop(true); var loop = comp.ActiveSound.Params.WithLoop(true);
var stream = args.Predicted var stream = args.Predicted
? _audio.PlayPredicted(comp.ActiveSound, uid, args.User, loop) ? _audio.PlayPredicted(comp.ActiveSound, uid, args.User, loop)
: _audio.PlayPvs(comp.ActiveSound, uid, loop); : _audio.PlayPvs(comp.ActiveSound, uid, loop);

View File

@@ -0,0 +1,13 @@
using Robust.Shared.GameStates;
namespace Content.Shared.Mining.Components;
/// <summary>
/// This is a component that, when held in the inventory or pocket of a player, gives the the MiningOverlay.
/// </summary>
[RegisterComponent, NetworkedComponent, Access(typeof(MiningScannerSystem))]
public sealed partial class MiningScannerComponent : Component
{
[DataField]
public float Range = 5;
}

View File

@@ -0,0 +1,13 @@
using Robust.Shared.GameStates;
using Robust.Shared.Serialization;
namespace Content.Shared.Mining.Components;
[RegisterComponent, NetworkedComponent, Access(typeof(MiningScannerSystem))]
public sealed partial class MiningScannerViewableComponent : Component;
[Serializable, NetSerializable]
public enum MiningScannerVisualLayers : byte
{
Overlay
}

View File

@@ -0,0 +1,36 @@
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Map;
namespace Content.Shared.Mining.Components;
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, AutoGenerateComponentPause, Access(typeof(MiningScannerSystem))]
public sealed partial class MiningScannerViewerComponent : Component
{
[DataField, ViewVariables(VVAccess.ReadOnly), AutoNetworkedField]
public float ViewRange;
[DataField, AutoNetworkedField]
public float AnimationDuration = 1.5f;
[DataField, AutoNetworkedField]
public TimeSpan PingDelay = TimeSpan.FromSeconds(5);
[DataField, AutoNetworkedField, AutoPausedField]
public TimeSpan NextPingTime = TimeSpan.MaxValue;
[DataField]
public EntityCoordinates? LastPingLocation;
[DataField, AutoNetworkedField]
public SoundSpecifier? PingSound = new SoundPathSpecifier("/Audio/Machines/sonar-ping.ogg")
{
Params = new AudioParams
{
Volume = -3,
}
};
[DataField]
public bool QueueRemoval;
}

View File

@@ -1,8 +1,7 @@
using Content.Shared.Mining;
using Content.Shared.Random; using Content.Shared.Random;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Prototypes;
namespace Content.Server.Mining.Components; namespace Content.Shared.Mining.Components;
/// <summary> /// <summary>
/// Defines an entity that will drop a random ore after being destroyed. /// Defines an entity that will drop a random ore after being destroyed.
@@ -14,19 +13,19 @@ public sealed partial class OreVeinComponent : Component
/// How often an entity will be seeded with ore. Note: the amount of ore /// How often an entity will be seeded with ore. Note: the amount of ore
/// that is dropped is dependent on the ore prototype. <see crefalso="OrePrototype"/> /// that is dropped is dependent on the ore prototype. <see crefalso="OrePrototype"/>
/// </summary> /// </summary>
[DataField("oreChance")] [DataField]
public float OreChance = 0.1f; public float OreChance = 0.1f;
/// <summary> /// <summary>
/// The weighted random prototype used for determining what ore will be dropped. /// The weighted random prototype used for determining what ore will be dropped.
/// </summary> /// </summary>
[DataField("oreRarityPrototypeId", customTypeSerializer: typeof(PrototypeIdSerializer<WeightedRandomOrePrototype>))] [DataField]
public string? OreRarityPrototypeId; public ProtoId<WeightedRandomOrePrototype>? OreRarityPrototypeId;
/// <summary> /// <summary>
/// The ore that this entity holds. /// The ore that this entity holds.
/// If set in the prototype, it will not be overriden. /// If set in the prototype, it will not be overriden.
/// </summary> /// </summary>
[DataField("currentOre", customTypeSerializer: typeof(PrototypeIdSerializer<OrePrototype>)), ViewVariables(VVAccess.ReadWrite)] [DataField]
public string? CurrentOre; public ProtoId<OrePrototype>? CurrentOre;
} }

View File

@@ -0,0 +1,101 @@
using Content.Shared.Inventory;
using Content.Shared.Item.ItemToggle.Components;
using Content.Shared.Mining.Components;
using Robust.Shared.Audio.Systems;
using Robust.Shared.Containers;
using Robust.Shared.Network;
using Robust.Shared.Timing;
namespace Content.Shared.Mining;
public sealed class MiningScannerSystem : EntitySystem
{
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly INetManager _net = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly SharedContainerSystem _container = default!;
[Dependency] private readonly InventorySystem _inventory = default!;
/// <inheritdoc/>
public override void Initialize()
{
SubscribeLocalEvent<MiningScannerComponent, EntGotInsertedIntoContainerMessage>(OnInserted);
SubscribeLocalEvent<MiningScannerComponent, EntGotRemovedFromContainerMessage>(OnRemoved);
SubscribeLocalEvent<MiningScannerComponent, ItemToggledEvent>(OnToggled);
}
private void OnInserted(Entity<MiningScannerComponent> ent, ref EntGotInsertedIntoContainerMessage args)
{
UpdateViewerComponent(args.Container.Owner);
}
private void OnRemoved(Entity<MiningScannerComponent> ent, ref EntGotRemovedFromContainerMessage args)
{
UpdateViewerComponent(args.Container.Owner);
}
private void OnToggled(Entity<MiningScannerComponent> ent, ref ItemToggledEvent args)
{
if (_container.TryGetContainingContainer((ent.Owner, null, null), out var container))
UpdateViewerComponent(container.Owner);
}
public void UpdateViewerComponent(EntityUid uid)
{
Entity<MiningScannerComponent>? scannerEnt = null;
var ents = _inventory.GetHandOrInventoryEntities(uid);
foreach (var ent in ents)
{
if (!TryComp<MiningScannerComponent>(ent, out var scannerComponent) ||
!TryComp<ItemToggleComponent>(ent, out var toggle))
continue;
if (!toggle.Activated)
continue;
if (scannerEnt == null || scannerComponent.Range > scannerEnt.Value.Comp.Range)
scannerEnt = (ent, scannerComponent);
}
if (_net.IsServer)
{
if (scannerEnt == null)
{
if (TryComp<MiningScannerViewerComponent>(uid, out var viewer))
viewer.QueueRemoval = true;
}
else
{
var viewer = EnsureComp<MiningScannerViewerComponent>(uid);
viewer.ViewRange = scannerEnt.Value.Comp.Range;
viewer.QueueRemoval = false;
viewer.NextPingTime = _timing.CurTime + viewer.PingDelay;
Dirty(uid, viewer);
}
}
}
public override void Update(float frameTime)
{
base.Update(frameTime);
var query = EntityQueryEnumerator<MiningScannerViewerComponent, TransformComponent>();
while (query.MoveNext(out var uid, out var viewer, out var xform))
{
if (viewer.QueueRemoval)
{
RemCompDeferred(uid, viewer);
continue;
}
if (_timing.CurTime < viewer.NextPingTime)
continue;
viewer.NextPingTime = _timing.CurTime + viewer.PingDelay;
viewer.LastPingLocation = xform.Coordinates;
if (_net.IsClient && _timing.IsFirstTimePredicted)
_audio.PlayEntity(viewer.PingSound, uid, uid);
}
}
}

View File

@@ -1,26 +1,27 @@
using Robust.Shared.Prototypes; using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Utility;
namespace Content.Shared.Mining; namespace Content.Shared.Mining;
/// <summary> /// <summary>
/// This is a prototype for defining ores that generate in rock /// This is a prototype for defining ores that generate in rock
/// </summary> /// </summary>
[Prototype("ore")] [Prototype]
public sealed partial class OrePrototype : IPrototype public sealed partial class OrePrototype : IPrototype
{ {
/// <inheritdoc/> /// <inheritdoc/>
[IdDataField] [IdDataField]
public string ID { get; private set; } = default!; public string ID { get; private set; } = default!;
[DataField("oreEntity", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))] [DataField]
public string? OreEntity; public EntProtoId? OreEntity;
[DataField("minOreYield")] [DataField]
public int MinOreYield = 1; public int MinOreYield = 1;
[DataField("maxOreYield")] [DataField]
public int MaxOreYield = 1; public int MaxOreYield = 1;
//TODO: add sprites for ores for things like mining analyzer [DataField]
public SpriteSpecifier? OreSprite;
} }

View File

@@ -143,6 +143,11 @@
copyright: "/tg/station" copyright: "/tg/station"
source: "https://github.com/tgstation/tgstation/blob/3eeba3899f22638595333c63b7b7433001f91bb2/sound/machines/eject.ogg" source: "https://github.com/tgstation/tgstation/blob/3eeba3899f22638595333c63b7b7433001f91bb2/sound/machines/eject.ogg"
- files: ["sonar-ping.ogg"]
license: "CC-BY-SA-3.0"
copyright: "/tg/station"
source: "https://github.com/tgstation/tgstation/blob/002051a3d5e4a35af504e52c0990bf4e22a908dc/sound/machines/sonar-ping.ogg"
- files: ["scanning.ogg"] - files: ["scanning.ogg"]
license: "CC0-1.0" license: "CC0-1.0"
copyright: "Samuel Gremaud on freesound.org" copyright: "Samuel Gremaud on freesound.org"

Binary file not shown.

View File

@@ -228,6 +228,8 @@
- id: ClothingEyesGlassesMeson - id: ClothingEyesGlassesMeson
- id: ClothingBeltSalvageWebbing - id: ClothingBeltSalvageWebbing
- id: SeismicCharge - id: SeismicCharge
- id: MineralScanner
weight: 0.5
- id: WeaponCrusher - id: WeaponCrusher
weight: 0.5 weight: 0.5
- !type:GroupSelector - !type:GroupSelector
@@ -239,6 +241,7 @@
id: SalvageEquipmentLegendary id: SalvageEquipmentLegendary
table: !type:GroupSelector table: !type:GroupSelector
children: children:
- id: AdvancedMineralScanner
- id: BlueprintFulton - id: BlueprintFulton
- id: BlueprintSeismicCharge - id: BlueprintSeismicCharge
- id: WeaponCrusherGlaive - id: WeaponCrusherGlaive

View File

@@ -206,6 +206,7 @@
items: items:
- MiningDrill - MiningDrill
- Shovel - Shovel
- MineralScannerUnpowered
- OreBag - OreBag
- Crowbar - Crowbar
- RadioHandheld - RadioHandheld

View File

@@ -0,0 +1,91 @@
- type: entity
id: MineralScannerUnpowered
parent: BaseItem
name: mineral scanner
description: A scanner that checks surrounding rock for useful minerals. It must be in your hand or pocket to work.
suffix: Unpowered
components:
- type: Sprite
sprite: Objects/Specific/Mining/mineral_scanner.rsi
layers:
- state: icon
- state: icon-o
shader: unshaded
visible: false
map: ["enum.ToggleVisuals.Layer"]
- type: ItemToggleActiveSound
activeSound:
path: /Audio/Ambience/Objects/light_hum.ogg
params:
volume: -10
maxDistance: 1
- type: Appearance
- type: GenericVisualizer
visuals:
enum.ToggleVisuals.Toggled:
enum.ToggleVisuals.Layer:
True: { visible: true }
False: { visible: false }
- type: ItemToggle
soundActivate:
path: /Audio/Weapons/click.ogg
params:
maxDistance: 1
- type: MiningScanner
- type: entity
id: MineralScanner
parent: [ MineralScannerUnpowered, PowerCellSlotMediumItem ]
suffix: Powered
components:
- type: ToggleCellDraw
- type: PowerCellDraw
drawRate: 2.4 # ~5 minutes on a medium power cell.
useRate: 0
- type: entity
id: MineralScannerEmpty
parent: MineralScanner
suffix: Empty
components:
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default
- type: entity
id: AdvancedMineralScannerUnpowered
parent: MineralScannerUnpowered
name: advanced mineral scanner
description: A scanner that checks surrounding rock for useful minerals. It must be in your hand or pocket to work. This one has an extended range.
suffix: Unpowered
components:
- type: Sprite
layers:
- state: adv
- state: adv-o
shader: unshaded
visible: false
map: ["enum.ToggleVisuals.Layer"]
- type: MiningScanner
range: 10
- type: entity
id: AdvancedMineralScanner
parent: [ AdvancedMineralScannerUnpowered, PowerCellSlotMediumItem ]
suffix: Powered
components:
- type: ToggleCellDraw
- type: PowerCellDraw
drawRate: 1.2 # ~10 minutes on a medium power cell.
useRate: 0
- type: entity
id: AdvancedMineralScannerEmpty
parent: AdvancedMineralScanner
suffix: Empty
components:
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default

View File

@@ -323,6 +323,8 @@
- PowerCellHigh - PowerCellHigh
- WeaponPistolCHIMP - WeaponPistolCHIMP
- ClothingMaskWeldingGas - ClothingMaskWeldingGas
- MineralScannerEmpty
- AdvancedMineralScannerEmpty
- WeaponGauntletGorilla - WeaponGauntletGorilla
- SynthesizerInstrument - SynthesizerInstrument
- ClothingShoesBootsMagSci - ClothingShoesBootsMagSci

View File

@@ -31,6 +31,7 @@
state: rock_asteroid_north state: rock_asteroid_north
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- type: MiningScannerViewable
- type: Damageable - type: Damageable
damageContainer: StructuralInorganic damageContainer: StructuralInorganic
damageModifierSet: Rock damageModifierSet: Rock
@@ -70,6 +71,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- state: rock_coal - state: rock_coal
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: AsteroidRockGold id: AsteroidRockGold
@@ -92,6 +94,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- state: rock_gold - state: rock_gold
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: AsteroidRockDiamond id: AsteroidRockDiamond
@@ -114,6 +117,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- state: rock_diamond - state: rock_diamond
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: AsteroidRockPlasma id: AsteroidRockPlasma
@@ -136,6 +140,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- state: rock_phoron - state: rock_phoron
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: AsteroidRockQuartz id: AsteroidRockQuartz
@@ -158,6 +163,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- state: rock_quartz - state: rock_quartz
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: AsteroidRockQuartzCrab id: AsteroidRockQuartzCrab
@@ -180,6 +186,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- state: rock_quartz - state: rock_quartz
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: AsteroidRockSilver id: AsteroidRockSilver
@@ -202,6 +209,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- state: rock_silver - state: rock_silver
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: AsteroidRockSilverCrab id: AsteroidRockSilverCrab
@@ -234,6 +242,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- state: rock_tin - state: rock_tin
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: AsteroidRockTinCrab id: AsteroidRockTinCrab
@@ -265,6 +274,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- state: rock_uranium - state: rock_uranium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: AsteroidRockUraniumCrab id: AsteroidRockUraniumCrab
@@ -296,6 +306,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- state: rock_bananium - state: rock_bananium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: AsteroidRockSalt id: AsteroidRockSalt
@@ -318,6 +329,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- state: rock_salt - state: rock_salt
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: AsteroidRockArtifactFragment id: AsteroidRockArtifactFragment
@@ -340,6 +352,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west state: rock_asteroid_west
- state: rock_artifact_fragment - state: rock_artifact_fragment
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: AsteroidRockMining id: AsteroidRockMining
@@ -412,6 +425,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: ironrock_west state: ironrock_west
- state: rock_coal - state: rock_coal
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: IronRockGold id: IronRockGold
@@ -434,6 +448,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: ironrock_west state: ironrock_west
- state: rock_gold - state: rock_gold
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: IronRockPlasma id: IronRockPlasma
@@ -456,6 +471,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: ironrock_west state: ironrock_west
- state: rock_phoron - state: rock_phoron
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: IronRockQuartz id: IronRockQuartz
@@ -478,6 +494,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: ironrock_west state: ironrock_west
- state: rock_quartz - state: rock_quartz
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: IronRockSilver id: IronRockSilver
@@ -500,6 +517,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: ironrock_west state: ironrock_west
- state: rock_silver - state: rock_silver
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: IronRockIron id: IronRockIron
@@ -522,6 +540,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: ironrock_west state: ironrock_west
- state: rock_tin - state: rock_tin
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: IronRockUranium id: IronRockUranium
@@ -544,6 +563,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: ironrock_west state: ironrock_west
- state: rock_uranium - state: rock_uranium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: IronRockBananium id: IronRockBananium
@@ -566,6 +586,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: ironrock_west state: ironrock_west
- state: rock_bananium - state: rock_bananium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: IronRockSalt id: IronRockSalt
@@ -588,6 +609,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: ironrock_west state: ironrock_west
- state: rock_salt - state: rock_salt
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: IronRockArtifactFragment id: IronRockArtifactFragment
@@ -610,6 +632,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: ironrock_west state: ironrock_west
- state: rock_artifact_fragment - state: rock_artifact_fragment
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: IronRockDiamond id: IronRockDiamond
@@ -632,6 +655,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: ironrock_west state: ironrock_west
- state: rock_diamond - state: rock_diamond
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
# Rocks and ore veins # Rocks and ore veins
- type: entity - type: entity
@@ -664,6 +688,7 @@
- type: Icon - type: Icon
sprite: Structures/Walls/rock.rsi sprite: Structures/Walls/rock.rsi
state: rock state: rock
- type: MiningScannerViewable
- type: SmoothEdge - type: SmoothEdge
- type: Sprite - type: Sprite
sprite: Structures/Walls/rock.rsi sprite: Structures/Walls/rock.rsi
@@ -707,6 +732,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_west state: rock_west
- state: rock_coal - state: rock_coal
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockGold id: WallRockGold
@@ -736,6 +762,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_west state: rock_west
- state: rock_gold - state: rock_gold
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockDiamond id: WallRockDiamond
@@ -758,6 +785,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_west state: rock_west
- state: rock_diamond - state: rock_diamond
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockPlasma id: WallRockPlasma
@@ -787,6 +815,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_west state: rock_west
- state: rock_phoron - state: rock_phoron
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockQuartz id: WallRockQuartz
@@ -816,6 +845,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_west state: rock_west
- state: rock_quartz - state: rock_quartz
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSilver id: WallRockSilver
@@ -845,6 +875,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_west state: rock_west
- state: rock_silver - state: rock_silver
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
# Yes I know it drops steel but we may get smelting at some point # Yes I know it drops steel but we may get smelting at some point
- type: entity - type: entity
@@ -875,6 +906,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_west state: rock_west
- state: rock_tin - state: rock_tin
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockUranium id: WallRockUranium
@@ -904,6 +936,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_west state: rock_west
- state: rock_uranium - state: rock_uranium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
@@ -934,6 +967,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_west state: rock_west
- state: rock_bananium - state: rock_bananium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockArtifactFragment id: WallRockArtifactFragment
@@ -963,6 +997,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_west state: rock_west
- state: rock_artifact_fragment - state: rock_artifact_fragment
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSalt id: WallRockSalt
@@ -992,6 +1027,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_west state: rock_west
- state: rock_salt - state: rock_salt
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
# Basalt variants # Basalt variants
- type: entity - type: entity
@@ -1036,6 +1072,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west state: rock_wall_west
- state: rock_coal - state: rock_coal
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockBasaltGold id: WallRockBasaltGold
@@ -1058,6 +1095,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west state: rock_wall_west
- state: rock_gold - state: rock_gold
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockBasaltDiamond id: WallRockBasaltDiamond
@@ -1080,6 +1118,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west state: rock_wall_west
- state: rock_diamond - state: rock_diamond
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockBasaltPlasma id: WallRockBasaltPlasma
@@ -1102,6 +1141,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west state: rock_wall_west
- state: rock_phoron - state: rock_phoron
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockBasaltQuartz id: WallRockBasaltQuartz
@@ -1124,6 +1164,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west state: rock_wall_west
- state: rock_quartz - state: rock_quartz
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockBasaltSilver id: WallRockBasaltSilver
@@ -1146,6 +1187,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west state: rock_wall_west
- state: rock_silver - state: rock_silver
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockBasaltTin id: WallRockBasaltTin
@@ -1168,6 +1210,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west state: rock_wall_west
- state: rock_tin - state: rock_tin
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockBasaltUranium id: WallRockBasaltUranium
@@ -1190,6 +1233,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west state: rock_wall_west
- state: rock_uranium - state: rock_uranium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
@@ -1213,6 +1257,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west state: rock_wall_west
- state: rock_bananium - state: rock_bananium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockBasaltArtifactFragment id: WallRockBasaltArtifactFragment
@@ -1235,6 +1280,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west state: rock_wall_west
- state: rock_artifact_fragment - state: rock_artifact_fragment
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockBasaltSalt id: WallRockBasaltSalt
@@ -1257,6 +1303,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west state: rock_wall_west
- state: rock_salt - state: rock_salt
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
# Snow variants # Snow variants
- type: entity - type: entity
@@ -1301,6 +1348,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_snow_west state: rock_snow_west
- state: rock_coal - state: rock_coal
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSnowGold id: WallRockSnowGold
@@ -1323,6 +1371,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_snow_west state: rock_snow_west
- state: rock_gold - state: rock_gold
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSnowDiamond id: WallRockSnowDiamond
@@ -1345,6 +1394,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_snow_west state: rock_snow_west
- state: rock_diamond - state: rock_diamond
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSnowPlasma id: WallRockSnowPlasma
@@ -1367,6 +1417,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_snow_west state: rock_snow_west
- state: rock_phoron - state: rock_phoron
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSnowQuartz id: WallRockSnowQuartz
@@ -1389,6 +1440,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_snow_west state: rock_snow_west
- state: rock_quartz - state: rock_quartz
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSnowSilver id: WallRockSnowSilver
@@ -1411,6 +1463,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_snow_west state: rock_snow_west
- state: rock_silver - state: rock_silver
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSnowTin id: WallRockSnowTin
@@ -1433,6 +1486,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_snow_west state: rock_snow_west
- state: rock_tin - state: rock_tin
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSnowUranium id: WallRockSnowUranium
@@ -1455,6 +1509,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_snow_west state: rock_snow_west
- state: rock_uranium - state: rock_uranium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
@@ -1478,6 +1533,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_snow_west state: rock_snow_west
- state: rock_bananium - state: rock_bananium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSnowArtifactFragment id: WallRockSnowArtifactFragment
@@ -1500,6 +1556,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_snow_west state: rock_snow_west
- state: rock_artifact_fragment - state: rock_artifact_fragment
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSnowSalt id: WallRockSnowSalt
@@ -1522,6 +1579,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_snow_west state: rock_snow_west
- state: rock_salt - state: rock_salt
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
# Sand variants # Sand variants
- type: entity - type: entity
@@ -1566,6 +1624,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_sand_west state: rock_sand_west
- state: rock_coal - state: rock_coal
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSandGold id: WallRockSandGold
@@ -1588,6 +1647,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_sand_west state: rock_sand_west
- state: rock_gold - state: rock_gold
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSandDiamond id: WallRockSandDiamond
@@ -1610,6 +1670,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_sand_west state: rock_sand_west
- state: rock_diamond - state: rock_diamond
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSandPlasma id: WallRockSandPlasma
@@ -1632,6 +1693,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_sand_west state: rock_sand_west
- state: rock_phoron - state: rock_phoron
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSandQuartz id: WallRockSandQuartz
@@ -1654,6 +1716,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_sand_west state: rock_sand_west
- state: rock_quartz - state: rock_quartz
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSandSilver id: WallRockSandSilver
@@ -1676,6 +1739,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_sand_west state: rock_sand_west
- state: rock_silver - state: rock_silver
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSandTin id: WallRockSandTin
@@ -1698,6 +1762,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_sand_west state: rock_sand_west
- state: rock_tin - state: rock_tin
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSandUranium id: WallRockSandUranium
@@ -1720,6 +1785,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_sand_west state: rock_sand_west
- state: rock_uranium - state: rock_uranium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSandBananium id: WallRockSandBananium
@@ -1742,6 +1808,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_sand_west state: rock_sand_west
- state: rock_bananium - state: rock_bananium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSandArtifactFragment id: WallRockSandArtifactFragment
@@ -1764,6 +1831,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_sand_west state: rock_sand_west
- state: rock_artifact_fragment - state: rock_artifact_fragment
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockSandSalt id: WallRockSandSalt
@@ -1786,6 +1854,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_sand_west state: rock_sand_west
- state: rock_salt - state: rock_salt
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
# Chromite variants # Chromite variants
- type: entity - type: entity
@@ -1830,6 +1899,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west state: rock_chromite_west
- state: rock_coal - state: rock_coal
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockChromiteGold id: WallRockChromiteGold
@@ -1852,6 +1922,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west state: rock_chromite_west
- state: rock_gold - state: rock_gold
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockChromiteDiamond id: WallRockChromiteDiamond
@@ -1874,6 +1945,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west state: rock_chromite_west
- state: rock_diamond - state: rock_diamond
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockChromitePlasma id: WallRockChromitePlasma
@@ -1896,6 +1968,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west state: rock_chromite_west
- state: rock_phoron - state: rock_phoron
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockChromiteQuartz id: WallRockChromiteQuartz
@@ -1918,6 +1991,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west state: rock_chromite_west
- state: rock_quartz - state: rock_quartz
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockChromiteSilver id: WallRockChromiteSilver
@@ -1940,6 +2014,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west state: rock_chromite_west
- state: rock_silver - state: rock_silver
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockChromiteTin id: WallRockChromiteTin
@@ -1962,6 +2037,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west state: rock_chromite_west
- state: rock_tin - state: rock_tin
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockChromiteUranium id: WallRockChromiteUranium
@@ -1984,6 +2060,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west state: rock_chromite_west
- state: rock_uranium - state: rock_uranium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
@@ -2007,6 +2084,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west state: rock_chromite_west
- state: rock_bananium - state: rock_bananium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockChromiteArtifactFragment id: WallRockChromiteArtifactFragment
@@ -2029,6 +2107,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west state: rock_chromite_west
- state: rock_artifact_fragment - state: rock_artifact_fragment
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockChromiteSalt id: WallRockChromiteSalt
@@ -2051,6 +2130,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west state: rock_chromite_west
- state: rock_salt - state: rock_salt
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
# Andesite variants # Andesite variants
- type: entity - type: entity
@@ -2095,6 +2175,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west state: rock_andesite_west
- state: rock_coal - state: rock_coal
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockAndesiteGold id: WallRockAndesiteGold
@@ -2117,6 +2198,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west state: rock_andesite_west
- state: rock_gold - state: rock_gold
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockAndesiteDiamond id: WallRockAndesiteDiamond
@@ -2139,6 +2221,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west state: rock_andesite_west
- state: rock_diamond - state: rock_diamond
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockAndesitePlasma id: WallRockAndesitePlasma
@@ -2161,6 +2244,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west state: rock_andesite_west
- state: rock_phoron - state: rock_phoron
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockAndesiteQuartz id: WallRockAndesiteQuartz
@@ -2183,6 +2267,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west state: rock_andesite_west
- state: rock_quartz - state: rock_quartz
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockAndesiteSilver id: WallRockAndesiteSilver
@@ -2205,6 +2290,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west state: rock_andesite_west
- state: rock_silver - state: rock_silver
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockAndesiteTin id: WallRockAndesiteTin
@@ -2227,6 +2313,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west state: rock_andesite_west
- state: rock_tin - state: rock_tin
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockAndesiteUranium id: WallRockAndesiteUranium
@@ -2249,6 +2336,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west state: rock_andesite_west
- state: rock_uranium - state: rock_uranium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
@@ -2272,6 +2360,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west state: rock_andesite_west
- state: rock_bananium - state: rock_bananium
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockAndesiteArtifactFragment id: WallRockAndesiteArtifactFragment
@@ -2294,6 +2383,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west state: rock_andesite_west
- state: rock_artifact_fragment - state: rock_artifact_fragment
map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockAndesiteSalt id: WallRockAndesiteSalt
@@ -2316,3 +2406,4 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west state: rock_andesite_west
- state: rock_salt - state: rock_salt
map: [ "enum.MiningScannerVisualLayers.Overlay" ]

View File

@@ -1,3 +1,23 @@
- type: latheRecipe
id: MineralScannerEmpty
result: MineralScannerEmpty
completetime: 3
materials:
Steel: 1000
Glass: 300
Plastic: 300
Gold: 500
- type: latheRecipe
id: AdvancedMineralScannerEmpty
result: AdvancedMineralScannerEmpty
completetime: 1
materials:
Steel: 1000
Glass: 300
Plastic: 300
Uranium: 500
- type: latheRecipe - type: latheRecipe
id: Fulton id: Fulton
result: Fulton1 result: Fulton1

View File

@@ -11,6 +11,7 @@
cost: 7500 cost: 7500
recipeUnlocks: recipeUnlocks:
- MiningDrill - MiningDrill
- MineralScannerEmpty
- BorgModuleMining - BorgModuleMining
- BorgModuleGrapplingGun - BorgModuleGrapplingGun
- OreProcessorIndustrialMachineCircuitboard - OreProcessorIndustrialMachineCircuitboard
@@ -179,6 +180,7 @@
recipeUnlocks: recipeUnlocks:
- OreBagOfHolding - OreBagOfHolding
- MiningDrillDiamond - MiningDrillDiamond
- AdvancedMineralScannerEmpty
# Tier 3 # Tier 3

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 875 B

View File

@@ -0,0 +1,23 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from vgstation at https://github.com/vgstation-coders/vgstation13/commit/125c975f1b3bf9826b37029e9ab5a5f89e975a7e. adv and adv-o by EmoGarbage404",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "icon"
},
{
"name": "icon-o"
},
{
"name": "adv"
},
{
"name": "adv-o"
}
]
}