diff --git a/Content.Client/_White/CustomGhostSpriteSystem/CustomGhostVisualizer.cs b/Content.Client/_White/CustomGhostSpriteSystem/CustomGhostVisualizer.cs new file mode 100644 index 0000000000..4f06537147 --- /dev/null +++ b/Content.Client/_White/CustomGhostSpriteSystem/CustomGhostVisualizer.cs @@ -0,0 +1,32 @@ +using System.Numerics; +using Content.Shared.Ghost; +using Content.Shared._White.CustomGhostSystem; +using Robust.Client.GameObjects; + +namespace Content.Client._White.CustomGhostSpriteSystem; + +public sealed class CustomGhostVisualizer : VisualizerSystem +{ + protected override void OnAppearanceChange(EntityUid uid, GhostComponent component, ref AppearanceChangeEvent args) + { + base.OnAppearanceChange(uid, component, ref args); + + if (args.Sprite == null) + return; + + if (AppearanceSystem.TryGetData(uid, CustomGhostAppearance.Sprite, out var rsiPath, args.Component)) + { + args.Sprite.LayerSetRSI(0, rsiPath); + } + + if (AppearanceSystem.TryGetData(uid, CustomGhostAppearance.AlphaOverride, out var alpha, args.Component)) + { + args.Sprite.Color = args.Sprite.Color.WithAlpha(alpha); + } + + if (AppearanceSystem.TryGetData(uid, CustomGhostAppearance.SizeOverride, out var size, args.Component)) + { + args.Sprite.Scale = size; + } + } +} diff --git a/Content.Server/_White/CustomGhostSpriteSystem/CustomGhostSpriteSystem.cs b/Content.Server/_White/CustomGhostSpriteSystem/CustomGhostSpriteSystem.cs new file mode 100644 index 0000000000..6e7492017e --- /dev/null +++ b/Content.Server/_White/CustomGhostSpriteSystem/CustomGhostSpriteSystem.cs @@ -0,0 +1,61 @@ +using Content.Server.Ghost.Components; +using Content.Shared.Ghost; +using Content.Shared._White.CustomGhostSystem; +using Robust.Server.GameObjects; +using Robust.Server.Player; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; + +namespace Content.Server._White.CustomGhostSpriteSystem; + +public sealed class CustomGhostSpriteSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!; + [Dependency] private readonly IPlayerManager _playerManager = default!; + [Dependency] private readonly MetaDataSystem _metaData = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnChangeAppearance); + } + + private void OnChangeAppearance(EntityUid uid, GhostComponent component, PlayerAttachedEvent args) + { + if(!_playerManager.TryGetSessionByEntity(uid, out var session)) + return; + + TrySetCustomSprite(uid, session.Name); + } + + public void TrySetCustomSprite(EntityUid ghostUid, string ckey) + { + var prototypes = _prototypeManager.EnumeratePrototypes(); + + foreach (var customGhostPrototype in prototypes) + { + if (!string.Equals(customGhostPrototype.Ckey, ckey, StringComparison.CurrentCultureIgnoreCase)) + continue; + _appearanceSystem.SetData(ghostUid, CustomGhostAppearance.Sprite, customGhostPrototype.CustomSpritePath.ToString()); + _appearanceSystem.SetData(ghostUid, CustomGhostAppearance.SizeOverride, customGhostPrototype.SizeOverride); + + if (customGhostPrototype.AlphaOverride > 0) + { + _appearanceSystem.SetData(ghostUid, CustomGhostAppearance.AlphaOverride, customGhostPrototype.AlphaOverride); + } + + if (customGhostPrototype.GhostName != string.Empty) + { + _metaData.SetEntityName(ghostUid, customGhostPrototype.GhostName); + } + + if (customGhostPrototype.GhostDescription != string.Empty) + { + _metaData.SetEntityDescription(ghostUid, customGhostPrototype.GhostDescription); + } + + return; + } + } +} diff --git a/Content.Shared/_White/CustomGhostSystem/CustomGhostPrototype.cs b/Content.Shared/_White/CustomGhostSystem/CustomGhostPrototype.cs new file mode 100644 index 0000000000..20270113bf --- /dev/null +++ b/Content.Shared/_White/CustomGhostSystem/CustomGhostPrototype.cs @@ -0,0 +1,42 @@ +using System.Numerics; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.Utility; + +namespace Content.Shared._White.CustomGhostSystem; + +/// +/// Use this for custom ghost's +/// +[Prototype("customGhost")] +public sealed class CustomGhostPrototype : IPrototype +{ + [IdDataField] + public string ID { get; } = default!; + + [DataField(required: true)] + public string Ckey { get; } = default!; + + [DataField("sprite", required: true)] + public ResPath CustomSpritePath { get; } = default!; + + [DataField("alpha")] + public float AlphaOverride { get; } = -1; + + [DataField("ghostName")] + public string GhostName = string.Empty; + + [DataField("ghostDescription")] + public string GhostDescription = string.Empty; + + [DataField("size")] + public Vector2 SizeOverride = Vector2.One; +} + +[Serializable, NetSerializable] +public enum CustomGhostAppearance +{ + Sprite, + AlphaOverride, + SizeOverride +} diff --git a/Resources/Prototypes/_Ataraxia/Ghosts/ataraxia.yml b/Resources/Prototypes/_Ataraxia/Ghosts/ataraxia.yml new file mode 100644 index 0000000000..be6f2aa5da --- /dev/null +++ b/Resources/Prototypes/_Ataraxia/Ghosts/ataraxia.yml @@ -0,0 +1,91 @@ +# PuroSlavKing +- type: customGhost + id: puroslavking-ghost + ckey: PuroSlavKing + sprite: _Ataraxia/Ghosts/PuroSlavKing.rsi + ghostName: PuroSlavKing + ghostDescription: Hello world! + +# yourmommy +- type: customGhost + id: yourmommy-ghost + ckey: yourmommy + sprite: _Ataraxia/Ghosts/yourmommy-ghost.rsi + alpha: 1 + ghostName: yourmommy + ghostDescription: Самая праздничная киса на диком западе. + +# GodFace +- type: customGhost + id: godface-ghost + ckey: GodFace + sprite: _Ataraxia/Ghosts/GodFace.rsi + ghostName: GodFace + ghostDescription: В рамке явно должны оказаться вы! + +# LIZARDWIZARD +- type: customGhost + id: LIZARDWIZARD-ghost + ckey: LIZARDWIZARD + sprite: _Ataraxia/Ghosts/LIZARDWIZARD.rsi + ghostName: LIZARDWIZARD + ghostDescription: Фр-Йиф. + +# idoffront +- type: customGhost + id: idoffront-ghost + ckey: idoffront + sprite: _Ataraxia/Ghosts/idoffront.rsi + alpha: 0.8 + ghostName: idoffront + ghostDescription: 1000-7. + +# trest100 +- type: customGhost + id: Trest100-ghost + ckey: trest100 + sprite: _Ataraxia/Ghosts/trest100-ghost.rsi + alpha: 0.8 + ghostName: Трести + ghostDescription: на что пялишся? + +# Vetochka +- type: customGhost + id: Veta-ghost + ckey: Vetochka + sprite: _Ataraxia/Ghosts/Vetochka-ghost.rsi + ghostName: Vetochka + ghostDescription: Она могла быть твоей мамой, но увы... + +# Boroven +- type: customGhost + id: kor-ghost + ckey: Boroven + sprite: _Ataraxia/Ghosts/Boroven-ghost.rsi + ghostName: Выживший + ghostDescription: Щупальца отдают химикатами, а крест слился с телом + +# Spac__ +- type: customGhost + id: Spac-ghost + ckey: Spac__ + sprite: _Ataraxia/Ghosts/spac-ghost.rsi + ghostName: Шпаки + ghostDescription: я конечно не свитер, но меня тоже можно связать и натянуть + +# kreses +- type: customGhost + id: kreses-ghost + ckey: kreses + sprite: _Ataraxia/Ghosts/kreses-ghost.rsi + alpha: 0.8 + ghostName: Дракон сингулярности + ghostDescription: Владыка сингулярности + +# joulerk +- type: customGhost + id: joulerk-ghost + ckey: Joulerk + sprite: _Ataraxia/Ghosts/joulerk-ghost.rsi + ghostName: ЛЕРК + ghostDescription: Летающее бирюзовое существо, напоминающее кота, с пушистым телом, грациозными движениями и глазами, сверкающими с загадочным блеском. diff --git a/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml b/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml new file mode 100644 index 0000000000..ef6e72562e --- /dev/null +++ b/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml @@ -0,0 +1,36 @@ +#scituzer2 +- type: customGhost + id: scituzer2-ghost + ckey: scituzer2 + sprite: _White/Ghosts/scituzer2-ghost.rsi + ghostName: Black Harpy + ghostDescription: A race of harpies that have charming onyx wings. Although they are a clever race, particularly having the highest intelligence of all harpies, on the other hand, they are exceedingly belligerent and ferocious. This one specifically used to be project lead of this project - but all she saw is world on fire. + +#warete +- type: customGhost + id: warete-ghost + ckey: warete + sprite: _White/Ghosts/warete-ghost.rsi + alpha: 0.8 + ghostName: Fiammetta + ghostDescription: Горничная под своим кодовым именем. Следит за порядком в кафе Мастера. + size: 0.7, 0.7 + +#pointpng +- type: customGhost + id: cheeseCheese-ghost + ckey: cheese_cheese + sprite: _White/Ghosts/cheese_cheese-ghost.rsi + alpha: 0.8 + ghostName: Фырчало + ghostDescription: Инженерный борг + +#mapperian +- type: customGhost + id: mapperian-ghost + ckey: mapperian + sprite: _White/Ghosts/mapperian-ghost.rsi + alpha: 0.9 + ghostName: Alice Liddell + ghostDescription: found you found you found you found you found you found you found you found you found you found you found you found you found you found you found you found you found you found you found you found you found you found you found you + size: 0.7, 0.7 diff --git a/Resources/Textures/_Ataraxia/Ghosts/Boroven-ghost.rsi/animated.png b/Resources/Textures/_Ataraxia/Ghosts/Boroven-ghost.rsi/animated.png new file mode 100644 index 0000000000..11e8614f59 Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/Boroven-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/Boroven-ghost.rsi/meta.json b/Resources/Textures/_Ataraxia/Ghosts/Boroven-ghost.rsi/meta.json new file mode 100644 index 0000000000..d6d20a7247 --- /dev/null +++ b/Resources/Textures/_Ataraxia/Ghosts/Boroven-ghost.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/blob/f80e7ba62d27c77cfeac709dd71033744d0015c4/icons/mob/mob.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "animated", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Ataraxia/Ghosts/GodFace.rsi/animated.png b/Resources/Textures/_Ataraxia/Ghosts/GodFace.rsi/animated.png new file mode 100644 index 0000000000..80f7732aa2 Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/GodFace.rsi/animated.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/GodFace.rsi/meta.json b/Resources/Textures/_Ataraxia/Ghosts/GodFace.rsi/meta.json new file mode 100644 index 0000000000..d17241a188 --- /dev/null +++ b/Resources/Textures/_Ataraxia/Ghosts/GodFace.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC BY-NC-SA 4.0", + "copyright": "Sprited by PuroSlavKing (Github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "animated", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Ataraxia/Ghosts/LIZARDWIZARD.rsi/animated.png b/Resources/Textures/_Ataraxia/Ghosts/LIZARDWIZARD.rsi/animated.png new file mode 100644 index 0000000000..29bbc349d3 Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/LIZARDWIZARD.rsi/animated.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/LIZARDWIZARD.rsi/icon.png b/Resources/Textures/_Ataraxia/Ghosts/LIZARDWIZARD.rsi/icon.png new file mode 100644 index 0000000000..048d3cc397 Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/LIZARDWIZARD.rsi/icon.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/LIZARDWIZARD.rsi/meta.json b/Resources/Textures/_Ataraxia/Ghosts/LIZARDWIZARD.rsi/meta.json new file mode 100644 index 0000000000..06ea3c69f2 --- /dev/null +++ b/Resources/Textures/_Ataraxia/Ghosts/LIZARDWIZARD.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "animated", + "directions": 4 + }, + { + "name": "icon" + } + ] +} diff --git a/Resources/Textures/_Ataraxia/Ghosts/PuroSlavKing.rsi/animated.png b/Resources/Textures/_Ataraxia/Ghosts/PuroSlavKing.rsi/animated.png new file mode 100644 index 0000000000..6d04ef84e4 Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/PuroSlavKing.rsi/animated.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/PuroSlavKing.rsi/icon.png b/Resources/Textures/_Ataraxia/Ghosts/PuroSlavKing.rsi/icon.png new file mode 100644 index 0000000000..86d87d1f2f Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/PuroSlavKing.rsi/icon.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/PuroSlavKing.rsi/meta.json b/Resources/Textures/_Ataraxia/Ghosts/PuroSlavKing.rsi/meta.json new file mode 100644 index 0000000000..0fe9abe903 --- /dev/null +++ b/Resources/Textures/_Ataraxia/Ghosts/PuroSlavKing.rsi/meta.json @@ -0,0 +1,52 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edited by SShved, made by borkroman", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "animated", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "icon" + } + ] +} diff --git a/Resources/Textures/_Ataraxia/Ghosts/Vetochka-ghost.rsi/animated.png b/Resources/Textures/_Ataraxia/Ghosts/Vetochka-ghost.rsi/animated.png new file mode 100644 index 0000000000..195dc48415 Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/Vetochka-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/Vetochka-ghost.rsi/meta.json b/Resources/Textures/_Ataraxia/Ghosts/Vetochka-ghost.rsi/meta.json new file mode 100644 index 0000000000..640462aa24 --- /dev/null +++ b/Resources/Textures/_Ataraxia/Ghosts/Vetochka-ghost.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprited by vetochka_igrit (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "animated", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Ataraxia/Ghosts/ghost_clown.rsi/animated.png b/Resources/Textures/_Ataraxia/Ghosts/ghost_clown.rsi/animated.png new file mode 100644 index 0000000000..284a2cb94f Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/ghost_clown.rsi/animated.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/ghost_clown.rsi/icon.png b/Resources/Textures/_Ataraxia/Ghosts/ghost_clown.rsi/icon.png new file mode 100644 index 0000000000..be801948fb Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/ghost_clown.rsi/icon.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/ghost_clown.rsi/meta.json b/Resources/Textures/_Ataraxia/Ghosts/ghost_clown.rsi/meta.json new file mode 100644 index 0000000000..e7b01df53d --- /dev/null +++ b/Resources/Textures/_Ataraxia/Ghosts/ghost_clown.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/blob/f80e7ba62d27c77cfeac709dd71033744d0015c4/icons/mob/mob.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "animated", + "directions": 4 + }, + { + "name": "icon" + } + ] +} diff --git a/Resources/Textures/_Ataraxia/Ghosts/idoffront.rsi/animated.png b/Resources/Textures/_Ataraxia/Ghosts/idoffront.rsi/animated.png new file mode 100644 index 0000000000..568456066e Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/idoffront.rsi/animated.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/idoffront.rsi/meta.json b/Resources/Textures/_Ataraxia/Ghosts/idoffront.rsi/meta.json new file mode 100644 index 0000000000..cd0e895807 --- /dev/null +++ b/Resources/Textures/_Ataraxia/Ghosts/idoffront.rsi/meta.json @@ -0,0 +1,21 @@ +{ + "license": "CC-BY-SA-3.0", + "copyright": "IDK", + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "animated", + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Ataraxia/Ghosts/joulerk-ghost.rsi/animated.png b/Resources/Textures/_Ataraxia/Ghosts/joulerk-ghost.rsi/animated.png new file mode 100644 index 0000000000..ec6e70d01a Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/joulerk-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/joulerk-ghost.rsi/meta.json b/Resources/Textures/_Ataraxia/Ghosts/joulerk-ghost.rsi/meta.json new file mode 100644 index 0000000000..0562a584de --- /dev/null +++ b/Resources/Textures/_Ataraxia/Ghosts/joulerk-ghost.rsi/meta.json @@ -0,0 +1,49 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprited for Joulerk", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "animated", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] + } diff --git a/Resources/Textures/_Ataraxia/Ghosts/kreses-ghost.rsi/animated.png b/Resources/Textures/_Ataraxia/Ghosts/kreses-ghost.rsi/animated.png new file mode 100644 index 0000000000..7479d0361e Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/kreses-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/kreses-ghost.rsi/meta.json b/Resources/Textures/_Ataraxia/Ghosts/kreses-ghost.rsi/meta.json new file mode 100644 index 0000000000..5a3682bc6b --- /dev/null +++ b/Resources/Textures/_Ataraxia/Ghosts/kreses-ghost.rsi/meta.json @@ -0,0 +1,41 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "IDK", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "animated", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + } + ] + } diff --git a/Resources/Textures/_Ataraxia/Ghosts/spac-ghost.rsi/animated.png b/Resources/Textures/_Ataraxia/Ghosts/spac-ghost.rsi/animated.png new file mode 100644 index 0000000000..1e18fcc2bb Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/spac-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/spac-ghost.rsi/meta.json b/Resources/Textures/_Ataraxia/Ghosts/spac-ghost.rsi/meta.json new file mode 100644 index 0000000000..d6d20a7247 --- /dev/null +++ b/Resources/Textures/_Ataraxia/Ghosts/spac-ghost.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/blob/f80e7ba62d27c77cfeac709dd71033744d0015c4/icons/mob/mob.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "animated", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Ataraxia/Ghosts/trest100-ghost.rsi/animated.png b/Resources/Textures/_Ataraxia/Ghosts/trest100-ghost.rsi/animated.png new file mode 100644 index 0000000000..711e77b9be Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/trest100-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/trest100-ghost.rsi/meta.json b/Resources/Textures/_Ataraxia/Ghosts/trest100-ghost.rsi/meta.json new file mode 100644 index 0000000000..b27b53b36e --- /dev/null +++ b/Resources/Textures/_Ataraxia/Ghosts/trest100-ghost.rsi/meta.json @@ -0,0 +1,65 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "IDK", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "animated", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] + } diff --git a/Resources/Textures/_Ataraxia/Ghosts/yourmommy-ghost.rsi/animated.png b/Resources/Textures/_Ataraxia/Ghosts/yourmommy-ghost.rsi/animated.png new file mode 100644 index 0000000000..6ba75ebe62 Binary files /dev/null and b/Resources/Textures/_Ataraxia/Ghosts/yourmommy-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_Ataraxia/Ghosts/yourmommy-ghost.rsi/meta.json b/Resources/Textures/_Ataraxia/Ghosts/yourmommy-ghost.rsi/meta.json new file mode 100644 index 0000000000..4b6bc5450b --- /dev/null +++ b/Resources/Textures/_Ataraxia/Ghosts/yourmommy-ghost.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Martell", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "animated", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_White/Ghosts/cheese_cheese-ghost.rsi/animated.png b/Resources/Textures/_White/Ghosts/cheese_cheese-ghost.rsi/animated.png new file mode 100644 index 0000000000..5401b86e62 Binary files /dev/null and b/Resources/Textures/_White/Ghosts/cheese_cheese-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_White/Ghosts/cheese_cheese-ghost.rsi/meta.json b/Resources/Textures/_White/Ghosts/cheese_cheese-ghost.rsi/meta.json new file mode 100644 index 0000000000..ec29b2331f --- /dev/null +++ b/Resources/Textures/_White/Ghosts/cheese_cheese-ghost.rsi/meta.json @@ -0,0 +1,65 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", +"copyright": "Created by MOYAMAMA", + "size": { + "x": 64, + "y": 32 + }, + "states": [ + { + "name": "animated", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + } + ] +} diff --git a/Resources/Textures/_White/Ghosts/mapperian-ghost.rsi/animated.png b/Resources/Textures/_White/Ghosts/mapperian-ghost.rsi/animated.png new file mode 100644 index 0000000000..196495a352 Binary files /dev/null and b/Resources/Textures/_White/Ghosts/mapperian-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_White/Ghosts/mapperian-ghost.rsi/meta.json b/Resources/Textures/_White/Ghosts/mapperian-ghost.rsi/meta.json new file mode 100644 index 0000000000..7e9bda8ad4 --- /dev/null +++ b/Resources/Textures/_White/Ghosts/mapperian-ghost.rsi/meta.json @@ -0,0 +1,53 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Created by cry_prism", + "size": { + "x": 128, + "y": 128 + }, + "states": [ + { + "name": "animated", + "directions": 4, + "delays": [ + [ + 0.12, + 0.12, + 0.12, + 0.12, + 0.12, + 0.12, + 0.12 + ], + [ + 0.12, + 0.12, + 0.12, + 0.12, + 0.12, + 0.12, + 0.12 + ], + [ + 0.12, + 0.12, + 0.12, + 0.12, + 0.12, + 0.12, + 0.12 + ], + [ + 0.12, + 0.12, + 0.12, + 0.12, + 0.12, + 0.12, + 0.12 + ] + ] + } + ] +} diff --git a/Resources/Textures/_White/Ghosts/scituzer2-ghost.rsi/animated.png b/Resources/Textures/_White/Ghosts/scituzer2-ghost.rsi/animated.png new file mode 100644 index 0000000000..e60701cfa1 Binary files /dev/null and b/Resources/Textures/_White/Ghosts/scituzer2-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_White/Ghosts/scituzer2-ghost.rsi/meta.json b/Resources/Textures/_White/Ghosts/scituzer2-ghost.rsi/meta.json new file mode 100644 index 0000000000..1947fb4863 --- /dev/null +++ b/Resources/Textures/_White/Ghosts/scituzer2-ghost.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "oniks", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "animated", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} + diff --git a/Resources/Textures/_White/Ghosts/warete-ghost.rsi/animated.png b/Resources/Textures/_White/Ghosts/warete-ghost.rsi/animated.png new file mode 100644 index 0000000000..e49ff8251b Binary files /dev/null and b/Resources/Textures/_White/Ghosts/warete-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_White/Ghosts/warete-ghost.rsi/meta.json b/Resources/Textures/_White/Ghosts/warete-ghost.rsi/meta.json new file mode 100644 index 0000000000..3a6467b446 --- /dev/null +++ b/Resources/Textures/_White/Ghosts/warete-ghost.rsi/meta.json @@ -0,0 +1,45 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Warete", + "size": { + "x": 128, + "y": 128 + }, + "states": [ + { + "name": "animated", + "directions": 4, + "delays": [ + [ + 0.12, + 0.12, + 0.12, + 0.12, + 0.12 + ], + [ + 0.12, + 0.12, + 0.12, + 0.12, + 0.12 + ], + [ + 0.12, + 0.12, + 0.12, + 0.12, + 0.12 + ], + [ + 0.12, + 0.12, + 0.12, + 0.12, + 0.12 + ] + ] + } + ] +}