Hyperlink law book

This commit is contained in:
VigersRay 2024-06-01 09:45:12 +03:00
parent 461286522a
commit e27ff1e186
12 changed files with 128 additions and 2 deletions

View file

@ -0,0 +1,21 @@
// Inspired by Nyanotrasen
using Content.Shared.HyperLink;
using Robust.Client.UserInterface;
namespace Content.Client.HyperLink;
public sealed class HyperLinkSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeNetworkEvent<OpenURLEvent>(OnOpenURL);
}
private void OnOpenURL(OpenURLEvent args)
{
var uriOpener = IoCManager.Resolve<IUriOpener>();
uriOpener.OpenUri(args.URL);
}
}

View file

@ -0,0 +1,11 @@
// Inspired by Nyanotrasen
namespace Content.Server.HyperLink;
[RegisterComponent]
public sealed partial class HyperLinkComponent : Component
{
[DataField("url")]
[ViewVariables(VVAccess.ReadWrite)]
public string URL = string.Empty;
}

View file

@ -0,0 +1,30 @@
// Inspired by Nyanotrasen
using Robust.Shared.Player;
using Content.Shared.Interaction;
using Content.Shared.HyperLink;
namespace Content.Server.HyperLink;
public sealed class HyperLinkSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<HyperLinkComponent, ActivateInWorldEvent>(OnActivate);
}
private void OnActivate(EntityUid uid, HyperLinkComponent component, ActivateInWorldEvent args)
{
if (!TryComp<ActorComponent>(args.User, out var actor))
return;
OpenURL(actor.PlayerSession, component.URL);
}
public void OpenURL(ICommonSession session, string url)
{
var ev = new OpenURLEvent(url);
RaiseNetworkEvent(ev, session.Channel);
}
}

View file

@ -0,0 +1,15 @@
// Inspired by Nyanotrasen
using Robust.Shared.Serialization;
namespace Content.Shared.HyperLink;
[Serializable, NetSerializable]
public sealed class OpenURLEvent : EntityEventArgs
{
public string URL { get; }
public OpenURLEvent(string url)
{
URL = url;
}
}

View file

@ -16,6 +16,8 @@ ent-BookScientistsGuidebook = Справочник учёного
.desc = Путеводитель по миру науки, подготовленный Nanotrasen.
ent-BookSecurity = Безопасность 101
.desc = Книга о безопасности на станции, подготовленная Nanotrasen. Книга испачкана кровью. Похоже, что её больше использовали как оружие, чем как учебное пособие.
ent-HyperLinkBookCorporateLaw = Корпоративный Закон
.desc = Корпоративный закон (КЗ) — свод требований корпорации NanoTrasen ко всем разумным существам на территории объектов корпорации.
ent-BookHowToKeepStationClean = Как поддерживать чистоту на станции
.desc = Эта книга очень аккуратная.
ent-BookHowToRockAndStone = Пособие по камням и скалам

View file

@ -23,6 +23,8 @@
orGroup: BookPool
- id: BookScientistsGuidebook
orGroup: BookPool
- id: HyperLinkBookCorporateLaw # Sunrise-edit
orGroup: BookPool
- id: BookSecurity
orGroup: BookPool
- id: BookHowToKeepStationClean

View file

@ -18,7 +18,7 @@
storage:
back:
- PlushieLizard
- type: loadout
id: PlushieSpaceLizard
equipment: PlushieSpaceLizard

View file

@ -5,6 +5,7 @@
minLimit: 0
maxLimit: 3
loadouts:
- CorporateLaw # Sunrise-edit
- PlushieLizard
- PlushieSpaceLizard
- Lighter

View file

@ -36,4 +36,4 @@
ears: ClothingHeadsetSecurity
belt: ClothingBeltSecurityFilled
pocket1: WeaponPistolMk58
pocket2: BookSecurity
pocket2: HyperLinkBookCorporateLaw # Sunrise-edit

View file

@ -0,0 +1,34 @@
# Inspired by Nyanotrasen
- type: entity
parent: BaseItem
id: BaseHyperLinkBook
abstract: true
components:
- type: Sprite
sprite: Objects/Misc/books.rsi
- type: Tag
tags:
- Book
- type: StaticPrice
price: 35
- type: entity
parent: BaseHyperLinkBook
id: HyperLinkBookCorporateLaw
name: corporate law
description: A book of complicated laws for shitsec on station.
components:
- type: Sprite
sprite: Objects/Misc/books.rsi
layers:
- state: paper
- state: cover_base
color: "#ab1515"
- state: icon_law
color: "#fff300"
- type: HyperLink
url: https://sunrise14.top/wiki/index.php?title=%D0%9A%D0%BE%D1%80%D0%BF%D0%BE%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%97%D0%B0%D0%BA%D0%BE%D0%BD&oldid=6988#%D0%A1%D1%82%D0%B5%D0%BF%D0%B5%D0%BD%D0%B8_%D1%82%D1%8F%D0%B6%D0%B5%D1%81%D1%82%D0%B8_%D0%BD%D0%B0%D1%80%D1%83%D1%88%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D1%81%D0%BE%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B8%D0%B5_%D0%BD%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0%D0%BD%D0%B8%D1%8F
- type: Tag
tags:
- Book

View file

@ -0,0 +1,9 @@
- type: loadout
id: CorporateLaw
equipment: CorporateLaw
- type: startingGear
id: CorporateLaw
storage:
pocket2:
- HyperLinkBookCorporateLaw

View file

@ -33,5 +33,6 @@
id: IAAPDA
eyes: ClothingEyesGlassesSunglasses
ears: ClothingHeadsetIAA
pocket2: HyperLinkBookCorporateLaw
inhand:
- BriefcaseIAAFilled