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/_White/Ghosts/custom_ghosts.yml b/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml new file mode 100644 index 0000000000..718cadadca --- /dev/null +++ b/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml @@ -0,0 +1,410 @@ +#Persikvin +- type: customGhost + id: persikvin-ghost + ckey: Persikvin + sprite: _White/Ghosts/persikvin-ghost.rsi + alpha: 0.9 + ghostName: Gawr + ghostDescription: Из океана... + +#krokozyabra +- type: customGhost + id: krokozyabra-ghost + ckey: Krokozyabra + sprite: _White/Ghosts/krokozyabra-ghost.rsi + alpha: 0.9 + ghostName: Зябр + ghostDescription: От него веет верностью + +#dageff +- type: customGhost + id: dageff-ghost + ckey: Dageff + sprite: _White/Ghosts/dageff-ghost.rsi + alpha: 0.9 + ghostName: Maiden + ghostDescription: Наблюдает за вашим поведением в кафе. + size: 0.9, 0.9 + +#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: Инженерный борг + +#nairsark +- type: customGhost + id: nairsark-ghost + ckey: nairsark + sprite: _White/Ghosts/frostnova-ghost.rsi + alpha: 0.7 + ghostName: Winter's Scar + ghostDescription: ... + +#reider207 +- type: customGhost + id: reider207-ghost + ckey: reider207 + sprite: _White/Ghosts/reider207-ghost.rsi + alpha: 0.8 + ghostName: Tighnari + ghostDescription: But what are they going to do, lock me up? + size: 0.8, 0.8 + +#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 + +#s_k_r_i_m_e_x +- type: customGhost + id: s_k_r_i_m_e_x-ghost + ckey: s_k_r_i_m_e_x + sprite: _White/Ghosts/s_k_r_i_m_e_x-ghost.rsi + alpha: 0.8 + ghostName: Ху Тао + ghostDescription: Мяу! + size: 0.8, 0.8 + +##xivi +#- type: customGhost +# id: xivi-ghost +# ckey: xivi +# sprite: _White/Ghosts/xivi-ghost.rsi +# alpha: 0.9 +# ghostName: Project Bunny +# ghostDescription: Ride on! +# size: 0.6, 0.6 + + +## Unused +##merkkaa +#- type: customGhost +# id: merkkaa-ghost +# ckey: merkkaa +# sprite: _White/Ghosts/merkkaa-ghost.rsi +# alpha: 0.9 +# ghostName: Мурка +# ghostDescription: Ня... +# +##shelupon +#- type: customGhost +# id: shelupon-ghost +# ckey: shelupon +# sprite: _White/Ghosts/shelupon-ghost.rsi +# alpha: 1 +# ghostName: Величайший +# ghostDescription: Восстал из небытия. +# +##hskveez +#- type: customGhost +# id: hskveez-ghost +# ckey: hskveez +# sprite: _White/Ghosts/hskveez-ghost.rsi +# alpha: 0.9 +# ghostName: Огонек +# ghostDescription: А где тут огнетушитель? +# +##mikvisan +#- type: customGhost +# id: mikvisan-ghost +# ckey: mikvisan +# sprite: _White/Ghosts/mikvisan-ghost.rsi +# alpha: 0.8 +# ghostName: Мона +# ghostDescription: Годротянка с хорошей задницей +# size: 0.8, 0.8 +# +##felix +#- type: customGhost +# id: felix163-ghost +# ckey: felix163 +# sprite: _White/Ghosts/felix-ghost.rsi +# alpha: 1 +# ghostName: Кошмар +# ghostDescription: ползёт, ползёт... +# size: 0.8, 0.8 +# +##doommax +#- type: customGhost +# id: doommax-ghost +# ckey: doommax +# sprite: _White/Ghosts/doommax-ghost.rsi +# alpha: 0.95 +# ghostName: Наблюдатель +# ghostDescription: Явился из другого мира с целью наблюдать за другими разумными существами +# size: 1, 1 +# +##serbwo +#- type: customGhost +# id: serbwo-ghost +# ckey: serbwo +# sprite: _White/Ghosts/serbo-ghost.rsi +# alpha: 0.8 +# ghostName: Karseba +# ghostDescription: Дракон который делает Ням-Ням +# size: 1, 1 +# +##centurion +#- type: customGhost +# id: centurion-ghost +# ckey: centurion +# sprite: _White/Ghosts/vkuser_ghost.rsi +# alpha: 0.8 +# ghostName: Central Hampter +# ghostDescription: Мур! +# size: 0.8, 0.8 +# +##zmes2 +#- type: customGhost +# id: zmes2-ghost +# ckey: zmes2 +# sprite: _White/Ghosts/zmes2-ghost.rsi +# alpha: 0.8 +# ghostName: Спящий +# ghostDescription: Выглядит умиротвореным... +# size: 0.8, 0.8 +# +##quazvr +#- type: customGhost +# id: quazvr-ghost +# ckey: quazvr +# sprite: _White/Ghosts/quazvr-ghost.rsi +# alpha: 0.8 +# ghostName: Neco +# ghostDescription: Buranyaaa... +# size: 0.6, 0.6 +# +##nexmachina +#- type: customGhost +# id: nexmachina-ghost +# ckey: nexmachina +# sprite: _White/Ghosts/nexmachina-ghost.rsi +# alpha: 0.7 +# ghostName: CoreOverHeaven +# ghostDescription: Плоф +# size: 1.0, 1.0 +# +##17shu +#- type: customGhost +# id: 17shu-ghost +# ckey: 17shu +# sprite: _White/Ghosts/17shu-ghost.rsi +# alpha: 0.9 +# ghostName: Квакалка +# ghostDescription: Квакающий покемон.. +# size: 0.7, 0.7 +# +##ren0san +#- type: customGhost +# id: renosan-ghost +# ckey: ren0san +# sprite: _White/Ghosts/renosan-ghost.rsi +# alpha: 0.8 +# ghostName: Энхиридион +# ghostDescription: Древняя книга с кодексом чести, руководством и иной полезной информацией для героев. +# size: 0.8, 0.8 +# +##deadisko +#- type: customGhost +# id: deadisko-ghost +# ckey: deadisko +# sprite: _White/Ghosts/deadisko-ghost.rsi +# alpha: 0.8 +# ghostName: Летающий макаронный монстр +# ghostDescription: Сложноуглеводное всеведующее создание, покровитель пиратов с большими митболами. +# size: 0.8, 0.8 +# +##zilendorie +#- type: customGhost +# id: zilendorie-ghost +# ckey: zilendorie +# sprite: _White/Ghosts/zilendorie-ghost.rsi +# alpha: 0.8 +# ghostName: Эзра-Арк +# ghostDescription: Призрак фембоя. Стал слишком глупеньким и отделился от тела. +# size: 0.3, 0.3 +# +##4abere1 +#- type: customGhost +# id: 4abere1-ghost +# ckey: 4abere1 +# sprite: _White/Ghosts/4abere1-ghost.rsi +# alpha: 0.8 +# ghostName: Хамптер +# ghostDescription: Любит чебуреки и мапить. +# size: 1.3, 1.3 +# +##rendzidead +#- type: customGhost +# id: rendzidead-ghost +# ckey: rendzidead +# sprite: _White/Ghosts/rendzidead-ghost.rsi +# alpha: 0.6 +# ghostName: Смит Сайковски +# ghostDescription: Олицетворение бюрократии, но почему-то от него ощущается сильная боль и чувство утраты. Кто знает, что пережила данная душа. +# size: 0.6, 0.6 +# +##nosireapo +#- type: customGhost +# id: nosireapo-ghost +# ckey: nosireapo +# sprite: _White/Ghosts/nosireapo-ghost.rsi +# alpha: 0.7 +# ghostName: Жабуля +# ghostDescription: Неудачный(или слишком удачный) эксперимент по ксенобиологии создал данное существо. Любит квакоть. +# size: 1.0, 1.0 +# +##svinka +#- type: customGhost +# id: svinka-ghost +# ckey: svinka +# sprite: _White/Ghosts/afanasy-ghost.rsi +# alpha: 0.8 +# ghostName: Свинка +# ghostDescription: хрю-хрю +# +##hayras +#- type: customGhost +# id: hayras-ghost +# ckey: hayras +# sprite: _White/Ghosts/hayras-ghost.rsi +# alpha: 0.8 +# ghostName: Витя +# ghostDescription: Хню... +# +##trora +#- type: customGhost +# id: trora-ghost +# ckey: trora +# sprite: _White/Ghosts/nairsark-ghost.rsi +# alpha: 1 +# ghostName: Maid +# ghostDescription: Not a fucking fumo. +# +##mrregari +#- type: customGhost +# id: mrregari-ghost +# ckey: mr_regari +# sprite: _White/Ghosts/mr_regari.rsi +# alpha: 0.9 +# ghostName: Обсидиановое сердце +# ghostDescription: Сердце древнего бога, дабы не дать ему возродиться было заперто в бедрокиуме. +# +##thefrendlypsychopath +#- type: customGhost +# id: thefrendlypsychopath-ghost +# ckey: thefrendlypsychopath +# sprite: _White/Ghosts/psychopath-ghost.rsi +# ghostName: ЕРП Кицуне +# ghostDescription: Тут тебе не рады. +# +##ssao +#- type: customGhost +# id: ssao-ghost +# ckey: ssao +# sprite: _White/Ghosts/ssao-ghost.rsi +# alpha: 0.9 +# ghostName: Мяукалка +# ghostDescription: Мяу! +# size: 0.6, 0.6 +# +##raindrop +#- type: customGhost +# id: raindrop-ghost +# ckey: raindrop +# sprite: _White/Ghosts/raindrop-ghost.rsi +# alpha: 0.7 +# ghostName: Акулёнок +# ghostDescription: Что-то замышляет. +# size: 0.9, 0.9 +# +##veryfish +#- type: customGhost +# id: veryfish-ghost +# ckey: veryfish +# sprite: _White/Ghosts/veryfish-ghost.rsi +# alpha: 0.8 +# ghostName: Mask of the Red Death +# ghostDescription: A blasphemous mockery. +# size: 0.5, 0.5 +# +##aeons_torn +#- type: customGhost +# id: aeons_torn-ghost +# ckey: aeons_torn +# sprite: _White/Ghosts/aeons_torn-ghost.rsi +# ghostName: Monolith +# ghostDescription: Blast from the past +# +##joulerk +#- type: customGhost +# id: joulerk-ghost +# ckey: Joulerk +# sprite: _White/Ghosts/joulerk-ghost.rsi +# ghostName: ЛЕРК +# ghostDescription: Летающее бирюзовое существо, напоминающее кота, с пушистым телом, грациозными движениями и глазами, сверкающими с загадочным блеском. +# +##waggier +#- type: customGhost +# id: waggier-ghost +# ckey: waggier +# sprite: _White/Ghosts/waggier-ghost.rsi +# alpha: 0.9 +# ghostName: Ветеранка СБ +# ghostDescription: Вы нарушили правила действующего закона.... "перечисление статей" +# size: 0.6, 0.6 +# +##FjorLofgren +#- type: customGhost +# id: fjorlofgren-ghost +# ckey: FjorLofgren +# sprite: _White/Ghosts/fjor-ghost.rsi +# alpha: 0.9 +# ghostName: Bun Witch +# ghostDescription: Не бойся, маленький кролик +# size: 0.9, 0.9 +# +##kreses +#- type: customGhost +# id: kreses-ghost +# ckey: kreses +# sprite: _White/Ghosts/kreses-ghost.rsi +# alpha: 0.9 +# ghostName: Дракон сингулярности +# ghostDescription: Владыка сингулярности +# +##runamius +#- type: customGhost +# id: runamius-ghost +# ckey: runamius +# sprite: _White/Ghosts/runamius-ghost.rsi +# alpha: 0.9 +# ghostName: Никотиноед +# ghostDescription: Поедает никотин в любом виде 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/dageff-ghost.rsi/animated.png b/Resources/Textures/_White/Ghosts/dageff-ghost.rsi/animated.png new file mode 100644 index 0000000000..c9d2ffb034 Binary files /dev/null and b/Resources/Textures/_White/Ghosts/dageff-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_White/Ghosts/dageff-ghost.rsi/meta.json b/Resources/Textures/_White/Ghosts/dageff-ghost.rsi/meta.json new file mode 100644 index 0000000000..807d3ff344 --- /dev/null +++ b/Resources/Textures/_White/Ghosts/dageff-ghost.rsi/meta.json @@ -0,0 +1,49 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Dageff", + "size": { + "x": 128, + "y": 128 + }, + "states": [ + { + "name": "animated", + "directions": 4, + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + } + ] +} diff --git a/Resources/Textures/_White/Ghosts/frostnova-ghost.rsi/animated.png b/Resources/Textures/_White/Ghosts/frostnova-ghost.rsi/animated.png new file mode 100644 index 0000000000..eb8abce3d8 Binary files /dev/null and b/Resources/Textures/_White/Ghosts/frostnova-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_White/Ghosts/frostnova-ghost.rsi/meta.json b/Resources/Textures/_White/Ghosts/frostnova-ghost.rsi/meta.json new file mode 100644 index 0000000000..04cb23a82a --- /dev/null +++ b/Resources/Textures/_White/Ghosts/frostnova-ghost.rsi/meta.json @@ -0,0 +1,45 @@ +{ + "version": 1, + "size": { + "x": 128, + "y": 128 + }, + "license": "CC-BY-SA-4.0", + "copyright": "Nair Sark", + "states": [ + { + "name": "animated", + "directions": 4, + "delays": [ + [ + 0.15, + 0.15, + 0.15, + 0.15, + 0.15 + ], + [ + 0.15, + 0.15, + 0.15, + 0.15, + 0.15 + ], + [ + 0.15, + 0.15, + 0.15, + 0.15, + 0.15 + ], + [ + 0.15, + 0.15, + 0.15, + 0.15, + 0.15 + ] + ] + } + ] +} diff --git a/Resources/Textures/_White/Ghosts/krokozyabra-ghost.rsi/animated.png b/Resources/Textures/_White/Ghosts/krokozyabra-ghost.rsi/animated.png new file mode 100644 index 0000000000..67d09e3138 Binary files /dev/null and b/Resources/Textures/_White/Ghosts/krokozyabra-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_White/Ghosts/krokozyabra-ghost.rsi/meta.json b/Resources/Textures/_White/Ghosts/krokozyabra-ghost.rsi/meta.json new file mode 100644 index 0000000000..32dfab12ee --- /dev/null +++ b/Resources/Textures/_White/Ghosts/krokozyabra-ghost.rsi/meta.json @@ -0,0 +1,57 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "krokozyabra", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "animated", + "directions": 4, + "delays": [ + [ + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08 + ], + [ + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08 + ], + [ + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08 + ], + [ + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08 + ] + ] + } +] +} 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/nairsark-ghost.rsi/animated.png b/Resources/Textures/_White/Ghosts/nairsark-ghost.rsi/animated.png new file mode 100644 index 0000000000..238eb71b38 Binary files /dev/null and b/Resources/Textures/_White/Ghosts/nairsark-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_White/Ghosts/nairsark-ghost.rsi/meta.json b/Resources/Textures/_White/Ghosts/nairsark-ghost.rsi/meta.json new file mode 100644 index 0000000000..b1f9b48598 --- /dev/null +++ b/Resources/Textures/_White/Ghosts/nairsark-ghost.rsi/meta.json @@ -0,0 +1,57 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", +"copyright": "Created by MOYAMAMA", + "size": { + "x": 48, + "y": 64 + }, + "states": [ + { + "name": "animated", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.3, + 0.2, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.3, + 0.2, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.3, + 0.2, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.3, + 0.2, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/_White/Ghosts/persikvin-ghost.rsi/animated.png b/Resources/Textures/_White/Ghosts/persikvin-ghost.rsi/animated.png new file mode 100644 index 0000000000..b8431fab4d Binary files /dev/null and b/Resources/Textures/_White/Ghosts/persikvin-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_White/Ghosts/persikvin-ghost.rsi/meta.json b/Resources/Textures/_White/Ghosts/persikvin-ghost.rsi/meta.json new file mode 100644 index 0000000000..3b37d85d32 --- /dev/null +++ b/Resources/Textures/_White/Ghosts/persikvin-ghost.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Persikvin", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "animated" + } + ] +} diff --git a/Resources/Textures/_White/Ghosts/reider207-ghost.rsi/animated.png b/Resources/Textures/_White/Ghosts/reider207-ghost.rsi/animated.png new file mode 100644 index 0000000000..d3cb68caf5 Binary files /dev/null and b/Resources/Textures/_White/Ghosts/reider207-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_White/Ghosts/reider207-ghost.rsi/meta.json b/Resources/Textures/_White/Ghosts/reider207-ghost.rsi/meta.json new file mode 100644 index 0000000000..fba14dcd95 --- /dev/null +++ b/Resources/Textures/_White/Ghosts/reider207-ghost.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "reider207", + "size": { + "x": 128, + "y": 128 + }, + "states": [ + { + "name": "animated" + } + ] +} diff --git a/Resources/Textures/_White/Ghosts/s_k_r_i_m_e_x-ghost.rsi/animated.png b/Resources/Textures/_White/Ghosts/s_k_r_i_m_e_x-ghost.rsi/animated.png new file mode 100644 index 0000000000..391bf7f87a Binary files /dev/null and b/Resources/Textures/_White/Ghosts/s_k_r_i_m_e_x-ghost.rsi/animated.png differ diff --git a/Resources/Textures/_White/Ghosts/s_k_r_i_m_e_x-ghost.rsi/meta.json b/Resources/Textures/_White/Ghosts/s_k_r_i_m_e_x-ghost.rsi/meta.json new file mode 100644 index 0000000000..e65d840c4d --- /dev/null +++ b/Resources/Textures/_White/Ghosts/s_k_r_i_m_e_x-ghost.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Created by s_k_r_i_m_e_x", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "animated", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + } + ] +} 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/suzuran.rsi/animated.png b/Resources/Textures/_White/Ghosts/suzuran.rsi/animated.png new file mode 100644 index 0000000000..06854c3dfe Binary files /dev/null and b/Resources/Textures/_White/Ghosts/suzuran.rsi/animated.png differ diff --git a/Resources/Textures/_White/Ghosts/suzuran.rsi/meta.json b/Resources/Textures/_White/Ghosts/suzuran.rsi/meta.json new file mode 100644 index 0000000000..309ec34251 --- /dev/null +++ b/Resources/Textures/_White/Ghosts/suzuran.rsi/meta.json @@ -0,0 +1,45 @@ +{ + "license": "CC-BY-SA-4.0", + "copyright": "Created by cry_prism", + "version": 1, + "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 + ] + ] + } + ] +} 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 + ] + ] + } + ] +}