Skip to content
This repository has been archived by the owner on Sep 16, 2023. It is now read-only.

New PR #11

Merged
merged 2 commits into from
Jan 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CursedMod/CursedMod.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
<Compile Include="EntryPoint.cs" />
<Compile Include="Events\Handlers\MapGenerationEventHandler.cs" />
<Compile Include="Features\Enums\AuthenticationType.cs" />
<Compile Include="Features\Enums\LockerType.cs" />
<Compile Include="Features\Enums\EnvironmentalHazardType.cs" />
<Compile Include="Features\Enums\ShootingTargetType.cs" />
<Compile Include="Features\Wrappers\AdminToys\CursedAdminToy.cs" />
Expand All @@ -81,6 +82,7 @@
<Compile Include="Features\Wrappers\Facility\PocketDimension\CursedPocketDimensionExit.cs" />
<Compile Include="Features\Wrappers\Facility\Props\CursedBreakableWindow.cs" />
<Compile Include="Features\Wrappers\Facility\Props\CursedGenerator.cs" />
<Compile Include="Features\Wrappers\Facility\Props\CursedLocker.cs" />
<Compile Include="Features\Wrappers\Facility\Props\CursedLockerChamber.cs" />
<Compile Include="Features\Wrappers\Facility\Props\CursedTeslaGate.cs" />
<Compile Include="Features\Wrappers\Facility\Rooms\Cursed079Camera.cs" />
Expand Down
18 changes: 18 additions & 0 deletions CursedMod/Features/Enums/LockerType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
namespace CursedMod.Features.Enums;

public enum LockerType
{
RegularMedkit,
AdrenalinMedKit,
LargeGun,
RifleRack,
Misc,
Scp018Pedestal,
Scp207Pedestal,
Scp244Pedestal,
Scp268Pedestal,
Scp500Pedestal,
Scp1853Pedestal,
Scp2176Pedestal,
Scp1576Pedestal
}
27 changes: 27 additions & 0 deletions CursedMod/Features/Wrappers/CursedPrefabManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using AdminToys;
using CursedMod.Features.Enums;
using Interactables.Interobjects.DoorUtils;
using MapGeneration;
using Mirror;
Expand All @@ -20,6 +21,7 @@ public static class CursedPrefabManager
private static DoorVariant _lczDoor;
private static DoorVariant _hczDoor;
private static DoorVariant _ezDoor;
private static Dictionary<LockerType, GameObject> _lockers;

public static PrimitiveObjectToy PrimitiveObject
{
Expand Down Expand Up @@ -159,4 +161,29 @@ public static DoorVariant EzDoor
return door;
}
}

public static Dictionary<LockerType, GameObject> Lockers
{
get
{
if (_lockers is not null)
return _lockers;

_lockers.Add(LockerType.RegularMedkit, NetworkClient.prefabs.Values.First(x => x.name == "RegularMedkitStructure"));
_lockers.Add(LockerType.AdrenalinMedKit, NetworkClient.prefabs.Values.First(x => x.name == "AdrenalineMedkitStructure"));
_lockers.Add(LockerType.LargeGun, NetworkClient.prefabs.Values.First(x => x.name == "LargeGunLockerStructure"));
_lockers.Add(LockerType.RifleRack, NetworkClient.prefabs.Values.First(x => x.name == "RifleRackStructure"));
_lockers.Add(LockerType.Misc, NetworkClient.prefabs.Values.First(x => x.name == "MiscLocker"));
_lockers.Add(LockerType.Scp018Pedestal, NetworkClient.prefabs.Values.First(x => x.name == "Scp018PedestalStructure Variant"));
_lockers.Add(LockerType.Scp207Pedestal, NetworkClient.prefabs.Values.First(x => x.name == "Scp207PedestalStructure Variant"));
_lockers.Add(LockerType.Scp244Pedestal, NetworkClient.prefabs.Values.First(x => x.name == "Scp244PedestalStructure Variant"));
_lockers.Add(LockerType.Scp268Pedestal, NetworkClient.prefabs.Values.First(x => x.name == "Scp268PedestalStructure Variant"));
_lockers.Add(LockerType.Scp500Pedestal, NetworkClient.prefabs.Values.First(x => x.name == "Scp500PedestalStructure Variant"));
_lockers.Add(LockerType.Scp1853Pedestal, NetworkClient.prefabs.Values.First(x => x.name == "Scp1853PedestalStructure Variant"));
_lockers.Add(LockerType.Scp2176Pedestal, NetworkClient.prefabs.Values.First(x => x.name == "Scp2176PedestalStructure Variant"));
_lockers.Add(LockerType.Scp1576Pedestal, NetworkClient.prefabs.Values.First(x => x.name == "Scp1576PedestalStructure Variant"));

return _lockers;
}
}
}
55 changes: 55 additions & 0 deletions CursedMod/Features/Wrappers/Facility/Props/CursedLocker.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
using CursedMod.Features.Enums;
using MapGeneration.Distributors;
using Mirror;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using Object = UnityEngine.Object;

namespace CursedMod.Features.Wrappers.Facility.Props;

public class CursedLocker
{
public Locker Base { get; }

public CursedLocker(Locker locker)
{
Base = locker;

List<CursedLockerChamber> chamberList = new List<CursedLockerChamber>();
foreach (var chamber in Base.Chambers)
chamberList.Add(new CursedLockerChamber(chamber));

Chambers = chamberList.ToArray();
}

public CursedLockerChamber[] Chambers { get; }

public Vector3 Position
{
get => Base.transform.position;
set => Base.transform.position = value;
}

public Quaternion Rotation
{
get => Base.transform.rotation;
set => Base.transform.rotation = value;
}

public Vector3 Scale
{
get => Base.transform.localScale;
set => Base.transform.localScale = value;
}

public CursedLocker Create(LockerType lockerType, Vector3 position, Vector3 rotation, Vector3 scale)
{
GameObject prefab = Object.Instantiate(CursedPrefabManager.Lockers[lockerType], position, Quaternion.Euler(rotation));

prefab.transform.localScale = scale;

NetworkServer.Spawn(prefab);
return new CursedLocker(prefab.GetComponent<Locker>());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ public class CursedLockerChamber
{
public LockerChamber Base { get; }

public CursedLockerChamber(LockerChamber locker)
public CursedLockerChamber(LockerChamber lockerChamber)
{
Base = locker;
Base = lockerChamber;
}

public bool IsOpen
Expand Down