Some round beginning preparation (#317)

* gamepresets filter

* addgamerule cp14 filter

* shuttle dropping

* long time FTL

* FTL map tweaks

* Update ShuttleSystem.FasterThanLight.cs

* handle player ship spawning (not tested yet)

* typo

* test elemental shit (ship)

* player spawn handling (real this time)

* FTL map gravity

* clean up 1

* clean up 2

* instant FTL

* Update CP14ExpeditionSystem.cs
This commit is contained in:
Ed
2024-07-08 17:39:04 +03:00
committed by GitHub
parent 451d04d759
commit f42546e0c6
21 changed files with 979 additions and 744 deletions

View File

@@ -46,6 +46,11 @@ namespace Content.Server.GameTicking.Commands
var options = new List<string>();
foreach (var preset in gamePresets)
{
//CP14 console preset filter
if (!preset.CP14Allowed)
continue;
//CP14 console preset filter end
options.Add(preset.ID);
options.AddRange(preset.Alias);
}

View File

@@ -297,8 +297,13 @@ public sealed partial class GameTicker
if (proto.Abstract)
continue;
if (proto.HasComponent<GameRuleComponent>())
yield return proto;
if (proto.TryGetComponent<GameRuleComponent>(out var rule))
{
//CP14 gamerule console filter
if (rule.CP14Allowed)
yield return proto;
//CP14 gamerule console filter end
}
}
}

View File

@@ -42,5 +42,11 @@ namespace Content.Server.GameTicking.Presets
/// </summary>
[DataField("supportedMaps", customTypeSerializer: typeof(PrototypeIdSerializer<GameMapPoolPrototype>))]
public string? MapPool;
/// <summary>
/// filters the displayed events in the console
/// </summary>
[DataField]
public bool CP14Allowed = false;
}
}

View File

@@ -4,11 +4,13 @@ using System.Numerics;
using Content.Server.Shuttles.Components;
using Content.Server.Shuttles.Events;
using Content.Server.Station.Events;
using Content.Shared.Atmos;
using Content.Shared.Body.Components;
using Content.Shared.Buckle.Components;
using Content.Shared.CCVar;
using Content.Shared.Database;
using Content.Shared.Ghost;
using Content.Shared.Gravity;
using Content.Shared.Maps;
using Content.Shared.Parallax;
using Content.Shared.Shuttles.Components;
@@ -144,6 +146,23 @@ public sealed partial class ShuttleSystem
var parallax = EnsureComp<ParallaxComponent>(mapUid);
parallax.Parallax = ftlMap.Parallax;
//CP14 FTL map tweaks
var mapLight = EnsureComp<MapLightComponent>(mapUid);
mapLight.AmbientLightColor = ftlMap.AmbientColor;
var moles = new float[Atmospherics.AdjustedNumberOfGases];
moles[(int) Gas.Oxygen] = 21.824779f;
moles[(int) Gas.Nitrogen] = 82.10312f;
var mixture = new GasMixture(moles, Atmospherics.T20C);
_atmos.SetMapAtmosphere(mapUid, false, mixture);
var gravity = EnsureComp<GravityComponent>(mapUid);
gravity.Enabled = true;
gravity.Inherent = true;
//CP14 FTL map tweaks ends
return mapUid;
}

View File

@@ -1,4 +1,5 @@
using Content.Server.Administration.Logs;
using Content.Server.Atmos.EntitySystems;
using Content.Server.Body.Systems;
using Content.Server.Doors.Systems;
using Content.Server.Parallax;
@@ -57,6 +58,7 @@ public sealed partial class ShuttleSystem : SharedShuttleSystem
[Dependency] private readonly ThrowingSystem _throwing = default!;
[Dependency] private readonly ThrusterSystem _thruster = default!;
[Dependency] private readonly UserInterfaceSystem _uiSystem = default!;
[Dependency] private readonly AtmosphereSystem _atmos = default!; //CP14 FTL atmos
public const float TileMassMultiplier = 0.5f;

View File

@@ -1,4 +1,5 @@
using System.Linq;
using Content.Server._CP14.Shuttles;
using Content.Server.Access.Systems;
using Content.Server.DetailExaminable;
using Content.Server.Humanoid;
@@ -45,6 +46,7 @@ public sealed class StationSpawningSystem : SharedStationSpawningSystem
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly ActorSystem _actors = default!;
[Dependency] private readonly ArrivalsSystem _arrivalsSystem = default!;
[Dependency] private readonly CP14ExpeditionSystem _CP14expedition = default!;
[Dependency] private readonly ContainerSpawnPointSystem _containerSpawnPointSystem = default!;
[Dependency] private readonly HumanoidAppearanceSystem _humanoidSystem = default!;
[Dependency] private readonly IdCardSystem _cardSystem = default!;
@@ -65,7 +67,7 @@ public sealed class StationSpawningSystem : SharedStationSpawningSystem
_spawnerCallbacks = new Dictionary<SpawnPriorityPreference, Action<PlayerSpawningEvent>>()
{
{ SpawnPriorityPreference.Arrivals, _arrivalsSystem.HandlePlayerSpawning },
{ SpawnPriorityPreference.Arrivals, _CP14expedition.HandlePlayerSpawning }, //CP14 expedition system replaced
{
SpawnPriorityPreference.Cryosleep, ev =>
{

View File

@@ -0,0 +1,134 @@
using Content.Server._CP14.Shuttles.Components;
using Content.Server.Shuttles.Components;
using Content.Server.Shuttles.Events;
using Content.Server.Shuttles.Systems;
using Content.Server.Spawners.Components;
using Content.Server.Station.Events;
using Content.Server.Station.Systems;
using Content.Shared.CCVar;
using Content.Shared.Movement.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Configuration;
using Robust.Shared.Map;
using Robust.Shared.Random;
namespace Content.Server._CP14.Shuttles;
public sealed class CP14ExpeditionSystem : EntitySystem
{
[Dependency] private readonly IConfigurationManager _cfgManager = default!;
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly MapLoaderSystem _loader = default!;
[Dependency] private readonly SharedTransformSystem _transform = default!;
[Dependency] private readonly ShuttleSystem _shuttles = default!;
[Dependency] private readonly StationSpawningSystem _stationSpawning = default!;
/// <summary>
/// Flags if all players must arrive via the Arrivals system, or if they can spawn in other ways.
/// </summary>
public float ArrivalTime { get; private set; }
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<CP14StationExpeditionTargetComponent, StationPostInitEvent>(OnPostInitSetupExpeditionShip);
SubscribeLocalEvent<CP14StationExpeditionTargetComponent, FTLCompletedEvent>(OnArrivalsDocked);
ArrivalTime = _cfgManager.GetCVar(CCVars.CP14ExpeditionArrivalTime);
}
private void OnPostInitSetupExpeditionShip(Entity<CP14StationExpeditionTargetComponent> station, ref StationPostInitEvent args)
{
if (!Deleted(station.Comp.Shuttle))
return;
var dummyMap = _mapManager.CreateMap();
if (_loader.TryLoad(dummyMap, station.Comp.ShuttlePath.ToString(), out var shuttleUids))
{
var shuttle = shuttleUids[0];
station.Comp.Shuttle = shuttle;
var shuttleComp = Comp<ShuttleComponent>(station.Comp.Shuttle);
var expeditionShipComp = EnsureComp<CP14ExpeditionShipComponent>(station.Comp.Shuttle);
expeditionShipComp.Station = station;
var targetPoints = new List<EntityUid>();
var targetEnumerator = EntityQueryEnumerator<CP14ExpeditionShipFTLTargetComponent, TransformComponent>();
while (targetEnumerator.MoveNext(out var uid, out _, out _))
{
targetPoints.Add(uid);
}
var target = _random.Pick(targetPoints);
if (!HasComp<TransformComponent>(shuttle))
return;
var targetPos = _transform.GetWorldPosition(target);
var mapUid = _transform.GetMap(target);
if (mapUid == null)
return;
_shuttles.FTLToCoordinates(shuttle, shuttleComp, new EntityCoordinates(mapUid.Value, targetPos), Angle.Zero, hyperspaceTime: ArrivalTime, startupTime: 0.5f);
}
}
private void OnArrivalsDocked(Entity<CP14StationExpeditionTargetComponent> ent, ref FTLCompletedEvent args)
{
//Some announsement logic?
}
private bool TryGetExpeditionShip(out EntityUid uid)
{
var arrivalsQuery = EntityQueryEnumerator<CP14ExpeditionShipComponent>();
while (arrivalsQuery.MoveNext(out uid, out _))
{
return true;
}
return false;
}
public void HandlePlayerSpawning(PlayerSpawningEvent ev)
{
if (ev.SpawnResult != null)
return;
if (!HasComp<CP14StationExpeditionTargetComponent>(ev.Station))
return;
TryGetExpeditionShip(out var ship);
if (!TryComp(ship, out TransformComponent? shipXform))
return;
var gridUid = shipXform.GridUid;
var points = EntityQueryEnumerator<SpawnPointComponent, TransformComponent>();
var possiblePositions = new List<EntityCoordinates>();
while (points.MoveNext(out var uid, out var spawnPoint, out var xform))
{
if (spawnPoint.SpawnType != SpawnPointType.LateJoin || xform.GridUid != gridUid)
continue;
possiblePositions.Add(xform.Coordinates);
}
if (possiblePositions.Count <= 0)
return;
var spawnLoc = _random.Pick(possiblePositions);
ev.SpawnResult = _stationSpawning.SpawnPlayerMob(
spawnLoc,
ev.Job,
ev.HumanoidCharacterProfile,
ev.Station);
EnsureComp<PendingClockInComponent>(ev.SpawnResult.Value);
EnsureComp<AutoOrientComponent>(ev.SpawnResult.Value);
}
}

View File

@@ -0,0 +1,9 @@
namespace Content.Server._CP14.Shuttles.Components;
[RegisterComponent, Access(typeof(CP14ExpeditionSystem)), AutoGenerateComponentPause]
public sealed partial class CP14ExpeditionShipComponent : Component
{
[DataField]
public EntityUid Station;
}

View File

@@ -0,0 +1,9 @@
namespace Content.Server._CP14.Shuttles.Components;
/// <summary>
/// One of the possible points where an elemental ship might land at the start of a round
/// </summary>
[RegisterComponent, Access(typeof(CP14ExpeditionSystem))]
public sealed partial class CP14ExpeditionShipFTLTargetComponent : Component
{
}

View File

@@ -0,0 +1,15 @@
using Robust.Shared.Utility;
namespace Content.Server._CP14.Shuttles.Components;
/// <summary>
/// Added to a station to start the round with an elemental ship arriving on this map
/// </summary>
[RegisterComponent, Access(typeof(CP14ExpeditionSystem))]
public sealed partial class CP14StationExpeditionTargetComponent : Component
{
[DataField]
public EntityUid Shuttle;
[DataField] public ResPath ShuttlePath = new("/Maps/Shuttles/arrivals.yml");
}

View File

@@ -10,6 +10,13 @@ namespace Content.Shared.CCVar
[CVarDefs]
public sealed class CCVars : CVars
{
#region CP14
public static readonly CVarDef<float> CP14ExpeditionArrivalTime =
CVarDef.Create("cp14.arrival_time", 60f, CVar.SERVERONLY);
#endregion
/*
* Server
*/

View File

@@ -35,6 +35,9 @@ public sealed partial class GameRuleComponent : Component
/// </summary>
[DataField]
public MinMax? Delay;
[DataField]
public bool CP14Allowed = false;
}
/// <summary>

View File

@@ -18,7 +18,13 @@ public sealed partial class FTLMapComponent : Component
/// What parallax to use for the background, immediately gets deffered to ParallaxComponent.
/// </summary>
[DataField]
public string Parallax = "FastSpace";
public string Parallax = "Sky"; //CP14 parallax replacement
/// <summary>
/// CP14 FTL map ambient color
/// </summary>
[DataField]
public Color AmbientColor = new(34, 90, 122);
/// <summary>
/// Can FTL on this map only be done to beacons.

View File

@@ -0,0 +1,429 @@
meta:
format: 6
postmapinit: false
tilemap:
0: Space
31: CP14FloorOakWoodPlanks
32: CP14FloorOakWoodPlanksBig
35: CP14FloorOakWoodPlanksCruciform
entities:
- proto: ""
entities:
- uid: 1
components:
- type: MetaData
name: grid
- type: Transform
pos: -0.4375,-0.484375
parent: invalid
- type: MapGrid
chunks:
0,0:
ind: 0,0
tiles: HwAAAAAAHwAAAAADIAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAADIAAAAAABIAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
-1,0:
ind: -1,0
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAABHwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAACIAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
-1,-1:
ind: -1,-1
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAADIAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAACIwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAABIwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAABHwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAHwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAACHwAAAAAA
version: 6
0,-1:
ind: 0,-1
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAADIAAAAAAAIAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAADIwAAAAABIAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAADIAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAABHwAAAAAAIAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAAAHwAAAAADIAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAAAHwAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
- type: Broadphase
- type: Physics
bodyStatus: InAir
angularDamping: 0.05
linearDamping: 0.05
fixedRotation: False
bodyType: Dynamic
- type: Fixtures
fixtures: {}
- type: OccluderTree
- type: SpreaderGrid
- type: Shuttle
- type: GridPathfinding
- type: Gravity
gravityShakeSound: !type:SoundPathSpecifier
path: /Audio/Effects/alert.ogg
- type: DecalGrid
chunkCollection:
version: 2
nodes: []
- type: GridAtmosphere
version: 2
data:
tiles:
0,0:
0: 4983
0,-1:
0: 30467
-1,0:
0: 2252
-1,-1:
0: 52232
-1,-2:
0: 32768
0,-2:
0: 12288
uniqueMixes:
- volume: 2500
temperature: 293.15
moles:
- 21.824879
- 82.10312
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
chunkSize: 4
- type: GasTileOverlay
- type: RadiationGridResistance
- proto: CP14ChairWooden
entities:
- uid: 40
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 0.43741006,-4.2788563
parent: 1
- proto: CP14CrystalSapphiresBig
entities:
- uid: 26
components:
- type: Transform
pos: 0.53494745,3.4039721
parent: 1
- proto: CP14FenceWoodSmallCorner
entities:
- uid: 20
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 2.5,1.5
parent: 1
- uid: 21
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 1.5,2.5
parent: 1
- uid: 22
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -1.5,1.5
parent: 1
- uid: 23
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -0.5,2.5
parent: 1
- uid: 24
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 1.5,1.5
parent: 1
- uid: 25
components:
- type: Transform
pos: -0.5,1.5
parent: 1
- proto: CP14FenceWoodSmallGate
entities:
- uid: 27
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -1.5,-0.5
parent: 1
- uid: 28
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 2.5,-0.5
parent: 1
- proto: CP14FenceWoodSmallStraight
entities:
- uid: 16
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -1.5,-1.5
parent: 1
- uid: 17
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -1.5,0.5
parent: 1
- uid: 18
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 2.5,-1.5
parent: 1
- uid: 19
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 2.5,0.5
parent: 1
- proto: CP14RandomSpawnerBattleRoyaleLootTools
entities:
- uid: 45
components:
- type: Transform
pos: -0.5,-4.5
parent: 1
- uid: 46
components:
- type: Transform
pos: -0.5,-4.5
parent: 1
- uid: 47
components:
- type: Transform
pos: -0.5,-4.5
parent: 1
- uid: 48
components:
- type: Transform
pos: -0.5,-4.5
parent: 1
- uid: 49
components:
- type: Transform
pos: -0.5,-3.5
parent: 1
- uid: 50
components:
- type: Transform
pos: -0.5,-3.5
parent: 1
- uid: 51
components:
- type: Transform
pos: -0.5,-3.5
parent: 1
- uid: 52
components:
- type: Transform
pos: -0.5,-3.5
parent: 1
- proto: CP14RandomSpawnerBattleRoyaleLootWeapon
entities:
- uid: 41
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -0.5,-4.5
parent: 1
- uid: 42
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -0.5,-4.5
parent: 1
- uid: 43
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -0.5,-4.5
parent: 1
- uid: 44
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -0.5,-4.5
parent: 1
- uid: 53
components:
- type: Transform
pos: -0.5,-3.5
parent: 1
- uid: 54
components:
- type: Transform
pos: -0.5,-3.5
parent: 1
- uid: 55
components:
- type: Transform
pos: -0.5,-3.5
parent: 1
- uid: 56
components:
- type: Transform
pos: -0.5,-3.5
parent: 1
- proto: CP14SpawnPointAdventurer
entities:
- uid: 30
components:
- type: Transform
pos: 1.5,-3.5
parent: 1
- proto: CP14SpawnPointAlchemist
entities:
- uid: 31
components:
- type: Transform
pos: 1.5,-4.5
parent: 1
- proto: CP14TableWooden
entities:
- uid: 29
components:
- type: Transform
pos: -0.5,-3.5
parent: 1
- uid: 39
components:
- type: Transform
pos: -0.5,-4.5
parent: 1
- proto: CP14WallmountLamp
entities:
- uid: 32
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -0.5,-1.5
parent: 1
- uid: 33
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 1.5,-1.5
parent: 1
- uid: 34
components:
- type: Transform
pos: 1.5,-3.5
parent: 1
- uid: 35
components:
- type: Transform
pos: -0.5,-3.5
parent: 1
- proto: CP14WallWooden
entities:
- uid: 2
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -1.5,-5.5
parent: 1
- uid: 3
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -1.5,-4.5
parent: 1
- uid: 4
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -1.5,-3.5
parent: 1
- uid: 5
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -1.5,-2.5
parent: 1
- uid: 6
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -0.5,-5.5
parent: 1
- uid: 7
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 0.5,-5.5
parent: 1
- uid: 8
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 1.5,-5.5
parent: 1
- uid: 9
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 2.5,-5.5
parent: 1
- uid: 10
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 2.5,-4.5
parent: 1
- uid: 11
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 2.5,-3.5
parent: 1
- uid: 12
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 2.5,-2.5
parent: 1
- uid: 13
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 1.5,-2.5
parent: 1
- uid: 14
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -0.5,-2.5
parent: 1
- proto: CP14WoodDoorOpened
entities:
- uid: 15
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 0.5,-2.5
parent: 1
- proto: CP14WoodenBed
entities:
- uid: 36
components:
- type: Transform
pos: 1.5,-4.5
parent: 1
- uid: 37
components:
- type: Transform
pos: 1.5,-3.5
parent: 1
- proto: SpawnPointLatejoin
entities:
- uid: 38
components:
- type: Transform
pos: 1.5,-4.5
parent: 1
...

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +1,4 @@
- type: gameMapPool
id: DefaultMapPool
maps:
- Dev
#- Atlas
#- Bagel
#- Box
#- Cluster
#- Core
#- Fland
#- Marathon
#- Meta
#- Oasis
#- Omega
#- Origin
#- Saltern
#- Packed
#- Reach
#- Train
- Dev

View File

@@ -0,0 +1,9 @@
- type: entity
id: CP14ExpeditionShipTargetPoint
parent: MarkerBase
name: Expedition ship target point
description: One of the possible arrival points of a ship carrying players
components:
- type: CP14ExpeditionShipFTLTarget
- type: Sprite
state: pink

View File

@@ -1,6 +1,14 @@
- type: entity
id: CP14BaseGameRule
parent: BaseGameRule
abstract: true
components:
- type: GameRule
cP14Allowed: true
- type: entity
id: CP14Playtest
parent: BaseGameRule
parent: CP14BaseGameRule
noSpawn: true
components:
- type: RespawnDeadRule

View File

@@ -36,3 +36,7 @@
availableJobs:
CP14Adventurer: [ -1, -1 ]
CP14Alchemist: [ -1, -1 ]
- type: StationBiome
biome: CP14GrassFill
- type: CP14StationExpeditionTarget
shuttlePath: /Maps/_CP14/Shuttles/test-ship.yml

View File

@@ -2,7 +2,7 @@
# Базовый биом лугов.
- type: biomeTemplate
id: CP14Grassland
id: CP14GrassFill
layers:
- !type:BiomeTileLayer
threshold: -1.0
@@ -33,6 +33,12 @@
gain: 0.7
domainWarpType: OpenSimplex2
domainWarpAmp: 120
- type: biomeTemplate
id: CP14Grassland
layers:
- !type:BiomeMetaLayer
template: CP14GrassFill
- !type:BiomeDecalLayer #Grass decal
allowedTiles:
- CP14FloorGrass

View File

@@ -1,9 +1,8 @@
- type: gamePreset
id: CP14Playtest
alias:
- test
name: cp14-playtest-name
description: cp14-playtest-desc
showInVote: true
cP14Allowed: true
rules:
- CP14Playtest