Sprite fixes (#2213)

Test still needs more checks that filepaths are valid but I think I got most of the current issues.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
This commit is contained in:
metalgearsloth
2020-10-10 23:44:30 +11:00
committed by GitHub
parent aba9b0e3f9
commit 73c730d06c
12 changed files with 140 additions and 44 deletions

View File

@@ -0,0 +1,62 @@
#nullable enable
using System.Threading.Tasks;
using NUnit.Framework;
using Robust.Client.Interfaces.GameObjects.Components;
using Robust.Client.Interfaces.ResourceManagement;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Map;
using Robust.Shared.Prototypes;
namespace Content.IntegrationTests.Tests.AI
{
[TestFixture]
public sealed class SpriteTest : ContentIntegrationTest
{
/// <summary>
/// Test RSIs and textures are valid
/// </summary>
[Test]
public async Task TestSpritePaths()
{
var (client, server) = await StartConnectedServerClientPair();
await client.WaitIdleAsync();
await server.WaitIdleAsync();
var resc = client.ResolveDependency<IResourceCache>();
var entityManager = client.ResolveDependency<IEntityManager>();
var mapManager = client.ResolveDependency<IMapManager>();
var prototypeManager = client.ResolveDependency<IPrototypeManager>();
await client.WaitIdleAsync();
client.Assert(() =>
{
var mapId = mapManager.CreateMap();
string filePath;
var map = mapManager.GetMapEntity(mapId);
foreach (var proto in prototypeManager.EnumeratePrototypes<EntityPrototype>())
{
if (proto.Abstract || !proto.Components.ContainsKey("Sprite"))
continue;
var entity = entityManager.SpawnEntity(proto.ID, map.Transform.MapPosition);
var spriteComponent = entity.GetComponent<ISpriteComponent>();
foreach (var layer in spriteComponent.AllLayers)
{
if (layer.RsiState != null && layer.Rsi != null)
{
filePath = layer.Rsi.Path + "/" + layer.RsiState + ".png";
Assert.That(resc.ContentFileExists(filePath), $"Unable to find {filePath}");
}
}
}
});
await client.WaitIdleAsync();
}
}
}

View File

@@ -8,19 +8,6 @@
- type: Headset
- type: entity
parent: HeadsetBaseAlt
id: HeadsetCargoAlt
name: cargo overear-headset
components:
- type: Sprite
sprite: Clothing/Ears/Headsets/cargo.rsi
state: icon_alt
- type: Clothing
Slots:
- ears
sprite: Clothing/Ears/Headsets/cargo.rsi
- type: entity
parent: HeadsetBaseAlt
id: HeadsetCommandAlt
@@ -34,19 +21,6 @@
- ears
sprite: Clothing/Ears/Headsets/command.rsi
- type: entity
parent: HeadsetBaseAlt
id: HeadsetEngineeringAlt
name: engineering overear-headset
components:
- type: Sprite
sprite: Clothing/Ears/Headsets/engineering.rsi
state: icon_alt
- type: Clothing
Slots:
- ears
sprite: Clothing/Ears/Headsets/engineering.rsi
- type: entity
parent: HeadsetBaseAlt
id: HeadsetMedicalAlt

View File

@@ -126,7 +126,6 @@
- type: Sprite
drawdepth: WallMountedItems
netsync: false
texture: ""
sprite: "Constructible/Power/apc.rsi"
state: apc0
- type: Appearance

View File

@@ -20,7 +20,7 @@
components:
- type: DroppedMechanism
- type: Sprite
texture: Mobs/Parts/Organs/eyeballs.png
texture: Mobs/Species/Human/parts.rsi/torso_m.png
- type: UserInterface
interfaces:
- key: enum.GenericSurgeryUiKey.Key

View File

@@ -10,9 +10,13 @@
netsync: false
directional: false
sprite: Objects/Weapons/Guns/Ammunition/Casings/ammo_casing.rsi
state: spent
layers:
- state: base
map: ["enum.AmmoVisualLayers.Base"]
drawdepth: FloorObjects
- type: Appearance
visuals:
- type: SpentAmmoVisualizer
- type: entity
id: CartridgeClRifle

View File

@@ -10,9 +10,13 @@
netsync: false
directional: false
sprite: Objects/Weapons/Guns/Ammunition/Casings/ammo_casing.rsi
state: spent
layers:
- state: base
map: ["enum.AmmoVisualLayers.Base"]
drawdepth: FloorObjects
- type: Appearance
visuals:
- type: SpentAmmoVisualizer
- type: entity
id: CartridgeLRifle

View File

@@ -10,9 +10,13 @@
netsync: false
directional: false
sprite: Objects/Weapons/Guns/Ammunition/Casings/ammo_casing.rsi
state: spent
layers:
- state: base
map: ["enum.AmmoVisualLayers.Base"]
drawdepth: FloorObjects
- type: Appearance
visuals:
- type: SpentAmmoVisualizer
- type: entity
id: CartridgeMagnum

View File

@@ -14,9 +14,6 @@
- state: base
map: ["enum.AmmoVisualLayers.Base"]
drawdepth: FloorObjects
- type: Icon
sprite: Objects/Weapons/Guns/Ammunition/Casings/ammo_casing.rsi
state: base
- type: Appearance
visuals:
- type: SpentAmmoVisualizer

View File

@@ -10,9 +10,13 @@
netsync: false
directional: false
sprite: Objects/Weapons/Guns/Ammunition/Casings/ammo_casing.rsi
state: spent
layers:
- state: base
map: ["enum.AmmoVisualLayers.Base"]
drawdepth: FloorObjects
- type: Appearance
visuals:
- type: SpentAmmoVisualizer
- type: entity
id: CartridgeSRifle

View File

@@ -10,7 +10,9 @@
netsync: false
directional: true
sprite: Objects/Consumable/Trash/ash.rsi
state: icon
layers:
- state: base
map: ["enum.AmmoVisualLayers.Base"]
drawdepth: FloorObjects
- type: entity

View File

@@ -11,9 +11,55 @@
"name": "activated",
"directions": 1,
"delays": [
[0.1,
0.1,
0.1]
[
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "activating",
"directions": 1,
"delays": [
[
0.1,
0.1,
0.1
]
]
},
{
"name": "idle",
"directions": 1,
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "startup",
"directions": 1,
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
}
]