From dd84d48fed6dc2390dc79ee137a55cf0baaa26dc Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Fri, 3 May 2024 20:40:31 +0300 Subject: [PATCH] Refactors, bugfixs + Crystals (#127) * fix dwarf displacement map * Big Fireplace update * add crystalls placeholder * bonfire update * displaccement update * Update wallmount_torch.yml --- .../Atmos/Components/FlammableComponent.cs | 6 + Content.Server/Sprite/RandomSpriteSystem.cs | 2 +- .../Fireplace/CP14FireplaceComponent.cs | 22 ++-- .../Fireplace/CP14FireplaceFuelComponent.cs | 20 --- .../Fireplace/CP14FireplaceSystem.cs | 62 ++++----- .../Sprite/RandomSpriteComponent.cs | 6 + .../_CP14/fireplace/fireplace-component.ftl | 1 - .../_CP14/fireplace/fireplace-component.ftl | 1 - .../Entities/Structures/Furniture/bonfire.yml | 24 ++-- .../Structures/Furniture/wallmount_torch.yml | 1 - .../Structures/Specific/Alchemy/heater.yml | 20 ++- .../Entities/Structures/Wallmount/crystal.yml | 116 +++++++++++++++++ .../{Decoration => Wallmount}/wallmount.yml | 6 +- .../_CP14/Entities/Structures/crystal.yml | 119 ++++++++++++++++++ .../Species/Dwarf/displacement.rsi/pants.png | Bin 353 -> 350 bytes .../Species/Dwarf/displacement.rsi/shoes.png | Bin 260 -> 256 bytes .../Furniture/bonfire.rsi/full-0.png | Bin 0 -> 96 bytes .../bonfire.rsi/{full1.png => full-1.png} | Bin .../bonfire.rsi/{full2.png => full-2.png} | Bin .../Furniture/bonfire.rsi/meta.json | 7 +- .../wallmount_crystal.rsi/crystal1.png | Bin 0 -> 1007 bytes .../wallmount_crystal.rsi/crystal2.png | Bin 0 -> 1078 bytes .../wallmount_crystal.rsi/crystal3.png | Bin 0 -> 716 bytes .../Wallmount/wallmount_crystal.rsi/meta.json | 23 ++++ .../wallmount_decor.rsi/boards.png | Bin .../wallmount_decor.rsi/boards2.png | Bin .../wallmount_decor.rsi/boards3.png | Bin .../wallmount_decor.rsi/boards4.png | Bin .../wallmount_decor.rsi/meta.json | 0 .../wallmount_decor.rsi/vines.png | Bin .../wallmount_decor.rsi/web.png | Bin .../wallmount_decor.rsi/web2.png | Bin .../wallmount_decor.rsi/web3.png | Bin .../_CP14/Structures/crystal.rsi/big.png | Bin 0 -> 1040 bytes .../_CP14/Structures/crystal.rsi/medium.png | Bin 0 -> 921 bytes .../_CP14/Structures/crystal.rsi/meta.json | 23 ++++ .../_CP14/Structures/crystal.rsi/shard.png | Bin 0 -> 502 bytes .../_CP14/Structures/crystal.rsi/small.png | Bin 0 -> 596 bytes 38 files changed, 365 insertions(+), 94 deletions(-) delete mode 100644 Content.Server/_CP14/Temperature/Fireplace/CP14FireplaceFuelComponent.cs delete mode 100644 Resources/Locale/en-US/_CP14/fireplace/fireplace-component.ftl delete mode 100644 Resources/Locale/ru-RU/_CP14/fireplace/fireplace-component.ftl create mode 100644 Resources/Prototypes/_CP14/Entities/Structures/Wallmount/crystal.yml rename Resources/Prototypes/_CP14/Entities/Structures/{Decoration => Wallmount}/wallmount.yml (92%) create mode 100644 Resources/Prototypes/_CP14/Entities/Structures/crystal.yml create mode 100644 Resources/Textures/_CP14/Structures/Furniture/bonfire.rsi/full-0.png rename Resources/Textures/_CP14/Structures/Furniture/bonfire.rsi/{full1.png => full-1.png} (100%) rename Resources/Textures/_CP14/Structures/Furniture/bonfire.rsi/{full2.png => full-2.png} (100%) create mode 100644 Resources/Textures/_CP14/Structures/Wallmount/wallmount_crystal.rsi/crystal1.png create mode 100644 Resources/Textures/_CP14/Structures/Wallmount/wallmount_crystal.rsi/crystal2.png create mode 100644 Resources/Textures/_CP14/Structures/Wallmount/wallmount_crystal.rsi/crystal3.png create mode 100644 Resources/Textures/_CP14/Structures/Wallmount/wallmount_crystal.rsi/meta.json rename Resources/Textures/_CP14/Structures/{Decoration => Wallmount}/wallmount_decor.rsi/boards.png (100%) rename Resources/Textures/_CP14/Structures/{Decoration => Wallmount}/wallmount_decor.rsi/boards2.png (100%) rename Resources/Textures/_CP14/Structures/{Decoration => Wallmount}/wallmount_decor.rsi/boards3.png (100%) rename Resources/Textures/_CP14/Structures/{Decoration => Wallmount}/wallmount_decor.rsi/boards4.png (100%) rename Resources/Textures/_CP14/Structures/{Decoration => Wallmount}/wallmount_decor.rsi/meta.json (100%) rename Resources/Textures/_CP14/Structures/{Decoration => Wallmount}/wallmount_decor.rsi/vines.png (100%) rename Resources/Textures/_CP14/Structures/{Decoration => Wallmount}/wallmount_decor.rsi/web.png (100%) rename Resources/Textures/_CP14/Structures/{Decoration => Wallmount}/wallmount_decor.rsi/web2.png (100%) rename Resources/Textures/_CP14/Structures/{Decoration => Wallmount}/wallmount_decor.rsi/web3.png (100%) create mode 100644 Resources/Textures/_CP14/Structures/crystal.rsi/big.png create mode 100644 Resources/Textures/_CP14/Structures/crystal.rsi/medium.png create mode 100644 Resources/Textures/_CP14/Structures/crystal.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Structures/crystal.rsi/shard.png create mode 100644 Resources/Textures/_CP14/Structures/crystal.rsi/small.png diff --git a/Content.Server/Atmos/Components/FlammableComponent.cs b/Content.Server/Atmos/Components/FlammableComponent.cs index e00f5efbdc..b02109d433 100644 --- a/Content.Server/Atmos/Components/FlammableComponent.cs +++ b/Content.Server/Atmos/Components/FlammableComponent.cs @@ -77,5 +77,11 @@ namespace Content.Server.Atmos.Components /// [DataField, ViewVariables(VVAccess.ReadWrite)] public float FirestackFade = -0.1f; + + /// + /// CrystallPunk fireplace fuel + /// + [DataField] + public float CP14FireplaceFuel = 10f; } } diff --git a/Content.Server/Sprite/RandomSpriteSystem.cs b/Content.Server/Sprite/RandomSpriteSystem.cs index 7f81f4bdd4..17518b52bd 100644 --- a/Content.Server/Sprite/RandomSpriteSystem.cs +++ b/Content.Server/Sprite/RandomSpriteSystem.cs @@ -39,7 +39,7 @@ public sealed class RandomSpriteSystem: SharedRandomSpriteSystem component.Selected.EnsureCapacity(groups.Count); - Color? previousColor = null; + Color? previousColor = component.CP14InheritBaseColor; //CrystallPunk foreach (var group in groups) { diff --git a/Content.Server/_CP14/Temperature/Fireplace/CP14FireplaceComponent.cs b/Content.Server/_CP14/Temperature/Fireplace/CP14FireplaceComponent.cs index 54cc47b8b1..a8949a90fe 100644 --- a/Content.Server/_CP14/Temperature/Fireplace/CP14FireplaceComponent.cs +++ b/Content.Server/_CP14/Temperature/Fireplace/CP14FireplaceComponent.cs @@ -1,3 +1,5 @@ +using Robust.Shared.Audio; + namespace Content.Server._CP14.Temperature.Fireplace; /// @@ -7,6 +9,9 @@ namespace Content.Server._CP14.Temperature.Fireplace; [RegisterComponent, Access(typeof(CP14FireplaceSystem))] public sealed partial class CP14FireplaceComponent : Component { + [DataField] + public string ContainerId = "storagebase"; + /// /// The abstract amount of fuel that is used to keep a fire burning /// @@ -23,7 +28,7 @@ public sealed partial class CP14FireplaceComponent : Component /// current fuel quantity /// [DataField] - public float CurrentFuel; + public float CurrentFuel = 10f; /// /// how much fuel is wasted every "UpdateFrequency" @@ -34,18 +39,9 @@ public sealed partial class CP14FireplaceComponent : Component [DataField] public TimeSpan UpdateFrequency = TimeSpan.FromSeconds(2f); - /// - /// whether fuel can be added by hand - /// - [DataField] - public bool CanInsertByHand = true; - - /// - /// whether the fuel can be supplied by contact - /// - [DataField] - public bool CanInsertByCollide = false; - [DataField] public TimeSpan NextUpdateTime = TimeSpan.Zero; + + [DataField] + public SoundSpecifier InsertFuelSound = new SoundPathSpecifier("/Audio/_CP14/Items/campfire_whoosh.ogg"); } diff --git a/Content.Server/_CP14/Temperature/Fireplace/CP14FireplaceFuelComponent.cs b/Content.Server/_CP14/Temperature/Fireplace/CP14FireplaceFuelComponent.cs deleted file mode 100644 index 694eb46650..0000000000 --- a/Content.Server/_CP14/Temperature/Fireplace/CP14FireplaceFuelComponent.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Robust.Shared.Audio; - -namespace Content.Server._CP14.Temperature.Fireplace; - -/// -/// Allows this object to be used as fuel for a fireplace -/// - -[RegisterComponent, Access(typeof(CP14FireplaceSystem))] -public sealed partial class CP14FireplaceFuelComponent : Component -{ - /// - /// How much fuel will be added in fireplace - /// - [DataField] - public float Fuel = 10f; - - [DataField] - public SoundSpecifier InsertFuelSound = new SoundPathSpecifier("/Audio/_CP14/Items/campfire_whoosh.ogg"); -} diff --git a/Content.Server/_CP14/Temperature/Fireplace/CP14FireplaceSystem.cs b/Content.Server/_CP14/Temperature/Fireplace/CP14FireplaceSystem.cs index 5f3f57d7b1..d4f0e4a4dc 100644 --- a/Content.Server/_CP14/Temperature/Fireplace/CP14FireplaceSystem.cs +++ b/Content.Server/_CP14/Temperature/Fireplace/CP14FireplaceSystem.cs @@ -5,6 +5,7 @@ using Content.Shared._CP14.Temperature; using Content.Shared.Interaction; using Content.Shared.Throwing; using Robust.Server.Audio; +using Robust.Server.Containers; using Robust.Server.GameObjects; using Robust.Shared.Physics.Events; using Robust.Shared.Timing; @@ -15,6 +16,7 @@ public sealed partial class CP14FireplaceSystem : EntitySystem { [Dependency] private readonly AppearanceSystem _appearance = default!; [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly ContainerSystem _containerSystem = default!; [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly FlammableSystem _flammable = default!; [Dependency] private readonly PopupSystem _popupSystem = default!; @@ -24,9 +26,6 @@ public sealed partial class CP14FireplaceSystem : EntitySystem base.Initialize(); SubscribeLocalEvent(OnFireChanged); - - SubscribeLocalEvent(OnInteractUsing); - SubscribeLocalEvent(OnCollide); } private void OnFireChanged(Entity fireplace, ref OnFireChangedEvent args) @@ -38,47 +37,37 @@ public sealed partial class CP14FireplaceSystem : EntitySystem flammable.FirestackFade = 0; } - private void OnInteractUsing(Entity fireplace, ref InteractUsingEvent args) + private bool TryFoundFuelInStorage(Entity fireplace, out Entity? fuel) { - if (!fireplace.Comp.CanInsertByHand) - return; + fuel = null; + var container = _containerSystem.GetContainer(fireplace, fireplace.Comp.ContainerId); - if (!TryComp(args.Used, out var fuel)) - return; - - TryInsertFuel(fireplace, args.Used, fuel); - } - - private void OnCollide(Entity fireplace, ref StartCollideEvent args) - { - if (!fireplace.Comp.CanInsertByCollide) - return; - - if (!TryComp(args.OtherEntity, out var fuel)) - return; - - TryInsertFuel(fireplace, args.OtherEntity, fuel); - } - - private bool TryInsertFuel(Entity fireplace, EntityUid fuelUid, CP14FireplaceFuelComponent fuel) - { - if (fireplace.Comp.CurrentFuel > fireplace.Comp.MaxFuelLimit) - { - _popupSystem.PopupEntity(Loc.GetString("cp14-fireplace-full", ("target", fireplace)), fireplace); + if (container.ContainedEntities.Count == 0) return false; + + foreach (var ent in container.ContainedEntities) + { + if (!TryComp(ent, out var flammable)) + continue; + + fuel = new Entity(ent, flammable); + return true; } - if (!TryComp(fireplace, out var flammable)) - return false; + return false; + } - fireplace.Comp.CurrentFuel += fuel.Fuel; + private void ConsumeFuel(EntityUid uid, CP14FireplaceComponent component, Entity fuel) + { + if (!TryComp(uid, out var flammable)) + return; + + component.CurrentFuel += fuel.Comp.CP14FireplaceFuel; if (flammable.OnFire) - _audio.PlayPvs(fuel.InsertFuelSound, fireplace); + _audio.PlayPvs(component.InsertFuelSound, uid); - UpdateAppearance(fireplace, fireplace.Comp); - QueueDel(fuelUid); - return true; + QueueDel(fuel); } public override void Update(float frameTime) @@ -104,6 +93,9 @@ public sealed partial class CP14FireplaceSystem : EntitySystem } else { + if (TryFoundFuelInStorage(new Entity(uid, fireplace), out var fuel) && fuel != null) + ConsumeFuel(uid, fireplace, fuel.Value); + flammable.FirestackFade = -fireplace.FireFadeDelta; } } diff --git a/Content.Shared/Sprite/RandomSpriteComponent.cs b/Content.Shared/Sprite/RandomSpriteComponent.cs index 0e9133d1c8..548645e019 100644 --- a/Content.Shared/Sprite/RandomSpriteComponent.cs +++ b/Content.Shared/Sprite/RandomSpriteComponent.cs @@ -24,4 +24,10 @@ public sealed partial class RandomSpriteComponent : Component /// [ViewVariables(VVAccess.ReadWrite), DataField("selected")] public Dictionary Selected = new(); + + /// + /// CP14 Base Random Sprite color + /// + [DataField] + public Color CP14InheritBaseColor = Color.White; } diff --git a/Resources/Locale/en-US/_CP14/fireplace/fireplace-component.ftl b/Resources/Locale/en-US/_CP14/fireplace/fireplace-component.ftl deleted file mode 100644 index a34f452e8f..0000000000 --- a/Resources/Locale/en-US/_CP14/fireplace/fireplace-component.ftl +++ /dev/null @@ -1 +0,0 @@ -cp14-fireplace-full = There's no more room in {$target}! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/fireplace/fireplace-component.ftl b/Resources/Locale/ru-RU/_CP14/fireplace/fireplace-component.ftl deleted file mode 100644 index dc3b303c6d..0000000000 --- a/Resources/Locale/ru-RU/_CP14/fireplace/fireplace-component.ftl +++ /dev/null @@ -1 +0,0 @@ -cp14-fireplace-full = В {$target} больше ничего не влезет! \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml index 63e439bc1e..154bb89671 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml @@ -9,9 +9,9 @@ sprite: _CP14/Structures/Furniture/bonfire.rsi layers: - state: base - - state: full1 + - state: full-1 visible: false - map: ["fuel"] + - map: ["enum.StorageFillLayers.Fill"] - type: Construction graph: CP14Bonfire node: CP14Bonfire @@ -26,20 +26,12 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - - type: GenericVisualizer - visuals: - enum.FireplaceFuelVisuals.Status: - fuel: - Empty: { visible: false } - Medium: { visible: true, state: full1 } - Full: { visible: true, state: full2 } + - type: StorageFillVisualizer + maxFillLevels: 2 + fillBaseName: full - type: FireVisuals sprite: _CP14/Structures/Furniture/bonfire.rsi normalState: burning - -- type: entity - id: CP14Stick - parent: CP14Bucket - name: Stick!!! - components: - - type: CP14FireplaceFuel + - type: Storage + grid: + - 0,0,2,1 diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount_torch.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount_torch.yml index 78e9f5b40d..d15f8c0d07 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount_torch.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount_torch.yml @@ -56,7 +56,6 @@ - type: CP14Fireplace maxFuelLimit: 150 currentFuel: 150 - canInsertByHand: false - type: FireVisuals sprite: _CP14/Structures/Furniture/wallmount_torch.rsi normalState: fire diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/heater.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/heater.yml index 62fe322ed4..0272369135 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/heater.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/heater.yml @@ -43,6 +43,21 @@ - type: CP14FlammableEntityHeater - type: CP14FlammableSolutionHeater - type: CP14Fireplace + - type: ContainerContainer + containers: + storagebase: !type:Container + ents: [] + - type: Storage + maxItemSize: Normal + grid: + - 0,0,2,2 + blacklist: + components: + - IgnitionSource + - type: UserInterface + interfaces: + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: entity id: CP14AlchemyFurnaceDebug @@ -110,4 +125,7 @@ mask: - TableMask layer: - - TableLayer \ No newline at end of file + - TableLayer + - type: Storage + grid: + - 0,0,2,2 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Wallmount/crystal.yml b/Resources/Prototypes/_CP14/Entities/Structures/Wallmount/crystal.yml new file mode 100644 index 0000000000..58afd1c442 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Wallmount/crystal.yml @@ -0,0 +1,116 @@ +- type: entity + id: CP14WallmountCrystalBase + parent: + - BaseStructure + abstract: true + placement: + mode: SnapgridCenter + components: + - type: Sprite + drawdepth: Mobs + sprite: _CP14/Structures/Wallmount/wallmount_crystal.rsi + layers: + - state: crystal1 + map: ["random"] + shader: unshaded + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Glass + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "0.49,0.49,-0.49,0.36" + density: 60 + mask: + - MachineMask + layer: + - MidImpassable + - LowImpassable + - type: RandomSprite + available: + - random: + crystal1: Inherit + crystal2: Inherit + crystal3: Inherit + - type: PointLight + radius: 1.5 + energy: 1 + +- type: entity + id: CP14WallmountCrystalRubies + parent: CP14WallmountCrystalBase + name: sparkling rubies + description: wawa + components: + - type: RandomSprite + cP14InheritBaseColor: "#ff3d0b" + - type: PointLight + color: "#ff3d0b" + +- type: entity + id: CP14WallmountCrystalTopazes + parent: CP14WallmountCrystalBase + name: sparkling topazes + description: wawa + components: + - type: RandomSprite + cP14InheritBaseColor: "#ffe269" + - type: PointLight + color: "#ffe269" + +- type: entity + id: CP14WallmountCrystalEmeralds + parent: CP14WallmountCrystalBase + name: sparkling emeralds + description: wawa + components: + - type: RandomSprite + cP14InheritBaseColor: "#30be81" + - type: PointLight + color: "#30be81" + +- type: entity + id: CP14WallmountCrystalSapphires + parent: CP14WallmountCrystalBase + name: sparkling sapphires + description: wawa + components: + - type: RandomSprite + cP14InheritBaseColor: "#5eabeb" + - type: PointLight + color: "#5eabeb" + +- type: entity + id: CP14WallmountCrystalAmethysts + parent: CP14WallmountCrystalBase + name: sparkling amethysts + description: wawa + components: + - type: RandomSprite + cP14InheritBaseColor: "#a878d1" + - type: PointLight + color: "#a878d1" + +- type: entity + id: CP14WallmountCrystalDiamonds + parent: CP14WallmountCrystalBase + name: sparkling diamonds + description: wawa + components: + - type: RandomSprite + cP14InheritBaseColor: "#f8f8f8" + - type: PointLight + color: "#f8f8f8" \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Decoration/wallmount.yml b/Resources/Prototypes/_CP14/Entities/Structures/Wallmount/wallmount.yml similarity index 92% rename from Resources/Prototypes/_CP14/Entities/Structures/Decoration/wallmount.yml rename to Resources/Prototypes/_CP14/Entities/Structures/Wallmount/wallmount.yml index c626aad825..e8a2aeefc6 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Decoration/wallmount.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Wallmount/wallmount.yml @@ -10,7 +10,7 @@ components: - type: Sprite drawdepth: Mobs - sprite: _CP14/Structures/Decoration/wallmount_decor.rsi + sprite: _CP14/Structures/Wallmount/wallmount_decor.rsi layers: - state: boards map: ["random"] @@ -49,7 +49,7 @@ components: - type: Sprite drawdepth: Mobs - sprite: _CP14/Structures/Decoration/wallmount_decor.rsi + sprite: _CP14/Structures/Wallmount/wallmount_decor.rsi layers: - state: web map: ["random"] @@ -88,7 +88,7 @@ components: - type: Sprite drawdepth: Mobs - sprite: _CP14/Structures/Decoration/wallmount_decor.rsi + sprite: _CP14/Structures/Wallmount/wallmount_decor.rsi layers: - state: vines - type: Damageable diff --git a/Resources/Prototypes/_CP14/Entities/Structures/crystal.yml b/Resources/Prototypes/_CP14/Entities/Structures/crystal.yml new file mode 100644 index 0000000000..704cc54083 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/crystal.yml @@ -0,0 +1,119 @@ +- type: entity + id: CP14CrystalBase + abstract: true + parent: BaseStructure + components: + - type: Sprite + drawdepth: Mobs + sprite: _CP14/Structures/crystal.rsi + offset: 0, 0.25 + layers: + - state: big + map: ["random"] + shader: unshaded + noRot: true + - type: Physics + bodyType: Static + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Glass + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.45 + density: 60 + mask: + - MachineMask + layer: + - MidImpassable + - LowImpassable + - BulletImpassable + - Opaque + - type: RandomSprite + available: + - random: + big: Inherit + medium: Inherit + small: Inherit + - type: PointLight + radius: 2 + energy: 2 + +- type: entity + id: CP14CrystalRubies + parent: CP14CrystalBase + name: sparkling rubies + description: wawa + components: + - type: RandomSprite + cP14InheritBaseColor: "#ff3d0b" + - type: PointLight + color: "#ff3d0b" + +- type: entity + id: CP14CrystalTopazes + parent: CP14CrystalBase + name: sparkling topazes + description: wawa + components: + - type: RandomSprite + cP14InheritBaseColor: "#ffe269" + - type: PointLight + color: "#ffe269" + +- type: entity + id: CP14CrystalEmeralds + parent: CP14CrystalBase + name: sparkling emeralds + description: wawa + components: + - type: RandomSprite + cP14InheritBaseColor: "#30be81" + - type: PointLight + color: "#30be81" + +- type: entity + id: CP14CrystalSapphires + parent: CP14CrystalBase + name: sparkling sapphires + description: wawa + components: + - type: RandomSprite + cP14InheritBaseColor: "#5eabeb" + - type: PointLight + color: "#5eabeb" + +- type: entity + id: CP14CrystalAmethysts + parent: CP14CrystalBase + name: sparkling amethysts + description: wawa + components: + - type: RandomSprite + cP14InheritBaseColor: "#a878d1" + - type: PointLight + color: "#a878d1" + +- type: entity + id: CP14CrystalDiamonds + parent: CP14CrystalBase + name: sparkling diamonds + description: wawa + components: + - type: RandomSprite + cP14InheritBaseColor: "#f8f8f8" + - type: PointLight + color: "#f8f8f8" \ No newline at end of file diff --git a/Resources/Textures/_CP14/Mobs/Species/Dwarf/displacement.rsi/pants.png b/Resources/Textures/_CP14/Mobs/Species/Dwarf/displacement.rsi/pants.png index d20c20749ba4a90eae7a68938ff10555f8ceb9f3..525ab65c837b09e9cce7adfbb3cb80db7941196b 100644 GIT binary patch delta 37 rcmaFJbdPC*A)~}bBN0Z4mV`=%Uk9Xm5`5KuGXR07tDnm{r-UW|>iG;S delta 40 ucmcb|^pI(SA*1w0BN0aF43P%01(gg8SEVK>Z}4Mf00K`}KbLh*2~7a;o(pyW diff --git a/Resources/Textures/_CP14/Mobs/Species/Dwarf/displacement.rsi/shoes.png b/Resources/Textures/_CP14/Mobs/Species/Dwarf/displacement.rsi/shoes.png index ac527d95628e6c0f6320f6197f989da74bfcb3fc..bf1d5a2190957980e0448a78ba54d03ef4ed65ba 100644 GIT binary patch delta 36 qcmZo+YG9gR$hd2w(KZP|^XI&-ySVCv?6iUzfWXt$&t;ucLK6VWVG5W4 delta 40 vcmZo*YGImS$hdE!(KZ>@3rw?avsW+&9^+~`eWz$S0}yz+`njxgN@xNAB=!zN diff --git a/Resources/Textures/_CP14/Structures/Furniture/bonfire.rsi/full-0.png b/Resources/Textures/_CP14/Structures/Furniture/bonfire.rsi/full-0.png new file mode 100644 index 0000000000000000000000000000000000000000..7244b37f5c785d78eee7767f9a4aa6bef3263b07 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ql2i3ArY-_ n4>B?Wc})uc*XMaSfSB*u1QZw;-5D2j067evu6{1-oD!MgAGV-xtR*07>k44ofy`glX=O&z`WAa#WAE} z&fB{ObDIrB8XmI0;+VRlwA(|rNzuyDKT^TA_!L)cBWq3f6;=z@PU%VI3)-)p5O};q zkyG#A{@`0CoON|(Ds`nUKyw*(WUSr2wEy9}p!;)O151=%^EH_>Y!}HAP-hMhalLNR zE5paW@^#fGPQA>C6Em-{C%k&FNoVr5+`0V!yqkRl&L%r?x@kRnw{ThJlM0)zAg@n0 z{?GPZc>X-S-g-&T3*&@4&cFZK2@2lK+kWm?eDR0U*y{GnLcbVp*rrTLwanO)x#gv! z;KaiZ3%pA`p1&@=&GWL!WX+h+sU36D8h=*)vGV>D$9Ze-6DhTI zB4*+NdZn@Kg|9aMeHnB^PEBp<@|v2OjuQslQ-U1N{3)OMyz=|MfA^kN-pgETeZNM4 zDV^<%=Vf5nJpQPm^l!7vhOR{~wp_cbd+gN@9U-N3wjTZN^-rx_+m1;xTu=QNW$Sx) z$c>KJq4};6ItNc5fOtvqXNU5Vm=J#uJZrr+Truq_imGR@tMcRL1H}DcYIx|pJz5(<@BaH&$uTgvB`U! zQuROit>e~l&A!{4EwpOYr0dtipVulW<=*xJhFNi2P}T;oRCefhe`%62gIz>T%9c%8J*?mV^iE8D(V z?GKC(m@U7TuJnbK{qTHc=CHpU`>uGX5PyJ#%TS_w8+y+CJs#_g~xg*8lkY+j(hc*>d|cm27T$ z>nuAaJ%_b!so}SMhBth4mzlGbMK7*5pD|0?FqY@0^oFJT^nIhXtC_c5`MxwWJIyS? z+x1TTtZik6+a&#BI6UV#KG=Ie-%jw6u%ew{S4>YjL-Wy#9k=-y>@9fRYP33bzD02| bg96iiuAU#Px&@JU2LRCt{2-92urKokYw1M(6qO&7_jya9SIU>4$vDs?1MQ)LB6*#ZkN9g;Ud z1ri++d*Bt;5KJ%(JYptrzUt}48FMf5<1p6%5D^g(5s{9vEUTrDVNUj#7q2aNpd$fm z46;vW59mt5S`(u+1bpAGgOB5QmNzyfp+6E31Ob5W160A!6?n5v6Oz!|1Hv$@E|&}P zJO^+~f)HZzo0$-B+rtE?V9)0>03b;c2qEA&jy2_tnrA)FbHs6sEXyVx^qhVqAkT9I zK>#5HilTrJ0%@8e&vO(-G1y?=SylnRzrWY*FYQMHK0iM#0PsAo?(Sh2S^yxW96bA3 zmOV_u*VkA5?0Mjn%M1a;Co!Q&uG^f z_I+P_8B3DnVLPUKNnA%H4M7fH;qcbT!j-V5$*O=@kdkV z=IFD{wJRlrsDoFR?}x5NFWv*@ESzv0#}Y!+J5uNK`7SA47Eb`6S2&?NEQ+G2&wjJW zBM1U??Nk|&0G+~#zQT(p^}A~CLI?rR^8j?$I2bVp0KKK^-MW?u8s9@t!p@%96F|KF{xD{8tzP=(&Qv^YPIF5U(QKXcWPR)Yi zx^9)GDNd)8nLS`^amAS6f$;?)i(+vF5fKp)5fKp)5fKp)5fKp)5fKp)5fKqhV)PA9 ze~F6O-tspxuGed2Kl)bH+U@syYs~kNX|=XE0V?%ZXSbMydKFmuK$f=K>TR#HEJINg zuuXZ|%d@GQt7zYGX^plVJ5kf7KL>0vc*WS8s5}!B0L=R|$-hFyys4+ocEx6eVOR+v za5x+QVD(prR1)gH1(GDGgWr}c10Jkx*_OlP%dbk?@$K#Q!K>fHq6Q2M1 zEK*9#geTsbVa?0l5MC4oKMG^F)yY7`z4JT|r_*WKqgg-{MYvopOCJUi5iM`ip9EPX w#Ud#pA|fIpA|fIpA|fIpA|fIpA|hI;e}R?Jx)d6MMF0Q*07*qoM6N<$f++yo4gdfE literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Wallmount/wallmount_crystal.rsi/crystal3.png b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_crystal.rsi/crystal3.png new file mode 100644 index 0000000000000000000000000000000000000000..36e0bc53f044b772c095a36dbd1c9236af779bbd GIT binary patch literal 716 zcmeAS@N?(olHy`uVBq!ia0vp^4nTZ>gAGV-xtR*07>k44ofy`glX=O&z|`jH;uumf z=k49Sy{jEW+8!o95t^`~}R0f7M3t#WL_f3NB;4S|MkyhiQ-4PiL*P;#?+*$i~&+4Mg zu6m>2JON%`m2PJqdZo{J{mt_lgQX$&O?sbH>II6N{du9gat7mlpS%9`!mbmy$ZS}||>9X%fXU}`}YFAzLoSQ6{%}q0Bee<03<*?}D@+m>J zlT_-&_`#knIDgGINd2FAhOzMj7v?=Dc+MntPVW>pejx4rl+WyP!_qUe_#;kD+S%-T zwxN6{^W~VsYEmCG%RlICE_fgL?chqbJ-52&7qP!L;{I-zD!<0)ET7L=9Sc+DWhv}F z#@v3U2UM&LOgBFWVRku|&i?F_jzwZt*@3MJ-!f9z!S7_{Q$&q(YhZr#Ahm)3sx$7oL9TQM&LB&0qKL-3$#AH@mXeey(4Uh0L42V@zwm s=Gq1^e3*S*+$p8y1P3FE>l^G}iO*lLLhIA=>|Bt9r>mdKI;Vst03ixN9smFU literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Wallmount/wallmount_crystal.rsi/meta.json b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_crystal.rsi/meta.json new file mode 100644 index 0000000000..171e21682b --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_crystal.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "By TheShuEd", + "size": { + "x": 32, + "y": 96 + }, + "states": [ + { + "name": "crystal1", + "directions": 4 + }, + { + "name": "crystal2", + "directions": 4 + }, + { + "name": "crystal3", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/boards.png b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/boards.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/boards.png rename to Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/boards.png diff --git a/Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/boards2.png b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/boards2.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/boards2.png rename to Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/boards2.png diff --git a/Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/boards3.png b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/boards3.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/boards3.png rename to Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/boards3.png diff --git a/Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/boards4.png b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/boards4.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/boards4.png rename to Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/boards4.png diff --git a/Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/meta.json b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/meta.json similarity index 100% rename from Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/meta.json rename to Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/meta.json diff --git a/Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/vines.png b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/vines.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/vines.png rename to Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/vines.png diff --git a/Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/web.png b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/web.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/web.png rename to Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/web.png diff --git a/Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/web2.png b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/web2.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/web2.png rename to Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/web2.png diff --git a/Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/web3.png b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/web3.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Decoration/wallmount_decor.rsi/web3.png rename to Resources/Textures/_CP14/Structures/Wallmount/wallmount_decor.rsi/web3.png diff --git a/Resources/Textures/_CP14/Structures/crystal.rsi/big.png b/Resources/Textures/_CP14/Structures/crystal.rsi/big.png new file mode 100644 index 0000000000000000000000000000000000000000..91bbe51fb384947aa6479d1208f8f7318643ea13 GIT binary patch literal 1040 zcmV+r1n>KaP)vOMSXyXd zCH?~&E9-z=z(PgEKVWbPYREzm6bVLH5(EvJ7+En0+PK%uDZK{#E$?R4oAoKTCLVI*tY@V@i=*U zdIA9W{r7AN23wpcm&?pq#eq;L)Dk?IOxo7*^Yas$rlDT1v(gEI z0CNcffk0OPx81{PwTfb~2$#!+bUKZ-wKWn91}(uqK0cr*3i|r`plOhI%|(c zqgY;EhTH9iVHhm{H2M7eeCH#x8DMU1&N3jA$uNlKMfd*xj`j6*5JI4;YD-{RhFYyg z%vVPMs?pI=a2$tfwaNe#MFG&5eLkND0EnW9jg5^KIKSVITrLMe5Qr#>5Jj;!2Y`kP zp-_lHyu7>s02D<*I2^XDg~7o=h@yza#YOgPcz75W7Z)fL3IG6~&j-KXkIl_Z+wE!V z0EM6;gs_z^Ns^_n$KzqYIgUdrm4eIV!s_ZOd_EuY`8>9_w-JlQY#p%Oh7^M5d6GyZ zAW0G;kqCfBZ3BS-WLbv8;lSP99kaMpDq(7B3TJ0$czAeVv0||pR8>VXne6OS`GAo3VMwI1v9J*%QW;|<8XIioJ7QvtV&?`(1O*HPWZ&XsH}Zn#pje#3JK1Ds=9%Zd zW@hJE_|>m|^{a14Q53CMENVZItFM>IS65d(Lwp%PQ4~#8RR9D*AQFl61o0&RMNzc- z`}?;3ULe{4B9VwzDwVoUC`l5MB%vtEw;%>Ob;e>bN~Mx!u~-DXuhZ%!Ng@~we#h5P z+YVe_UbaAd95b8Eh@yzqY6Tz|43bPHe-_~4;sTS&gvn$g7K`!v`f5N}tyWZ3C6!A3 zhKz|PK&2B4}cxm*r__xE=+t@l#U@fL`ph}Y`{AP@*}c6Qbl z^YZdSqtT$*Z1x1w2B6<@Q4|RT0)#>#o}ZsvVm3E7Sy@@3TCGwn7I}PpY)kC-`?XT3 z)bex%;BvW8RTWiL2?m1{3I$^2$jL9dNtdg3ILsV0?W1(}~4mkxVAT-rkCb81OcDV$HBotcK|ws z!{KOwNTpKP?RN6{JhCjKk7qI&*4EaHx&8h9MsWhz+S+1iY3b92v=pLnIIQVkKEU?& zHi<-{<3w4OIXXIOJO5}jN;DcZz~|=XczSvw9*=j-)BmxN&*#@|HXEv{VzpXXTwLVj zg?9VD zjzE@Wd_Eu7*Vn}3apLi~vDLaf9uH$c_jjTNb#SLPi7Ize>O{{B9dO2ugFKd8ycNp5a#x-$P1;3LGxGMq}K zT4GEllkpx7hp|{J+}+&~3Wd5d|5pGVqS0tjE|(b^8u~Qu@bD0TY&OgJ`FYpo09^$; voz9MRd}L&Vx3@Qjhld#)9Q@MC|2O&r!(Nc&_A9!J00000NkvXXu0mjfeT=I_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/crystal.rsi/meta.json b/Resources/Textures/_CP14/Structures/crystal.rsi/meta.json new file mode 100644 index 0000000000..d551c51028 --- /dev/null +++ b/Resources/Textures/_CP14/Structures/crystal.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "by malanisa (discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "big" + }, + { + "name": "medium" + }, + { + "name": "small" + }, + { + "name": "shard" + } + ] +} diff --git a/Resources/Textures/_CP14/Structures/crystal.rsi/shard.png b/Resources/Textures/_CP14/Structures/crystal.rsi/shard.png new file mode 100644 index 0000000000000000000000000000000000000000..8472dc5d82c0634d006f6bf2128984cbe6d53326 GIT binary patch literal 502 zcmVX~fpfSMn9?v=Mv* zA3$OrK*dHuQBWibY9Znuf>;F9I9u()R%`UP+ibpan7QZ9<;)rI@$vEb-wAw0kw&8- zOQjNyu0`K4BqXufVnmnCOsHzHpqA35afm*F59mnDEc;LD& zo6QE(G_foTRaFr}{JjRM)vCN)E(C)?gb?Vuj%k`~w_D=zIEtb$9*-~TCGSV5`@EH#^W))UhgGi1igyew$1&1ClZNJC=_V7+bk9fG)+TQ zRYs!`-EQ|~SH8TlTrNuh+qOxiQs}ylVHhlzOS0K4(P)%Tr{hT+JWOD{UK5MO&@>HQ z*J-s{Os7+l$t0mr=q+*ZV8Z==4?rf9!7vQw^Ev5sn(Ot7Wm)w5{kOuv^DC&=>)dWP zgbdW@N=lmGw#07*qoM6N<$f{3o>c>n+a literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/crystal.rsi/small.png b/Resources/Textures/_CP14/Structures/crystal.rsi/small.png new file mode 100644 index 0000000000000000000000000000000000000000..47ed9451b541b9682aadc67c9661f8f91ae5fe35 GIT binary patch literal 596 zcmV-a0;~OrP)u@jRfegua&i6jw;SdN3 z2?+@a2?_Zh(KJoW=W}t0UPphk`4AGm0>k0((+M?A6a9Xl#bR*~310yrgl}_A(?lc^ z0l+YfgGl%aSeC_XHuG)X>-7LoRTaZ9m`o;K?f(8=%;)pH=SKqNa+yx2!*n|RAR)^# zsZ`37czu24`T3cPiwp7c^1@&+U@#a2<$C=3tPqdK>2|xM(`jO{81;Hxj7B2>+U+*3 z>jIESBse;HpTn{&E-xuZX|B85W1tFKloHk%Eu>*6@hhy9M@P^;B`CXmbJ_9Or= z{O0Bcfc1KfVHl*-X--d1DV0h9oS&Z~NfPyXol2z=2@>$V1NnSD(rh+`uIqc>tJNyD zZ3FP|@Zg04JUu-D?~^wgjW2}*{BhAv!Zb|)GMNmvZF}#ks?u(^NhXt=ot+_spw()9 zIUE9h#rb?blFQ{#6eX~c5Q4kAyKjXxLMg5x->Rx1Fa(J0I1lH=oJ iBuS!Lt$r)~pWqE4Y7N#RBUEt!0000