Compare commits
1 Commits
fishing
...
revert-114
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
605f4edcd1 |
@@ -1,149 +0,0 @@
|
||||
using System.Numerics;
|
||||
using Content.Client.Resources;
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared._CP14.Fishing.Prototypes;
|
||||
using Content.Shared._CP14.Fishing.Systems;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Client.Player;
|
||||
using Robust.Client.ResourceManagement;
|
||||
using Robust.Shared.Enums;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Client._CP14.Fishing;
|
||||
|
||||
public sealed class CP14FishingOverlay : Overlay
|
||||
{
|
||||
[Dependency] private readonly IComponentFactory _factory = default!;
|
||||
[Dependency] private readonly IEntityManager _entity = default!;
|
||||
[Dependency] private readonly IPlayerManager _player = default!;
|
||||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||
[Dependency] private readonly IResourceCache _resourceCache = default!;
|
||||
|
||||
private readonly SpriteSystem _sprite;
|
||||
private readonly TransformSystem _transform;
|
||||
private readonly CP14SharedFishingProcessSystem _sharedFishingProcess;
|
||||
|
||||
private Texture _backgroundTexture = default!;
|
||||
private Texture _handleTopTexture = default!;
|
||||
private Texture _handleMiddleTexture = default!;
|
||||
private Texture _handleBottomTexture = default!;
|
||||
|
||||
private Texture _lootTexture = default!;
|
||||
|
||||
private Vector2 _backgroundOffset;
|
||||
private Vector2 _backgroundHandleOffset;
|
||||
private Vector2 _backgroundHandleSize;
|
||||
|
||||
private Vector2 _progressOffset;
|
||||
private Vector2 _progressSize;
|
||||
|
||||
private EntityUid _process = EntityUid.Invalid;
|
||||
|
||||
public override OverlaySpace Space => OverlaySpace.WorldSpace;
|
||||
|
||||
public CP14FishingOverlay()
|
||||
{
|
||||
IoCManager.InjectDependencies(this);
|
||||
|
||||
_sprite = _entity.System<SpriteSystem>();
|
||||
_transform = _entity.System<TransformSystem>();
|
||||
_sharedFishingProcess = _entity.System<CP14SharedFishingProcessSystem>();
|
||||
}
|
||||
|
||||
protected override void Draw(in OverlayDrawArgs args)
|
||||
{
|
||||
if (_player.LocalEntity is not { } localEntity)
|
||||
return;
|
||||
|
||||
if (!_sharedFishingProcess.TryGetByUser(localEntity, out var fishingProcess))
|
||||
return;
|
||||
|
||||
// Refresh the texture cache, with a new fishing process
|
||||
if (_process != fishingProcess.Value.Owner)
|
||||
{
|
||||
_process = fishingProcess.Value.Owner;
|
||||
|
||||
UpdateCachedStyleSheet(_sharedFishingProcess.GetStyle(fishingProcess.Value));
|
||||
|
||||
var prototype = _prototype.Index(fishingProcess.Value.Comp.LootProtoId);
|
||||
var iconPath = CP14FishingIconComponent.DefaultTexturePath;
|
||||
|
||||
if (prototype.Components.TryGetComponent(_factory.GetComponentName(typeof(CP14FishingIconComponent)), out var iconComponent))
|
||||
{
|
||||
var comp = (CP14FishingIconComponent) iconComponent;
|
||||
iconPath = comp.TexturePath;
|
||||
}
|
||||
|
||||
_lootTexture = _resourceCache.GetTexture(iconPath);
|
||||
}
|
||||
|
||||
// Getting the position of the player we will be working from
|
||||
var worldPosition = _transform.GetWorldPosition(localEntity);
|
||||
|
||||
// Calculate the shift of the player relative to the bottom of the coordinates
|
||||
var playerOffset = fishingProcess.Value.Comp.PlayerPositionNormalized * _backgroundHandleSize;
|
||||
var playerHalfSize = fishingProcess.Value.Comp.PlayerHalfSizeNormalized * _backgroundHandleSize;
|
||||
|
||||
var lootOffset = fishingProcess.Value.Comp.LootPositionNormalized * _backgroundHandleSize + Vector2.UnitX * _backgroundHandleSize.X / 2;
|
||||
|
||||
DrawBackground(args.WorldHandle, worldPosition - _backgroundOffset);
|
||||
DrawProgress(args.WorldHandle, worldPosition - _backgroundOffset + _progressOffset, _progressSize, fishingProcess.Value.Comp.Progress);
|
||||
DrawHandle(args.WorldHandle, worldPosition - _backgroundOffset + _backgroundHandleOffset + playerOffset, playerHalfSize);
|
||||
DrawLoot(args.WorldHandle, worldPosition - _backgroundOffset + _backgroundHandleOffset + lootOffset);
|
||||
}
|
||||
|
||||
private void DrawBackground(DrawingHandleWorld handle, Vector2 position)
|
||||
{
|
||||
handle.DrawTexture(_backgroundTexture, position);
|
||||
}
|
||||
|
||||
private void DrawProgress(DrawingHandleWorld handle, Vector2 position, Vector2 size, float progress)
|
||||
{
|
||||
var vectorA = position;
|
||||
var vectorB = position + new Vector2(size.X, size.Y * progress);
|
||||
var box = new Box2(vectorA, vectorB);
|
||||
|
||||
handle.DrawRect(box, Color.Aqua);
|
||||
}
|
||||
|
||||
private void DrawHandle(DrawingHandleWorld handle, Vector2 position, Vector2 halfSize)
|
||||
{
|
||||
var cursor = position - halfSize;
|
||||
|
||||
// Bottom
|
||||
handle.DrawTexture(_handleBottomTexture, cursor);
|
||||
cursor += new Vector2(0, _handleBottomTexture.Height / 32f);
|
||||
|
||||
// Middle
|
||||
while (cursor.Y < position.Y + halfSize.Y - _handleTopTexture.Height / 32f)
|
||||
{
|
||||
handle.DrawTexture(_handleMiddleTexture, cursor);
|
||||
cursor += new Vector2(0, _handleMiddleTexture.Height / 32f);
|
||||
}
|
||||
|
||||
// Front
|
||||
handle.DrawTexture(_handleTopTexture, cursor);
|
||||
}
|
||||
|
||||
private void DrawLoot(DrawingHandleWorld handle, Vector2 position)
|
||||
{
|
||||
handle.DrawTexture(_lootTexture, position - _lootTexture.Size / 64f);
|
||||
}
|
||||
|
||||
private void UpdateCachedStyleSheet(CP14FishingProcessStyleSheetPrototype styleSheet)
|
||||
{
|
||||
_backgroundTexture = _resourceCache.GetTexture(styleSheet.Background.Texture);
|
||||
_handleTopTexture = _resourceCache.GetTexture(styleSheet.Handle.TopTexture);
|
||||
_handleMiddleTexture = _resourceCache.GetTexture(styleSheet.Handle.MiddleTexture);
|
||||
_handleBottomTexture = _resourceCache.GetTexture(styleSheet.Handle.BottomTexture);
|
||||
|
||||
_backgroundOffset = styleSheet.Background.Offset + Vector2.UnitX * _backgroundTexture.Width / 32f;
|
||||
|
||||
_backgroundHandleOffset = styleSheet.Background.HandleOffset;
|
||||
_backgroundHandleSize = styleSheet.Background.HandleSize;
|
||||
|
||||
_progressOffset = styleSheet.Background.ProgressOffset;
|
||||
_progressSize = styleSheet.Background.ProgressSize;
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
using Content.Client.Overlays;
|
||||
using Robust.Client.Graphics;
|
||||
|
||||
namespace Content.Client._CP14.Fishing;
|
||||
|
||||
public sealed class CP14FishingOverlaySystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly IOverlayManager _overlay = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
_overlay.AddOverlay(new CP14FishingOverlay());
|
||||
}
|
||||
|
||||
public override void Shutdown()
|
||||
{
|
||||
base.Shutdown();
|
||||
|
||||
_overlay.RemoveOverlay<StencilOverlay>();
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
using Content.Shared._CP14.Fishing.Systems;
|
||||
|
||||
namespace Content.Client._CP14.Fishing;
|
||||
|
||||
public sealed class CP14FishingProcessSystem : CP14SharedFishingProcessSystem;
|
||||
@@ -1,35 +0,0 @@
|
||||
using Content.Client.Hands.Systems;
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared._CP14.Fishing.Systems;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Shared.Input;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Client._CP14.Fishing;
|
||||
|
||||
public sealed class CP14FishingRodSystem : CP14SharedFishingRodSystem
|
||||
{
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
[Dependency] private readonly InputSystem _input = default!;
|
||||
[Dependency] private readonly HandsSystem _hands = default!;
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
if (!_timing.IsFirstTimePredicted)
|
||||
return;
|
||||
|
||||
var handUid = _hands.GetActiveHandEntity();
|
||||
|
||||
if (!TryComp<CP14FishingRodComponent>(handUid, out var fishingRodComponent))
|
||||
return;
|
||||
|
||||
var reelKey = _input.CmdStates.GetState(EngineKeyFunctions.UseSecondary) == BoundKeyState.Down;
|
||||
|
||||
if (fishingRodComponent.Reeling == reelKey)
|
||||
return;
|
||||
|
||||
RaisePredictiveEvent(new RequestFishingRodReelMessage(reelKey));
|
||||
}
|
||||
}
|
||||
@@ -40,7 +40,6 @@ namespace Content.IntegrationTests.Tests
|
||||
.Where(p => !pair.IsTestPrototype(p))
|
||||
.Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise.
|
||||
.Where(p => !p.Components.ContainsKey("RoomFill")) // This comp can delete all entities, and spawn others
|
||||
.Where(p => !p.Components.ContainsKey("CP14BiomeSpawner")) // CP14 this component delete all entities on this tile
|
||||
.Select(p => p.ID)
|
||||
.ToList();
|
||||
|
||||
@@ -104,7 +103,6 @@ namespace Content.IntegrationTests.Tests
|
||||
.Where(p => !pair.IsTestPrototype(p))
|
||||
.Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise.
|
||||
.Where(p => !p.Components.ContainsKey("RoomFill")) // This comp can delete all entities, and spawn others
|
||||
.Where(p => !p.Components.ContainsKey("CP14BiomeSpawner")) // CP14 this component delete all entities on this tile
|
||||
.Select(p => p.ID)
|
||||
.ToList();
|
||||
foreach (var protoId in protoIds)
|
||||
@@ -346,7 +344,6 @@ namespace Content.IntegrationTests.Tests
|
||||
"DebugExceptionStartup",
|
||||
"GridFill",
|
||||
"RoomFill",
|
||||
"CP14BiomeSpawner", // CP14 this component delete all entities on this tile
|
||||
"Map", // We aren't testing a map entity in this test
|
||||
"MapGrid",
|
||||
"Broadphase",
|
||||
|
||||
@@ -70,6 +70,7 @@ namespace Content.IntegrationTests.Tests
|
||||
"Dev",
|
||||
"MeteorArena",
|
||||
"Comoss",
|
||||
"Factoria",
|
||||
//CrystallEdge Map replacement end
|
||||
};
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Content.Server.Construction.Components;
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
using Content.Shared.ActionBlocker;
|
||||
using Content.Shared.Construction;
|
||||
using Content.Shared.Construction.Prototypes;
|
||||
@@ -237,36 +236,6 @@ namespace Content.Server.Construction
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
//CP14 stack group support
|
||||
case CP14StackGroupConstructionGraphStep stackGroupStep:
|
||||
foreach (var entity in new HashSet<EntityUid>(EnumerateNearby(user)))
|
||||
{
|
||||
if (!stackGroupStep.EntityValid(entity, out var stack))
|
||||
continue;
|
||||
|
||||
if (used.Contains(entity))
|
||||
continue;
|
||||
|
||||
var splitStack = _stackSystem.Split(entity, stackGroupStep.Amount, user.ToCoordinates(0, 0), stack);
|
||||
|
||||
if (splitStack == null)
|
||||
continue;
|
||||
|
||||
if (string.IsNullOrEmpty(stackGroupStep.Store))
|
||||
{
|
||||
if (!_container.Insert(splitStack.Value, container))
|
||||
continue;
|
||||
}
|
||||
else if (!_container.Insert(splitStack.Value, GetContainer(stackGroupStep.Store)))
|
||||
continue;
|
||||
|
||||
handled = true;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
//CP14 stack group support end
|
||||
}
|
||||
|
||||
if (handled == false)
|
||||
|
||||
@@ -1,121 +0,0 @@
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared._CP14.Fishing.Core;
|
||||
using Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
using Content.Shared._CP14.Fishing.Events;
|
||||
using Content.Shared._CP14.Fishing.Systems;
|
||||
using Content.Shared.Throwing;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Server._CP14.Fishing;
|
||||
|
||||
public sealed class CP14FishingProcessSystem : CP14SharedFishingProcessSystem
|
||||
{
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
[Dependency] private readonly ThrowingSystem _throwing = default!;
|
||||
[Dependency] private readonly CP14FishingPoolSystem _pool = default!;
|
||||
|
||||
/*
|
||||
private readonly TimeSpan _dirtyDelay = TimeSpan.FromTicks(10000000000000);
|
||||
private TimeSpan _dirtyDelayTime;
|
||||
*/
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
// DON'T CALL BASE METHOD!!!
|
||||
|
||||
var query = EntityQueryEnumerator<CP14FishingProcessComponent>();
|
||||
while (query.MoveNext(out var entityUid, out var processComponent))
|
||||
{
|
||||
Update((entityUid, processComponent), frameTime * 2);
|
||||
}
|
||||
}
|
||||
|
||||
public override void FishPreUpdate(Entity<CP14FishingProcessComponent> process, Fish fish, float frameTime)
|
||||
{
|
||||
base.FishPreUpdate(process, fish, frameTime);
|
||||
|
||||
fish.UpdateSpeed(_random, _timing);
|
||||
Dirty(process);
|
||||
}
|
||||
|
||||
public override void UpdateDirty(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
base.UpdateDirty(process);
|
||||
|
||||
/*
|
||||
if (_timing.CurTime < _dirtyDelayTime)
|
||||
return;
|
||||
|
||||
_dirtyDelayTime = _timing.CurTime + _dirtyDelay;
|
||||
Dirty(process);
|
||||
*/
|
||||
}
|
||||
|
||||
public override void Finish(Entity<CP14FishingProcessComponent> process, bool success)
|
||||
{
|
||||
base.Finish(process, success);
|
||||
|
||||
if (success)
|
||||
{
|
||||
Reward(process);
|
||||
}
|
||||
|
||||
// Raising events before deletion
|
||||
var ev = new CP14FishingFinishedEvent(success);
|
||||
RaiseLocalEvent(process, ref ev, true);
|
||||
|
||||
// Either way, we need to delete the process
|
||||
Stop(process);
|
||||
}
|
||||
|
||||
public override void Reward(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
base.Reward(process);
|
||||
|
||||
var pool = GetPool(process);
|
||||
var rod = GetRod(process);
|
||||
|
||||
var coordinates = Transform(pool).Coordinates;
|
||||
var targetCoordinates = Transform(process.Comp.User!.Value).Coordinates;
|
||||
|
||||
var loot = Spawn(process.Comp.LootProtoId, coordinates);
|
||||
|
||||
_throwing.TryThrow(loot, targetCoordinates, rod.Comp.ThrowPower);
|
||||
}
|
||||
|
||||
public Entity<CP14FishingProcessComponent> Start(
|
||||
Entity<CP14FishingRodComponent> fishingRod,
|
||||
Entity<CP14FishingPoolComponent> fishingPool,
|
||||
EntityUid user)
|
||||
{
|
||||
var process = CreateProcess(fishingRod.Owner);
|
||||
var loot = _pool.GetLootPrototypeId(fishingPool);
|
||||
var style = GetStyle(fishingRod);
|
||||
|
||||
// Save entities
|
||||
process.Comp.FishingRod = fishingRod;
|
||||
process.Comp.FishingPool = fishingPool;
|
||||
process.Comp.User = user;
|
||||
|
||||
process.Comp.Player = new Player(fishingRod.Comp.Size);
|
||||
process.Comp.Fish = new Fish(new MixedBehavior(), _timing.CurTime + TimeSpan.FromSeconds(0.5f));
|
||||
|
||||
process.Comp.LootProtoId = loot;
|
||||
process.Comp.StyleSheet = style;
|
||||
|
||||
Dirty(process);
|
||||
|
||||
Log.Debug($"Started new fishing process at {process}");
|
||||
return process;
|
||||
}
|
||||
|
||||
public Entity<CP14FishingProcessComponent> CreateProcess(EntityUid parent)
|
||||
{
|
||||
var entityUid = SpawnAttachedTo(null, Transform(parent).Coordinates);
|
||||
var ensureComponent = AddComp<CP14FishingProcessComponent>(entityUid);
|
||||
|
||||
return (entityUid, ensureComponent);
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared._CP14.Fishing.Systems;
|
||||
using Content.Shared.Interaction;
|
||||
|
||||
namespace Content.Server._CP14.Fishing;
|
||||
|
||||
public sealed class CP14FishingRodSystem : CP14SharedFishingRodSystem
|
||||
{
|
||||
[Dependency] private readonly CP14FishingProcessSystem _fishingProcess = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<CP14FishingPoolComponent, AfterInteractUsingEvent>(OnAfterInteractUsing);
|
||||
}
|
||||
|
||||
private void OnAfterInteractUsing(Entity<CP14FishingPoolComponent> entity, ref AfterInteractUsingEvent args)
|
||||
{
|
||||
if (args.Handled || !args.CanReach)
|
||||
return;
|
||||
|
||||
if (!TryComp<CP14FishingRodComponent>(args.Used, out var fishingRodComponent))
|
||||
return;
|
||||
|
||||
if (fishingRodComponent.Process is not null)
|
||||
return;
|
||||
|
||||
fishingRodComponent.Process = _fishingProcess.Start((args.Used, fishingRodComponent), entity, args.User);
|
||||
}
|
||||
}
|
||||
@@ -97,13 +97,13 @@ public sealed partial class CP14WorkbenchSystem : SharedCP14WorkbenchSystem
|
||||
|
||||
foreach (var req in recipe.Requirements)
|
||||
{
|
||||
req.PostCraft(EntityManager, _proto, placedEntities, args.User);
|
||||
req.PostCraft(EntityManager, placedEntities, args.User);
|
||||
}
|
||||
|
||||
//We teleport result to workbench AFTER craft.
|
||||
foreach (var resultEntity in resultEntities)
|
||||
{
|
||||
_transform.SetCoordinates(resultEntity, Transform(ent).Coordinates.Offset(new Vector2(_random.NextFloat(-0.25f, 0.25f), _random.NextFloat(-0.25f, 0.25f))));
|
||||
_transform.SetCoordinates(resultEntity, Transform(ent).Coordinates.Offset(new Vector2(_random.NextFloat(-0.5f, 0.5f), _random.NextFloat(-0.5f, 0.5f))));
|
||||
}
|
||||
|
||||
UpdateUIRecipes(ent, args.User);
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Serialization.Manager;
|
||||
using Robust.Shared.Serialization.Markdown.Mapping;
|
||||
using Robust.Shared.Serialization.Markdown.Validation;
|
||||
@@ -47,13 +46,6 @@ namespace Content.Shared.Construction.Steps
|
||||
return typeof(PartAssemblyConstructionGraphStep);
|
||||
}
|
||||
|
||||
//CP14 stack group support
|
||||
if (node.Has("stackGroup"))
|
||||
{
|
||||
return typeof(CP14StackGroupConstructionGraphStep);
|
||||
}
|
||||
//CP14 stack group support end
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Components;
|
||||
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class CP14FishingIconComponent : Component
|
||||
{
|
||||
public static readonly ResPath DefaultTexturePath = new("/Textures/_CP14/Interface/Fishing/Icons/default.png");
|
||||
|
||||
[DataField]
|
||||
public ResPath TexturePath = DefaultTexturePath;
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
using Content.Shared._CP14.Fishing.Prototypes;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Components;
|
||||
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class CP14FishingPoolComponent : Component
|
||||
{
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public ProtoId<CP14FishingPoolLootTablePrototype> LootTable = "Default";
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
using System.Numerics;
|
||||
using Content.Shared._CP14.Fishing.Core;
|
||||
using Content.Shared._CP14.Fishing.Prototypes;
|
||||
using Content.Shared._CP14.Fishing.Systems;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Components;
|
||||
|
||||
[Access(typeof(CP14SharedFishingProcessSystem))]
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
||||
public sealed partial class CP14FishingProcessComponent : Component
|
||||
{
|
||||
/**
|
||||
* Boxes
|
||||
*/
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public Player? Player;
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public Fish? Fish;
|
||||
|
||||
/**
|
||||
* Progress
|
||||
*/
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public float Progress;
|
||||
|
||||
/**
|
||||
* Saved entities
|
||||
*/
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public EntityUid? FishingRod = null;
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public EntityUid? User = null;
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public EntityUid? FishingPool = null;
|
||||
|
||||
/**
|
||||
* Loot
|
||||
*/
|
||||
|
||||
[ViewVariables, AutoNetworkedField]
|
||||
public EntProtoId LootProtoId;
|
||||
|
||||
/**
|
||||
* Style
|
||||
*/
|
||||
|
||||
[ViewVariables]
|
||||
public CP14FishingProcessStyleSheetPrototype? StyleSheet;
|
||||
|
||||
/**
|
||||
* Normalized
|
||||
*/
|
||||
|
||||
public Vector2 LootPositionNormalized => Vector2.UnitY * Fish?.Position ?? Vector2.Zero;
|
||||
public Vector2 PlayerPositionNormalized => Vector2.UnitY * Player?.Position ?? Vector2.Zero;
|
||||
public Vector2 PlayerHalfSizeNormalized => Vector2.UnitY * Player?.HalfSize ?? Vector2.Zero;
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
using Content.Shared._CP14.Fishing.Prototypes;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Components;
|
||||
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
||||
public sealed partial class CP14FishingRodComponent : Component
|
||||
{
|
||||
[ViewVariables]
|
||||
public static readonly ProtoId<CP14FishingProcessStyleSheetPrototype> DefaultStyle = "Default";
|
||||
|
||||
[ViewVariables]
|
||||
public EntityUid? Process;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public bool Reeling;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float Speed = 0.1f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float Gravity = 0.075f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float MaxVelocity = 0.3f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float MinVelocity = -0.325f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float Bouncing = 0.07f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float Drag = 0.98f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float Size = 0.25f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public float ThrowPower = 10f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public ProtoId<CP14FishingProcessStyleSheetPrototype> Style = DefaultStyle;
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
|
||||
[ImplicitDataDefinitionForInheritors, MeansImplicitUse]
|
||||
[Serializable, NetSerializable]
|
||||
public abstract partial class Behavior
|
||||
{
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Speed { get; set; } = 0.25f;
|
||||
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Difficulty { get; set; } = 2f;
|
||||
|
||||
public abstract float CalculateSpeed(IRobustRandom random);
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
|
||||
public sealed partial class DartBehavior : Behavior
|
||||
{
|
||||
public override float CalculateSpeed(IRobustRandom random)
|
||||
{
|
||||
return Speed * (0.5f + random.NextFloat() * Difficulty);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
|
||||
public sealed partial class FloaterBehaviour : Behavior
|
||||
{
|
||||
public override float CalculateSpeed(IRobustRandom random)
|
||||
{
|
||||
return Speed * (0.5f + random.NextFloat() * Difficulty);
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed partial class MixedBehavior : Behavior
|
||||
{
|
||||
public override float CalculateSpeed(IRobustRandom random)
|
||||
{
|
||||
return Speed * (random.NextFloat() - 0.5f);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
|
||||
public sealed partial class SinkerBehavior : Behavior
|
||||
{
|
||||
public override float CalculateSpeed(IRobustRandom random)
|
||||
{
|
||||
return Speed * (1.0f + random.NextFloat() * 0.5f);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
|
||||
public sealed partial class SmoothBehavior : Behavior
|
||||
{
|
||||
public override float CalculateSpeed(IRobustRandom random)
|
||||
{
|
||||
return Speed * (0.5f + random.NextFloat() * Difficulty);
|
||||
}
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
using Content.Shared._CP14.Fishing.Core.Behaviors;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core;
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed class Fish
|
||||
{
|
||||
private const float MaxPosition = 1f;
|
||||
private const float MinPosition = 0f;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Position { get; private set; }
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
private readonly Behavior _behavior;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
private float _speed;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
private TimeSpan _updateSpeedTime;
|
||||
|
||||
public Fish(Behavior behavior, TimeSpan updateSpeedTime)
|
||||
{
|
||||
_behavior = behavior;
|
||||
_updateSpeedTime = updateSpeedTime;
|
||||
}
|
||||
|
||||
public void Update(float frameTime)
|
||||
{
|
||||
// Update position
|
||||
Position += _speed * frameTime;
|
||||
|
||||
// Clamp position
|
||||
Position = Math.Clamp(Position, MinPosition, MaxPosition);
|
||||
}
|
||||
|
||||
public void UpdateSpeed(IRobustRandom random, IGameTiming timing)
|
||||
{
|
||||
if (_updateSpeedTime > timing.CurTime)
|
||||
return;
|
||||
|
||||
_speed = _behavior.CalculateSpeed(random);
|
||||
_updateSpeedTime = timing.CurTime + TimeSpan.FromSeconds(random.NextFloat(1.5f - 1f / _behavior.Difficulty, 2.5f - 1f / _behavior.Difficulty));
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Core;
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed class Player
|
||||
{
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Size;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Position;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float Velocity;
|
||||
|
||||
[ViewVariables]
|
||||
public float HalfSize => Size / 2f;
|
||||
|
||||
public Player(float size = 0.25f)
|
||||
{
|
||||
Size = size;
|
||||
Position = HalfSize;
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
namespace Content.Shared._CP14.Fishing.Events;
|
||||
|
||||
[ByRefEvent]
|
||||
public readonly struct CP14FishingFinishedEvent
|
||||
{
|
||||
public readonly bool Success;
|
||||
|
||||
public CP14FishingFinishedEvent(bool success)
|
||||
{
|
||||
Success = success;
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Prototypes;
|
||||
|
||||
[Prototype("CP14FishingPoolLootTable")]
|
||||
public sealed class CP14FishingPoolLootTablePrototype : IPrototype
|
||||
{
|
||||
[IdDataField]
|
||||
public string ID { get; } = string.Empty;
|
||||
|
||||
[DataField]
|
||||
public List<EntProtoId> Prototypes = [];
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Prototypes;
|
||||
|
||||
[Prototype("CP14FishingProcess")]
|
||||
public sealed class CP14FishingProcessPrototype : IPrototype
|
||||
{
|
||||
[IdDataField]
|
||||
public string ID { get; } = string.Empty;
|
||||
|
||||
[DataField, ViewVariables]
|
||||
public EntProtoId LootProtoId;
|
||||
}
|
||||
@@ -1,127 +0,0 @@
|
||||
using System.Numerics;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Prototypes;
|
||||
|
||||
/// <summary>
|
||||
/// Represents the style sheet for the fishing process, containing UI elements like background and handle configurations.
|
||||
/// </summary>
|
||||
[Prototype("CP14FishingProcessStyleSheet")]
|
||||
public sealed partial class CP14FishingProcessStyleSheetPrototype : IPrototype
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the unique identifier for this fishing process style sheet prototype.
|
||||
/// </summary>
|
||||
[IdDataField]
|
||||
public string ID { get; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Background settings for the fishing process UI.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables]
|
||||
public BackgroundData Background = new();
|
||||
|
||||
/// <summary>
|
||||
/// Handle settings for the fishing process UI.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables]
|
||||
public HandleData Handle = new();
|
||||
|
||||
/// <summary>
|
||||
/// Contains data related to the background of the fishing process UI.
|
||||
/// </summary>
|
||||
[DataDefinition, Serializable]
|
||||
public sealed partial class BackgroundData
|
||||
{
|
||||
/// <summary>
|
||||
/// Path to the background texture image.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public string Texture = "/Textures/_CP14/Interface/Fishing/background.png";
|
||||
|
||||
/// <summary>
|
||||
/// Offset of the background texture in pixels.
|
||||
/// </summary>
|
||||
[DataField("offset"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public Vector2 OffsetPixels = new(10, 0);
|
||||
|
||||
/// <summary>
|
||||
/// Offset of the handle in pixels.
|
||||
/// </summary>
|
||||
[DataField("handleOffset"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public Vector2 HandleOffsetPixels = new(16, 4);
|
||||
|
||||
/// <summary>
|
||||
/// Size of the handle in pixels.
|
||||
/// </summary>
|
||||
[DataField("handleSize"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public Vector2 HandleSizePixels = new(149, 0);
|
||||
|
||||
/// <summary>
|
||||
/// Offset of the progress bar in pixels.
|
||||
/// </summary>
|
||||
[DataField("progressOffset"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public Vector2 ProgressOffsetPixels = new(31, 3);
|
||||
|
||||
/// <summary>
|
||||
/// Size of the progress bar in pixels.
|
||||
/// </summary>
|
||||
[DataField("progressSize"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public Vector2 ProgressSizePixels = new(4, 144);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the background offset in units (pixels divided by 32).
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public Vector2 Offset => OffsetPixels / 32f;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the handle offset in units (pixels divided by 32).
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public Vector2 HandleOffset => HandleOffsetPixels / 32f;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the progress bar offset in units (pixels divided by 32).
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public Vector2 ProgressOffset => ProgressOffsetPixels / 32f;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the progress bar size in units (pixels divided by 32).
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public Vector2 ProgressSize => ProgressSizePixels / 32f;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the handle size in units (pixels divided by 32).
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public Vector2 HandleSize => HandleSizePixels / 32f;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Contains data related to the handle elements of the fishing process UI.
|
||||
/// </summary>
|
||||
[DataDefinition, Serializable]
|
||||
public sealed partial class HandleData
|
||||
{
|
||||
/// <summary>
|
||||
/// Path to the texture for the top part of the handle.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public string TopTexture = "/Textures/_CP14/Interface/Fishing/Handle/top.png";
|
||||
|
||||
/// <summary>
|
||||
/// Path to the texture for the middle part of the handle.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public string MiddleTexture = "/Textures/_CP14/Interface/Fishing/Handle/middle.png";
|
||||
|
||||
/// <summary>
|
||||
/// Path to the texture for the bottom part of the handle.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public string BottomTexture = "/Textures/_CP14/Interface/Fishing/Handle/bottom.png";
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Systems;
|
||||
|
||||
public sealed class CP14FishingPoolSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
|
||||
public EntProtoId GetLootPrototypeId(Entity<CP14FishingPoolComponent> pool)
|
||||
{
|
||||
var lootTable = _prototype.Index(pool.Comp.LootTable);
|
||||
var loot = _random.Pick(lootTable.Prototypes);
|
||||
|
||||
return loot;
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared._CP14.Fishing.Core;
|
||||
using Content.Shared._CP14.Fishing.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Systems;
|
||||
|
||||
public abstract partial class CP14SharedFishingProcessSystem
|
||||
{
|
||||
protected Entity<CP14FishingRodComponent> GetRod(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
var entityUid = process.Comp.FishingRod!.Value;
|
||||
var component = FishingRod.GetComponent(entityUid);
|
||||
return (entityUid, component);
|
||||
}
|
||||
|
||||
protected Entity<CP14FishingPoolComponent> GetPool(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
var entityUid = process.Comp.FishingPool!.Value;
|
||||
var component = FishingPool.GetComponent(entityUid);
|
||||
return (entityUid, component);
|
||||
}
|
||||
|
||||
public CP14FishingProcessStyleSheetPrototype GetStyle(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
return GetStyle(GetRod(process));
|
||||
}
|
||||
|
||||
public CP14FishingProcessStyleSheetPrototype GetStyle(Entity<CP14FishingRodComponent> fishingRod)
|
||||
{
|
||||
if (_prototype.TryIndex(fishingRod.Comp.Style, out var style))
|
||||
return style;
|
||||
|
||||
Log.Error($"Failed to retrieve fishing rod style, {fishingRod.Comp.Style} not found. Reverting to default style.");
|
||||
return _prototype.Index(CP14FishingRodComponent.DefaultStyle);
|
||||
}
|
||||
|
||||
protected static bool Collide(Fish fish, Player player)
|
||||
{
|
||||
var playerMin = player.Position - player.HalfSize;
|
||||
var playerMax = player.Position + player.HalfSize;
|
||||
return fish.Position >= playerMin && fish.Position <= playerMax;
|
||||
}
|
||||
}
|
||||
@@ -1,143 +0,0 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared._CP14.Fishing.Core;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Systems;
|
||||
|
||||
public abstract partial class CP14SharedFishingProcessSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||
|
||||
protected EntityQuery<CP14FishingRodComponent> FishingRod;
|
||||
protected EntityQuery<CP14FishingPoolComponent> FishingPool;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
FishingRod = GetEntityQuery<CP14FishingRodComponent>();
|
||||
FishingPool = GetEntityQuery<CP14FishingPoolComponent>();
|
||||
}
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
var query = EntityQueryEnumerator<CP14FishingProcessComponent>();
|
||||
while (query.MoveNext(out var entityUid, out var processComponent))
|
||||
{
|
||||
Update((entityUid, processComponent), frameTime);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateReeling(Entity<CP14FishingProcessComponent> process,
|
||||
Entity<CP14FishingRodComponent> fishingRod,
|
||||
float frameTime)
|
||||
{
|
||||
if (process.Comp.Player is not { } player)
|
||||
return;
|
||||
|
||||
if (fishingRod.Comp.Reeling)
|
||||
{
|
||||
player.Velocity += fishingRod.Comp.Speed * frameTime;
|
||||
return;
|
||||
}
|
||||
|
||||
player.Velocity -= fishingRod.Comp.Gravity * frameTime;
|
||||
}
|
||||
|
||||
private void UpdateVelocity(Entity<CP14FishingProcessComponent> process,
|
||||
Entity<CP14FishingRodComponent> fishingRod)
|
||||
{
|
||||
if (process.Comp.Player is not { } player)
|
||||
return;
|
||||
|
||||
player.Velocity *= fishingRod.Comp.Drag;
|
||||
player.Velocity = Math.Clamp(player.Velocity,
|
||||
fishingRod.Comp.MinVelocity,
|
||||
fishingRod.Comp.MaxVelocity);
|
||||
}
|
||||
|
||||
private void UpdatePosition(Entity<CP14FishingProcessComponent> process,
|
||||
float frameTime)
|
||||
{
|
||||
if (process.Comp.Player is not { } player)
|
||||
return;
|
||||
|
||||
player.Position += process.Comp.Player.Velocity * frameTime;
|
||||
|
||||
var halfSize = process.Comp.Player.HalfSize;
|
||||
process.Comp.Player.Position = Math.Clamp(process.Comp.Player.Position, halfSize, 1 - halfSize);
|
||||
}
|
||||
|
||||
public void Update(Entity<CP14FishingProcessComponent> process, float frameTime)
|
||||
{
|
||||
if (process.Comp.Player is not { } player)
|
||||
return;
|
||||
|
||||
var fishingRod = GetRod(process);
|
||||
|
||||
UpdateReeling(process, fishingRod, frameTime);
|
||||
UpdateVelocity(process, fishingRod);
|
||||
UpdatePosition(process, frameTime);
|
||||
|
||||
if (process.Comp.Fish is { } fish)
|
||||
{
|
||||
FishPreUpdate(process, fish, frameTime);
|
||||
|
||||
fish.Update(frameTime);
|
||||
var collides = Collide(fish, player);
|
||||
|
||||
var progressAdditive = collides ? 0.1f : -0.2f;
|
||||
process.Comp.Progress = Math.Clamp(process.Comp.Progress + progressAdditive * frameTime, 0, 1);
|
||||
}
|
||||
|
||||
UpdateDirty(process);
|
||||
|
||||
if (process.Comp.Progress is 1 or 0)
|
||||
Finish(process, process.Comp.Progress is 1);
|
||||
}
|
||||
|
||||
public virtual void FishPreUpdate(Entity<CP14FishingProcessComponent> process, Fish fish, float frameTime)
|
||||
{
|
||||
}
|
||||
|
||||
public virtual void UpdateDirty(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
}
|
||||
|
||||
public virtual void Finish(Entity<CP14FishingProcessComponent> process, bool success)
|
||||
{
|
||||
}
|
||||
|
||||
public void Stop(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
var rod = GetRod(process);
|
||||
rod.Comp.Process = null;
|
||||
Dirty(rod);
|
||||
|
||||
Del(process);
|
||||
}
|
||||
|
||||
public virtual void Reward(Entity<CP14FishingProcessComponent> process)
|
||||
{
|
||||
}
|
||||
|
||||
public bool TryGetByUser(EntityUid userEntityUid, [NotNullWhen(true)] out Entity<CP14FishingProcessComponent>? process)
|
||||
{
|
||||
process = null;
|
||||
|
||||
var query = EntityQueryEnumerator<CP14FishingProcessComponent>();
|
||||
while (query.MoveNext(out var entityUid, out var processComponent))
|
||||
{
|
||||
if (processComponent.User != userEntityUid)
|
||||
continue;
|
||||
|
||||
process = (entityUid, processComponent);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
using Content.Shared._CP14.Fishing.Components;
|
||||
using Content.Shared.Hands;
|
||||
using Content.Shared.Hands.Components;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.Fishing.Systems;
|
||||
|
||||
public abstract class CP14SharedFishingRodSystem : EntitySystem
|
||||
{
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeAllEvent<RequestFishingRodReelMessage>(OnReel);
|
||||
SubscribeLocalEvent<CP14FishingRodComponent, HandDeselectedEvent>(OnDeselected);
|
||||
}
|
||||
|
||||
private void OnReel(RequestFishingRodReelMessage msg, EntitySessionEventArgs args)
|
||||
{
|
||||
var player = args.SenderSession.AttachedEntity;
|
||||
|
||||
if (!TryComp<HandsComponent>(player, out var hands))
|
||||
return;
|
||||
|
||||
if (!TryComp<CP14FishingRodComponent>(hands.ActiveHandEntity, out var fishingRodComponent))
|
||||
return;
|
||||
|
||||
if (fishingRodComponent.Reeling == msg.Reeling)
|
||||
return;
|
||||
|
||||
fishingRodComponent.Reeling = msg.Reeling;
|
||||
Dirty(hands.ActiveHandEntity.Value, fishingRodComponent);
|
||||
}
|
||||
|
||||
private void OnDeselected(Entity<CP14FishingRodComponent> entity, ref HandDeselectedEvent args)
|
||||
{
|
||||
entity.Comp.Reeling = false;
|
||||
Dirty(entity);
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
protected sealed class RequestFishingRodReelMessage : EntityEventArgs
|
||||
{
|
||||
public bool Reeling;
|
||||
|
||||
public RequestFishingRodReelMessage(bool reeling)
|
||||
{
|
||||
Reeling = reeling;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
/*
|
||||
* This file is sublicensed under MIT License
|
||||
* https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT
|
||||
*/
|
||||
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared.Construction;
|
||||
using Content.Shared.Construction.Steps;
|
||||
using Content.Shared.Examine;
|
||||
using Content.Shared.Stacks;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared._CP14.Workbench.Prototypes;
|
||||
|
||||
[DataDefinition]
|
||||
public sealed partial class CP14StackGroupConstructionGraphStep : EntityInsertConstructionGraphStep
|
||||
{
|
||||
[DataField]
|
||||
public ProtoId<CP14StackGroupPrototype> StackGroup = default!;
|
||||
|
||||
[DataField]
|
||||
public int Amount = 1;
|
||||
|
||||
public override void DoExamine(ExaminedEvent examinedEvent)
|
||||
{
|
||||
var group = IoCManager.Resolve<IPrototypeManager>().Index(StackGroup);
|
||||
|
||||
examinedEvent.PushMarkup(Loc.GetString("construction-insert-material-entity", ("amount", Amount), ("materialName", Loc.GetString(group.Name))));
|
||||
}
|
||||
|
||||
public override bool EntityValid(EntityUid uid, IEntityManager entityManager, IComponentFactory compFactory)
|
||||
{
|
||||
var group = IoCManager.Resolve<IPrototypeManager>().Index(StackGroup);
|
||||
|
||||
return entityManager.TryGetComponent(uid, out StackComponent? stack) && group.Stacks.Contains(stack.StackTypeId) && stack.Count >= Amount;
|
||||
}
|
||||
|
||||
public bool EntityValid(EntityUid entity, [NotNullWhen(true)] out StackComponent? stack)
|
||||
{
|
||||
var group = IoCManager.Resolve<IPrototypeManager>().Index(StackGroup);
|
||||
|
||||
if (IoCManager.Resolve<IEntityManager>().TryGetComponent(entity, out StackComponent? otherStack) && group.Stacks.Contains(otherStack.StackTypeId) && otherStack.Count >= Amount)
|
||||
stack = otherStack;
|
||||
else
|
||||
stack = null;
|
||||
|
||||
return stack != null;
|
||||
}
|
||||
|
||||
public override ConstructionGuideEntry GenerateGuideEntry()
|
||||
{
|
||||
var proto = IoCManager.Resolve<IPrototypeManager>();
|
||||
var group = proto.Index(StackGroup);
|
||||
|
||||
var firstStack = group.Stacks.FirstOrNull();
|
||||
|
||||
return new ConstructionGuideEntry()
|
||||
{
|
||||
Localization = "construction-presenter-material-step",
|
||||
Arguments = new (string, object)[]{("amount", Amount), ("material", Loc.GetString(group.Name))},
|
||||
Icon = firstStack != null ? proto.Index(firstStack.Value).Icon : SpriteSpecifier.Invalid,
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* This file is sublicensed under MIT License
|
||||
* https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT
|
||||
*/
|
||||
|
||||
using Content.Shared.Stacks;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.Workbench.Prototypes;
|
||||
|
||||
/// <summary>
|
||||
/// Allows you to group several different kinds of stacks into one group. Can be used for situations where different stacks are appropriate for a particular situation
|
||||
/// </summary>
|
||||
[Prototype("CP14StackGroup")]
|
||||
public sealed class CP14StackGroupPrototype : IPrototype
|
||||
{
|
||||
[IdDataField]
|
||||
public string ID { get; private set; } = default!;
|
||||
|
||||
[DataField(required: true)]
|
||||
public LocId Name = default!;
|
||||
|
||||
[DataField(required: true)]
|
||||
public List<ProtoId<StackPrototype>> Stacks = new();
|
||||
}
|
||||
@@ -34,7 +34,7 @@ public sealed partial class SkillRequired : CP14WorkbenchCraftRequirement
|
||||
return haveAllSkills;
|
||||
}
|
||||
|
||||
public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
public override void PostCraft(EntityManager entManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ public sealed partial class MaterialResource : CP14WorkbenchCraftRequirement
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
public override void PostCraft(EntityManager entManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
{
|
||||
var stackSystem = entManager.System<SharedStackSystem>();
|
||||
|
||||
|
||||
@@ -30,7 +30,9 @@ public sealed partial class ProtoIdResource : CP14WorkbenchCraftRequirement
|
||||
return indexedIngredients.TryGetValue(ProtoId, out var availableQuantity) && availableQuantity >= Count;
|
||||
}
|
||||
|
||||
public override void PostCraft(EntityManager entManager,IPrototypeManager protoManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
public override void PostCraft(EntityManager entManager,
|
||||
HashSet<EntityUid> placedEntities,
|
||||
EntityUid user)
|
||||
{
|
||||
var requiredCount = Count;
|
||||
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
/*
|
||||
* This file is sublicensed under MIT License
|
||||
* https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT
|
||||
*/
|
||||
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
using Content.Shared.Stacks;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared._CP14.Workbench.Requirements;
|
||||
|
||||
public sealed partial class StackGroupResource : CP14WorkbenchCraftRequirement
|
||||
{
|
||||
public override bool HideRecipe { get; set; } = false;
|
||||
|
||||
[DataField(required: true)]
|
||||
public ProtoId<CP14StackGroupPrototype> Group;
|
||||
|
||||
[DataField]
|
||||
public int Count = 1;
|
||||
|
||||
public override bool CheckRequirement(EntityManager entManager,
|
||||
IPrototypeManager protoManager,
|
||||
HashSet<EntityUid> placedEntities,
|
||||
EntityUid user,
|
||||
CP14WorkbenchRecipePrototype recipe)
|
||||
{
|
||||
if (!protoManager.TryIndex(Group, out var indexedGroup))
|
||||
return false;
|
||||
|
||||
var count = 0;
|
||||
foreach (var ent in placedEntities)
|
||||
{
|
||||
if (!entManager.TryGetComponent<StackComponent>(ent, out var stack))
|
||||
continue;
|
||||
|
||||
if (!indexedGroup.Stacks.Contains(stack.StackTypeId))
|
||||
continue;
|
||||
|
||||
count += stack.Count;
|
||||
}
|
||||
|
||||
if (count < Count)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager,
|
||||
HashSet<EntityUid> placedEntities,
|
||||
EntityUid user)
|
||||
{
|
||||
var stackSystem = entManager.System<SharedStackSystem>();
|
||||
|
||||
if (!protoManager.TryIndex(Group, out var indexedGroup))
|
||||
return;
|
||||
|
||||
var requiredCount = Count;
|
||||
foreach (var placedEntity in placedEntities)
|
||||
{
|
||||
if (!entManager.TryGetComponent<StackComponent>(placedEntity, out var stack))
|
||||
continue;
|
||||
|
||||
if (!indexedGroup.Stacks.Contains(stack.StackTypeId))
|
||||
continue;
|
||||
|
||||
var count = (int)MathF.Min(requiredCount, stack.Count);
|
||||
|
||||
if (stack.Count - count <= 0)
|
||||
entManager.DeleteEntity(placedEntity);
|
||||
else
|
||||
stackSystem.SetCount(placedEntity, stack.Count - count, stack);
|
||||
|
||||
requiredCount -= count;
|
||||
}
|
||||
}
|
||||
|
||||
public override string GetRequirementTitle(IPrototypeManager protoManager)
|
||||
{
|
||||
var indexedGroup = protoManager.Index(Group);
|
||||
|
||||
return $"{Loc.GetString(indexedGroup.Name)} x{Count}";
|
||||
}
|
||||
|
||||
public override EntityPrototype? GetRequirementEntityView(IPrototypeManager protoManager)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public override SpriteSpecifier? GetRequirementTexture(IPrototypeManager protoManager)
|
||||
{
|
||||
var indexedGroup = protoManager.Index(Group);
|
||||
|
||||
return !protoManager.TryIndex(indexedGroup.Stacks.FirstOrNull(), out var indexedStack) ? null : indexedStack.Icon;
|
||||
}
|
||||
}
|
||||
@@ -44,7 +44,7 @@ public sealed partial class StackResource : CP14WorkbenchCraftRequirement
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager,
|
||||
public override void PostCraft(EntityManager entManager,
|
||||
HashSet<EntityUid> placedEntities,
|
||||
EntityUid user)
|
||||
{
|
||||
|
||||
@@ -50,7 +50,7 @@ public sealed partial class TagResource : CP14WorkbenchCraftRequirement
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
public override void PostCraft(EntityManager entManager, HashSet<EntityUid> placedEntities, EntityUid user)
|
||||
{
|
||||
var tagSystem = entManager.System<TagSystem>();
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@ public abstract partial class CP14WorkbenchCraftRequirement
|
||||
/// An event that is triggered after crafting. This is the place to put important things like removing items, spending stacks or other things.
|
||||
/// </summary>
|
||||
public abstract void PostCraft(EntityManager entManager,
|
||||
IPrototypeManager protoManager,
|
||||
HashSet<EntityUid> placedEntities,
|
||||
EntityUid user);
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
cp14-stack-dirt-block = dirt blocks
|
||||
cp14-stack-stone-block = stone blocks
|
||||
cp14-stack-marble-block = marble rocks
|
||||
cp14-stack-wood-planks = oak planks
|
||||
cp14-stack-wood-planks-birch = birch planks
|
||||
cp14-stack-wood-planks = wooden planks
|
||||
cp14-stack-nails = nails
|
||||
cp14-stack-cloth = rolls of fabric
|
||||
cp14-stack-flora = tufts of grass
|
||||
@@ -23,5 +22,3 @@ cp14-stack-wallpaper = rolls of wallpaper
|
||||
cp14-stack-glass-sheet = glass
|
||||
|
||||
cp14-stack-ash-pile = pile of ashes
|
||||
|
||||
cp14-stack-group-wooden-planks-any = planks (any)
|
||||
@@ -10,6 +10,7 @@ cp14-tiles-sand = sand
|
||||
cp14-tiles-snow = snow
|
||||
cp14-tiles-snow-deep = deep snow
|
||||
cp14-tiles-snow-deep-deep = deep deep snow
|
||||
cp14-tiles-marble-cave = marble floor
|
||||
|
||||
# Produced
|
||||
cp14-tiles-foundation = foundation
|
||||
@@ -61,7 +62,7 @@ cp14-tiles-stonebricks-small-carved2 = carved brick floor
|
||||
cp14-tiles-stonebricks-square-carved = carved brick floor
|
||||
cp14-tiles-stonebricks = stonebrick floor
|
||||
cp14-tiles-stonebricks-weather = street stonebrick floor
|
||||
cp14-tiles-stonebricks-marble = marble floor
|
||||
cp14-tiles-stonebricks-marble = marble brick floor
|
||||
|
||||
cp14-tiles-lucens-woodplanks = lucens woodplanks
|
||||
cp14-tiles-lucens-woodplanks-big = big lucens planks
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
cp14-stack-dirt-block = блоки земли
|
||||
cp14-stack-stone-block = каменные блоки
|
||||
cp14-stack-marble-block = мраморные камни
|
||||
cp14-stack-wood-planks = дубовые доски
|
||||
cp14-stack-wood-planks-birch = березовые доски
|
||||
cp14-stack-wood-planks = деревянные доски
|
||||
cp14-stack-nails = гвозди
|
||||
cp14-stack-cloth = рулоны ткани
|
||||
cp14-stack-flora = пучки травы
|
||||
@@ -23,7 +22,3 @@ cp14-stack-wallpaper = рулон обоев
|
||||
cp14-stack-glass-sheet = стекло
|
||||
|
||||
cp14-stack-ash-pile = кучка пепла
|
||||
|
||||
|
||||
|
||||
cp14-stack-group-wooden-planks-any = доски (любые)
|
||||
@@ -10,6 +10,7 @@ cp14-tiles-sand = песок
|
||||
cp14-tiles-snow = снег
|
||||
cp14-tiles-snow-deep = глубокий снег
|
||||
cp14-tiles-snow-deep-deep = очень глубокий снег
|
||||
cp14-tiles-marble-cave = мраморный пол
|
||||
|
||||
# Produced
|
||||
cp14-tiles-foundation = фундамент
|
||||
@@ -61,7 +62,7 @@ cp14-tiles-stonebricks-small-carved2 = пол из резного кирпича
|
||||
cp14-tiles-stonebricks-square-carved = пол из резного кирпича
|
||||
cp14-tiles-stonebricks = каменный кирпичный пол
|
||||
cp14-tiles-stonebricks-weather = уличный каменный кирпичный пол
|
||||
cp14-tiles-stonebricks-marble = мраморный пол
|
||||
cp14-tiles-stonebricks-marble = мраморный кирпич
|
||||
|
||||
cp14-tiles-lucens-woodplanks = люценcовые доски
|
||||
cp14-tiles-lucens-woodplanks-big = большие люценcовые доски
|
||||
|
||||
129
Resources/Maps/_CP14/Empties/cave_empty.yml
Normal file
129
Resources/Maps/_CP14/Empties/cave_empty.yml
Normal file
@@ -0,0 +1,129 @@
|
||||
meta:
|
||||
format: 7
|
||||
category: Map
|
||||
engineVersion: 250.0.0
|
||||
forkId: ""
|
||||
forkVersion: ""
|
||||
time: 04/08/2025 12:22:24
|
||||
entityCount: 1
|
||||
maps:
|
||||
- 2
|
||||
grids:
|
||||
- 2
|
||||
orphans: []
|
||||
nullspace: []
|
||||
tilemap:
|
||||
0: Space
|
||||
9: CP14FloorBase
|
||||
12: CP14FloorBirchWoodPlanksCruciform
|
||||
8: CP14FloorDirt
|
||||
27: CP14FloorFoundation
|
||||
28: CP14FloorGrass
|
||||
29: CP14FloorGrassLight
|
||||
10: CP14FloorGrassTall
|
||||
14: CP14FloorIce
|
||||
13: CP14FloorLucensWoodPlanks
|
||||
32: CP14FloorOakWoodPlanks
|
||||
2: CP14FloorOakWoodPlanksBig
|
||||
4: CP14FloorOakWoodPlanksBroken
|
||||
1: CP14FloorOakWoodPlanksCruciform
|
||||
3: CP14FloorOakWoodPlanksStairways
|
||||
11: CP14FloorRedWoodPlanksCruciform
|
||||
49: CP14FloorStonebricks
|
||||
50: CP14FloorStonebricksSmallCarved1
|
||||
51: CP14FloorStonebricksSmallCarved2
|
||||
7: CP14FloorStonebricksSquareCarved
|
||||
6: CP14FloorWoodPlanksBurned
|
||||
5: CP14FloorWoodPlanksStairwaysBurned
|
||||
53: FloorIce
|
||||
entities:
|
||||
- proto: ""
|
||||
entities:
|
||||
- uid: 2
|
||||
components:
|
||||
- type: MetaData
|
||||
name: Map Entity
|
||||
- type: Transform
|
||||
- type: Map
|
||||
mapPaused: True
|
||||
- type: PhysicsMap
|
||||
- type: GridTree
|
||||
- type: MovedGrids
|
||||
- type: MapAtmosphere
|
||||
space: False
|
||||
mixture:
|
||||
volume: 2500
|
||||
immutable: True
|
||||
temperature: 293.15
|
||||
moles:
|
||||
- 21.82478
|
||||
- 82.10312
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- type: CP14WeatherController
|
||||
entries:
|
||||
- weight: 2
|
||||
visuals: null
|
||||
- visuals: CP14Mist
|
||||
- type: MapGrid
|
||||
chunks:
|
||||
0,0:
|
||||
ind: 0,0
|
||||
tiles: MQAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
version: 6
|
||||
-1,0:
|
||||
ind: -1,0
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
version: 6
|
||||
-1,-1:
|
||||
ind: -1,-1
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAMQAAAAAA
|
||||
version: 6
|
||||
0,-1:
|
||||
ind: 0,-1
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
version: 6
|
||||
- type: Broadphase
|
||||
- type: Physics
|
||||
bodyStatus: InAir
|
||||
angularDamping: 0.05
|
||||
linearDamping: 0.05
|
||||
fixedRotation: False
|
||||
canCollide: False
|
||||
bodyType: Dynamic
|
||||
- type: Fixtures
|
||||
fixtures: {}
|
||||
- type: OccluderTree
|
||||
- type: SpreaderGrid
|
||||
- type: Shuttle
|
||||
- type: GridPathfinding
|
||||
- type: Gravity
|
||||
gravityShakeSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Effects/alert.ogg
|
||||
inherent: True
|
||||
enabled: True
|
||||
- type: Biome
|
||||
forcedMarkerLayers: []
|
||||
markerLayers: []
|
||||
loadedMarkers: {}
|
||||
pendingMarkers: {}
|
||||
loadedChunks: []
|
||||
entities: {}
|
||||
decals: {}
|
||||
modifiedTiles: {}
|
||||
template: CP14CavesIndestructibleFill
|
||||
layers: []
|
||||
- type: DecalGrid
|
||||
chunkCollection:
|
||||
version: 2
|
||||
nodes: []
|
||||
- type: GasTileOverlay
|
||||
...
|
||||
149
Resources/Maps/_CP14/Empties/grassland_empty.yml
Normal file
149
Resources/Maps/_CP14/Empties/grassland_empty.yml
Normal file
@@ -0,0 +1,149 @@
|
||||
meta:
|
||||
format: 7
|
||||
category: Map
|
||||
engineVersion: 250.0.0
|
||||
forkId: ""
|
||||
forkVersion: ""
|
||||
time: 04/08/2025 12:18:15
|
||||
entityCount: 1
|
||||
maps:
|
||||
- 2
|
||||
grids:
|
||||
- 2
|
||||
orphans: []
|
||||
nullspace: []
|
||||
tilemap:
|
||||
0: Space
|
||||
9: CP14FloorBase
|
||||
10: CP14FloorBirchWoodPlanks
|
||||
15: CP14FloorBirchWoodPlanksBig
|
||||
21: CP14FloorBirchWoodPlanksCruciform
|
||||
20: CP14FloorDarkWoodPlanksBig
|
||||
8: CP14FloorDarkWoodPlanksStairways
|
||||
2: CP14FloorDirt
|
||||
4: CP14FloorFoundation
|
||||
28: CP14FloorGrass
|
||||
29: CP14FloorGrassLight
|
||||
30: CP14FloorGrassTall
|
||||
31: CP14FloorIce
|
||||
26: CP14FloorLucensWoodPlanksCruciform
|
||||
27: CP14FloorLucensWoodPlanksStairways
|
||||
14: CP14FloorMarble
|
||||
5: CP14FloorOakWoodPlanks
|
||||
19: CP14FloorOakWoodPlanksBig
|
||||
6: CP14FloorOakWoodPlanksCruciform
|
||||
7: CP14FloorOakWoodPlanksStairways
|
||||
1: CP14FloorSand
|
||||
23: CP14FloorSnow
|
||||
24: CP14FloorSnowDeep
|
||||
22: CP14FloorSnowDeepDeep
|
||||
3: CP14FloorStonebricks
|
||||
13: CP14FloorStonebricksSmallCarved1
|
||||
17: CP14FloorStonebricksSmallCarved2
|
||||
25: CP14FloorStonebricksSnowed
|
||||
16: CP14FloorStonebricksSquareCarved
|
||||
11: CP14FloorWoodPlanksBurned
|
||||
12: CP14FloorWoodPlanksStairwaysBurned
|
||||
18: FloorIce
|
||||
entities:
|
||||
- proto: ""
|
||||
entities:
|
||||
- uid: 2
|
||||
components:
|
||||
- type: MetaData
|
||||
name: Map Entity
|
||||
- type: Transform
|
||||
- type: Map
|
||||
mapPaused: True
|
||||
- type: PhysicsMap
|
||||
- type: GridTree
|
||||
- type: MovedGrids
|
||||
- type: Broadphase
|
||||
- type: Roof
|
||||
data: {}
|
||||
# - type: BecomesStation
|
||||
# id: Comoss # ENTER YOUR NAME OR DELETE IT
|
||||
- type: CP14WeatherController
|
||||
entries:
|
||||
- weight: 3
|
||||
visuals: null
|
||||
- visuals: CP14Mist
|
||||
- visuals: CP14Rain
|
||||
- type: LightCycle
|
||||
- type: SunShadow
|
||||
- type: SunShadowCycle
|
||||
- type: Biome
|
||||
forcedMarkerLayers: []
|
||||
markerLayers: []
|
||||
loadedMarkers: {}
|
||||
pendingMarkers: {}
|
||||
loadedChunks: []
|
||||
entities: {}
|
||||
decals: {}
|
||||
modifiedTiles: {}
|
||||
template: CP14SandOceanFill
|
||||
layers: []
|
||||
- type: MapGrid
|
||||
chunks:
|
||||
-1,0:
|
||||
ind: -1,0
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAHQAAAAAAHAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAHQAAAAAAHAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
version: 6
|
||||
0,-1:
|
||||
ind: 0,-1
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAHAAAAAAAHQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAHAAAAAAAHQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
version: 6
|
||||
0,0:
|
||||
ind: 0,0
|
||||
tiles: HgAAAAAAHAAAAAAAHQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAHAAAAAAAHQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
version: 6
|
||||
-1,-1:
|
||||
ind: -1,-1
|
||||
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAHQAAAAAAHAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAHQAAAAAAHAAAAAAAHgAAAAAA
|
||||
version: 6
|
||||
- type: Physics
|
||||
bodyStatus: InAir
|
||||
angularDamping: 0.05
|
||||
linearDamping: 0.05
|
||||
fixedRotation: False
|
||||
canCollide: False
|
||||
bodyType: Dynamic
|
||||
- type: Fixtures
|
||||
fixtures: {}
|
||||
- type: OccluderTree
|
||||
- type: SpreaderGrid
|
||||
- type: Shuttle
|
||||
- type: GridPathfinding
|
||||
- type: CP14CloudShadows
|
||||
- type: MapLight
|
||||
ambientLightColor: '#D8B059FF'
|
||||
- type: Gravity
|
||||
gravityShakeSound: !type:SoundPathSpecifier
|
||||
path: /Audio/Effects/alert.ogg
|
||||
inherent: True
|
||||
enabled: True
|
||||
- type: MapAtmosphere
|
||||
space: False
|
||||
mixture:
|
||||
volume: 2500
|
||||
immutable: True
|
||||
temperature: 293.15
|
||||
moles:
|
||||
- 21.824879
|
||||
- 82.10312
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- type: DecalGrid
|
||||
chunkCollection:
|
||||
version: 2
|
||||
nodes: []
|
||||
- type: GasTileOverlay
|
||||
...
|
||||
File diff suppressed because it is too large
Load Diff
@@ -43,9 +43,10 @@ entities:
|
||||
data: {}
|
||||
- type: CP14CloudShadows
|
||||
- type: MapLight
|
||||
- type: LightCycle
|
||||
ambientLightColor: "#DDDDDDFF"
|
||||
- type: SunShadow
|
||||
- type: SunShadowCycle
|
||||
alpha: 0.8
|
||||
direction: 1, -1.5
|
||||
- type: Biome
|
||||
forcedMarkerLayers: []
|
||||
markerLayers: []
|
||||
|
||||
111291
Resources/Maps/_CP14/factoria.yml
Normal file
111291
Resources/Maps/_CP14/factoria.yml
Normal file
File diff suppressed because it is too large
Load Diff
2320
Resources/Maps/_CP14/factoria_d.yml
Normal file
2320
Resources/Maps/_CP14/factoria_d.yml
Normal file
File diff suppressed because it is too large
Load Diff
@@ -84,27 +84,4 @@
|
||||
- type: Sprite
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/insulated_mantle.rsi
|
||||
- type: Clothing
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/insulated_mantle.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CP14ClothingCloakBase
|
||||
id: CP14ClothingCloakBlackSyurko
|
||||
name: black surcoats
|
||||
description: A long and roomy cloak that serves to protect your armour.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/black_syurko.rsi
|
||||
- type: Clothing
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/black_syurko.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CP14ClothingCloakBase
|
||||
id: CP14ClothingCloakRedSyurko
|
||||
name: red surcoats
|
||||
description: A long and roomy cloak that serves to protect your armour.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/red_syurko.rsi
|
||||
- type: Clothing
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/red_syurko.rsi
|
||||
|
||||
sprite: _CP14/Clothing/Cloak/Roles/General/insulated_mantle.rsi
|
||||
@@ -12,15 +12,4 @@
|
||||
- type: Sprite
|
||||
sprite: _CP14/Clothing/Cloak/Roles/Guard/blue.rsi
|
||||
- type: Clothing
|
||||
sprite: _CP14/Clothing/Cloak/Roles/Guard/blue.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CP14ClothingCloakGuardBase
|
||||
id: CP14ClothingCloakGuardSyurko
|
||||
name: guard surcoats
|
||||
description: A long and roomy cloak that serves to protect your armour.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Clothing/Cloak/Roles/Guard/guard_syurko.rsi
|
||||
- type: Clothing
|
||||
sprite: _CP14/Clothing/Cloak/Roles/Guard/guard_syurko.rsi
|
||||
sprite: _CP14/Clothing/Cloak/Roles/Guard/blue.rsi
|
||||
@@ -84,4 +84,18 @@
|
||||
- type: Sprite
|
||||
sprite: _CP14/Clothing/Head/Roles/General/jagermeister_hat.rsi
|
||||
- type: Clothing
|
||||
sprite: _CP14/Clothing/Head/Roles/General/jagermeister_hat.rsi
|
||||
sprite: _CP14/Clothing/Head/Roles/General/jagermeister_hat.rsi
|
||||
|
||||
- type: entity
|
||||
parent: CP14ClothingHeadBase
|
||||
id: CP14ClothingHeadStrawHat
|
||||
name: straw hat
|
||||
description: Easy to make, not too bad to lose.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Clothing/Head/Roles/General/straw_hat.rsi
|
||||
- type: Clothing
|
||||
sprite: _CP14/Clothing/Head/Roles/General/straw_hat.rsi
|
||||
- type: Construction
|
||||
graph: CP14StrawHat
|
||||
node: cp14headstrawhat
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
- type: entity
|
||||
id: CP14ConstrainedSpawnerBase
|
||||
abstract: true
|
||||
parent: MarkerBase
|
||||
description: lol
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- type: Physics
|
||||
bodyType: Static
|
||||
fixedRotation: true
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
spawn:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 15
|
||||
hard: false
|
||||
layer:
|
||||
- AllMask
|
||||
- type: TriggerOnCollide
|
||||
fixtureID: spawn
|
||||
- type: StepTrigger
|
||||
requiredTriggeredSpeed: 0
|
||||
stepOn: true
|
||||
|
||||
- type: entity
|
||||
parent: CP14ConstrainedSpawnerBase
|
||||
id: CP14ConstrainedSpawnerXeno
|
||||
name: xeno constrained spawner
|
||||
components:
|
||||
- type: TriggerOnCollide
|
||||
fixtureID: spawn
|
||||
- type: CP14ConstrainedSpawnerOnTrigger
|
||||
prototypes:
|
||||
- CP14MobXeno
|
||||
- CP14MobXenoDrone
|
||||
- CP14MobSpaceCobra
|
||||
- CP14MobSmallPurpleSnake
|
||||
- CP14MobPurpleSnake
|
||||
- MobLuminousEntity
|
||||
- MobLuminousObject
|
||||
- CP14MobWatcherMagmawing
|
||||
@@ -137,4 +137,18 @@
|
||||
color: green
|
||||
- state: frame
|
||||
- type: CP14BiomeSpawner
|
||||
biome: CP14LeafMaze
|
||||
biome: CP14LeafMaze
|
||||
|
||||
- type: entity
|
||||
id: CP14BiomeSpawnerMarbleCave
|
||||
parent: CP14BaseBiomeSpawner
|
||||
suffix: Marble cave
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: cave
|
||||
- state: frame
|
||||
- sprite: _CP14/Objects/Materials/marble_block.rsi
|
||||
state: stone_3
|
||||
- type: CP14BiomeSpawner
|
||||
biome: CP14MarbleCaves
|
||||
@@ -45,10 +45,8 @@
|
||||
0: Alive
|
||||
50: Dead
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed: 2
|
||||
baseSprintSpeed: 4
|
||||
friction: 0.5
|
||||
acceleration: 3
|
||||
baseWalkSpeed: 5
|
||||
baseSprintSpeed: 7
|
||||
- type: ProjectileBatteryAmmoProvider
|
||||
proto: WatcherBolt
|
||||
fireCost: 50
|
||||
|
||||
84
Resources/Prototypes/_CP14/Entities/Mobs/NPC/xeno_test.yml
Normal file
84
Resources/Prototypes/_CP14/Entities/Mobs/NPC/xeno_test.yml
Normal file
@@ -0,0 +1,84 @@
|
||||
- type: entity
|
||||
id: CP14MobXeno
|
||||
parent: MobXeno
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- CP14Monster
|
||||
|
||||
- type: entity
|
||||
id: CP14MobXenoDrone
|
||||
parent: MobXenoDrone
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- CP14Monster
|
||||
|
||||
- type: entity
|
||||
id: CP14MobSpaceCobra
|
||||
name: cobra
|
||||
parent: MobCobraSpace
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- CP14Monster
|
||||
- type: MeleeChemicalInjector
|
||||
transferAmount: 2
|
||||
- type: MeleeWeapon
|
||||
hidden: true
|
||||
soundHit:
|
||||
path: /Audio/Effects/bite.ogg
|
||||
angle: 0
|
||||
animation: WeaponArcBite
|
||||
damage:
|
||||
types:
|
||||
Piercing: 2
|
||||
Poison: 2
|
||||
|
||||
- type: entity
|
||||
id: CP14MobPurpleSnake
|
||||
parent: MobPurpleSnake
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- CP14Monster
|
||||
- type: MeleeWeapon
|
||||
angle: 0
|
||||
animation: WeaponArcBite
|
||||
damage:
|
||||
types:
|
||||
Piercing: 1
|
||||
- type: MeleeChemicalInjector
|
||||
transferAmount: 3
|
||||
|
||||
- type: entity
|
||||
id: CP14MobSmallPurpleSnake
|
||||
parent: MobSmallPurpleSnake
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- CP14Monster
|
||||
- type: SolutionTransfer
|
||||
maxTransferAmount: 0.2
|
||||
- type: MeleeWeapon
|
||||
angle: 0
|
||||
animation: WeaponArcBite
|
||||
damage:
|
||||
types:
|
||||
Piercing: 0.5
|
||||
- type: MeleeChemicalInjector
|
||||
transferAmount: 2
|
||||
|
||||
- type: entity
|
||||
id: CP14MobWatcherMagmawing
|
||||
parent: MobWatcherMagmawing
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- CP14Monster
|
||||
124
Resources/Prototypes/_CP14/Entities/Objects/Materials/rocks.yml
Normal file
124
Resources/Prototypes/_CP14/Entities/Objects/Materials/rocks.yml
Normal file
@@ -0,0 +1,124 @@
|
||||
- type: entity
|
||||
id: CP14DirtBlock1
|
||||
parent: BaseItem
|
||||
name: dirt block
|
||||
description: A block of excellent black soil.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
sprite: _CP14/Objects/Materials/dirt_block.rsi
|
||||
layers:
|
||||
- state: dirt
|
||||
map: ["base"]
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
collection: CP14Digging
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorDirt
|
||||
- type: Appearance
|
||||
- type: Stack
|
||||
stackType: CP14Dirt
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- dirt
|
||||
- dirt_2
|
||||
- dirt_3
|
||||
- type: Material
|
||||
- type: PhysicalComposition # точно ли это нужно?
|
||||
materialComposition:
|
||||
CP14Dirt: 100
|
||||
- type: CP14MagicEssenceContainer
|
||||
essences:
|
||||
Earth: 1
|
||||
|
||||
- type: entity
|
||||
id: CP14DirtBlock10
|
||||
parent: CP14DirtBlock1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14StoneBlock1
|
||||
parent: BaseItem
|
||||
name: stone block
|
||||
description: A block of cold stone.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
sprite: _CP14/Objects/Materials/stone_block.rsi
|
||||
layers:
|
||||
- state: stone
|
||||
map: ["base"]
|
||||
- type: Appearance
|
||||
- type: Stack
|
||||
stackType: CP14Stone
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- stone
|
||||
- stone_2
|
||||
- stone_3
|
||||
- type: Material
|
||||
- type: PhysicalComposition # точно ли это нужно?
|
||||
materialComposition:
|
||||
CP14Stone: 100
|
||||
- type: CP14MagicEssenceContainer
|
||||
essences:
|
||||
Earth: 1
|
||||
|
||||
- type: entity
|
||||
id: CP14StoneBlock10
|
||||
parent: CP14StoneBlock1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14MarbleBlock1
|
||||
parent: BaseItem
|
||||
name: marble block
|
||||
description: A block of white marble.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
sprite: _CP14/Objects/Materials/marble_block.rsi
|
||||
layers:
|
||||
- state: stone
|
||||
map: ["base"]
|
||||
- type: Appearance
|
||||
- type: Stack
|
||||
stackType: CP14MarbleStone
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- stone
|
||||
- stone_2
|
||||
- stone_3
|
||||
- type: Material
|
||||
- type: PhysicalComposition # точно ли это нужно?
|
||||
materialComposition:
|
||||
CP14MarbleStone: 100
|
||||
|
||||
- type: entity
|
||||
id: CP14MarbleBlock10
|
||||
parent: CP14MarbleBlock1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
@@ -1,90 +1,192 @@
|
||||
- type: entity
|
||||
id: CP14DirtBlock1
|
||||
id: CP14WoodLog
|
||||
parent: BaseItem
|
||||
name: dirt block
|
||||
description: A block of excellent black soil.
|
||||
name: wooden log
|
||||
description: A piece of unprocessed wood. Good material for building, or starting a fire.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
shape:
|
||||
- 0,0,1,0
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
sprite: _CP14/Objects/Materials/dirt_block.rsi
|
||||
sprite: _CP14/Objects/Materials/wood.rsi
|
||||
layers:
|
||||
- state: dirt
|
||||
- state: log
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
log: ""
|
||||
log_2: ""
|
||||
log_3: ""
|
||||
- type: Tag
|
||||
tags:
|
||||
- CP14FireplaceFuel
|
||||
- Wooden
|
||||
- type: Flammable
|
||||
fireSpread: false
|
||||
canResistFire: false
|
||||
alwaysCombustible: true
|
||||
canExtinguish: true
|
||||
cP14FireplaceFuel: 30
|
||||
damage:
|
||||
types:
|
||||
Heat: 1
|
||||
- type: Log
|
||||
spawnedPrototype: CP14WoodenPlanks1
|
||||
spawnCount: 3
|
||||
- type: Appearance
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Wood
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 25
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: WoodDestroy
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodenPlanks1
|
||||
parent: BaseItem
|
||||
name: wooden planks
|
||||
description: Treated and ready-to-use wood.
|
||||
categories: [ ForkFiltered ]
|
||||
suffix: 1
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood.rsi
|
||||
layers:
|
||||
- state: planks
|
||||
map: ["base"]
|
||||
- type: Tag
|
||||
tags:
|
||||
- CP14FireplaceFuel
|
||||
- Wooden
|
||||
- type: Flammable
|
||||
fireSpread: false
|
||||
canResistFire: false
|
||||
alwaysCombustible: true
|
||||
canExtinguish: true
|
||||
cP14FireplaceFuel: 12
|
||||
damage:
|
||||
types:
|
||||
Heat: 1
|
||||
- type: Appearance
|
||||
- type: Stack
|
||||
stackType: CP14WoodenPlanks
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- planks
|
||||
- planks_2
|
||||
- planks_3
|
||||
- type: Material
|
||||
- type: PhysicalComposition # точно ли это нужно?
|
||||
materialComposition:
|
||||
CP14WoodenPlanks: 100
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Wood
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 25
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: WoodDestroy
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodenPlanks10
|
||||
parent: CP14WoodenPlanks1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodenPlanks20
|
||||
parent: CP14WoodenPlanks1
|
||||
suffix: 20
|
||||
components:
|
||||
- type: Stack
|
||||
count: 20
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodLog
|
||||
parent: CP14WoodLog
|
||||
name: lucens log
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/lucens_wood.rsi
|
||||
layers:
|
||||
- state: log
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
log: ""
|
||||
log_2: ""
|
||||
log_3: ""
|
||||
- type: Log
|
||||
spawnedPrototype: CP14LucensWoodenPlanks1
|
||||
spawnCount: 3
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodenPlanks1
|
||||
parent: CP14WoodenPlanks1
|
||||
name: lucens planks
|
||||
suffix: 1
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/lucens_wood.rsi
|
||||
layers:
|
||||
- state: planks
|
||||
map: ["base"]
|
||||
- type: Stack
|
||||
stackType: CP14LucensWoodenPlanks
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- planks
|
||||
- planks_2
|
||||
- planks_3
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
collection: CP14Digging
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorDirt
|
||||
- type: Appearance
|
||||
- type: Stack
|
||||
stackType: CP14Dirt
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- dirt
|
||||
- dirt_2
|
||||
- dirt_3
|
||||
- type: Material
|
||||
- type: PhysicalComposition # точно ли это нужно?
|
||||
materialComposition:
|
||||
CP14Dirt: 100
|
||||
- type: CP14MagicEssenceContainer
|
||||
essences:
|
||||
Earth: 1
|
||||
- CP14FloorLucensWoodPlanks
|
||||
|
||||
- type: entity
|
||||
id: CP14DirtBlock10
|
||||
parent: CP14DirtBlock1
|
||||
id: CP14LucensWoodenPlanks10
|
||||
parent: CP14LucensWoodenPlanks1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14StoneBlock1
|
||||
parent: BaseItem
|
||||
name: stone block
|
||||
description: A block of cold stone.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
sprite: _CP14/Objects/Materials/stone_block.rsi
|
||||
layers:
|
||||
- state: stone
|
||||
map: ["base"]
|
||||
- type: Appearance
|
||||
- type: Stack
|
||||
stackType: CP14Stone
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- stone
|
||||
- stone_2
|
||||
- stone_3
|
||||
- type: Material
|
||||
- type: PhysicalComposition # точно ли это нужно?
|
||||
materialComposition:
|
||||
CP14Stone: 100
|
||||
- type: CP14MagicEssenceContainer
|
||||
essences:
|
||||
Earth: 1
|
||||
|
||||
- type: entity
|
||||
id: CP14StoneBlock10
|
||||
parent: CP14StoneBlock1
|
||||
suffix: 10
|
||||
id: CP14LucensWoodenPlanks20
|
||||
parent: CP14LucensWoodenPlanks1
|
||||
suffix: 20
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
count: 20
|
||||
|
||||
- type: entity
|
||||
id: CP14Nail1
|
||||
|
||||
@@ -1,241 +0,0 @@
|
||||
- type: entity
|
||||
id: CP14WoodLog
|
||||
parent: BaseItem
|
||||
name: wooden log
|
||||
description: A piece of unprocessed wood. Good material for building, or starting a fire.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
shape:
|
||||
- 0,0,1,0
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood.rsi
|
||||
layers:
|
||||
- state: log
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
log: ""
|
||||
log_2: ""
|
||||
log_3: ""
|
||||
- type: Tag
|
||||
tags:
|
||||
- CP14FireplaceFuel
|
||||
- Wooden
|
||||
- type: Flammable
|
||||
fireSpread: false
|
||||
canResistFire: false
|
||||
alwaysCombustible: true
|
||||
canExtinguish: true
|
||||
cP14FireplaceFuel: 30
|
||||
damage:
|
||||
types:
|
||||
Heat: 1
|
||||
- type: Log
|
||||
spawnedPrototype: CP14WoodenPlanks1
|
||||
spawnCount: 3
|
||||
- type: Appearance
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Wood
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 25
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: WoodDestroy
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodenPlanks1
|
||||
parent: BaseItem
|
||||
name: wooden planks
|
||||
description: Treated and ready-to-use wood.
|
||||
categories: [ ForkFiltered ]
|
||||
suffix: 1
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood.rsi
|
||||
layers:
|
||||
- state: planks
|
||||
map: ["base"]
|
||||
- type: Tag
|
||||
tags:
|
||||
- CP14FireplaceFuel
|
||||
- Wooden
|
||||
- type: Flammable
|
||||
fireSpread: false
|
||||
canResistFire: false
|
||||
alwaysCombustible: true
|
||||
canExtinguish: true
|
||||
cP14FireplaceFuel: 12
|
||||
damage:
|
||||
types:
|
||||
Heat: 1
|
||||
- type: Appearance
|
||||
- type: Stack
|
||||
stackType: CP14WoodenPlanks
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- planks
|
||||
- planks_2
|
||||
- planks_3
|
||||
- type: Material
|
||||
- type: PhysicalComposition # точно ли это нужно?
|
||||
materialComposition:
|
||||
CP14WoodenPlanks: 100
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Wood
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 25
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: WoodDestroy
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodenPlanks10
|
||||
parent: CP14WoodenPlanks1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14WoodenPlanks20
|
||||
parent: CP14WoodenPlanks1
|
||||
suffix: 20
|
||||
components:
|
||||
- type: Stack
|
||||
count: 20
|
||||
|
||||
# Lucen
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodLog
|
||||
parent: CP14WoodLog
|
||||
name: lucens log
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood_lucens.rsi
|
||||
layers:
|
||||
- state: log
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
log: ""
|
||||
log_2: ""
|
||||
log_3: ""
|
||||
- type: Log
|
||||
spawnedPrototype: CP14LucensWoodenPlanks1
|
||||
spawnCount: 3
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodenPlanks1
|
||||
parent: CP14WoodenPlanks1
|
||||
name: lucens planks
|
||||
suffix: 1
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood_lucens.rsi
|
||||
layers:
|
||||
- state: planks
|
||||
map: ["base"]
|
||||
- type: Stack
|
||||
stackType: CP14LucensWoodenPlanks
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- planks
|
||||
- planks_2
|
||||
- planks_3
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodenPlanks10
|
||||
parent: CP14LucensWoodenPlanks1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14LucensWoodenPlanks20
|
||||
parent: CP14LucensWoodenPlanks1
|
||||
suffix: 20
|
||||
components:
|
||||
- type: Stack
|
||||
count: 20
|
||||
|
||||
#Birch
|
||||
|
||||
- type: entity
|
||||
id: CP14BirchWoodLog
|
||||
parent: CP14WoodLog
|
||||
name: birch log
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood_birch.rsi
|
||||
layers:
|
||||
- state: log
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
log: ""
|
||||
log_2: ""
|
||||
log_3: ""
|
||||
- type: Log
|
||||
spawnedPrototype: CP14BirchWoodenPlanks1
|
||||
spawnCount: 3
|
||||
|
||||
- type: entity
|
||||
id: CP14BirchWoodenPlanks1
|
||||
parent: CP14WoodenPlanks1
|
||||
name: birch planks
|
||||
suffix: 1
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Materials/wood_birch.rsi
|
||||
layers:
|
||||
- state: planks
|
||||
map: ["base"]
|
||||
- type: Stack
|
||||
stackType: CP14BirchWoodenPlanks
|
||||
count: 1
|
||||
baseLayer: base
|
||||
layerStates:
|
||||
- planks
|
||||
- planks_2
|
||||
- planks_3
|
||||
|
||||
- type: entity
|
||||
id: CP14BirchWoodenPlanks10
|
||||
parent: CP14BirchWoodenPlanks1
|
||||
suffix: 10
|
||||
components:
|
||||
- type: Stack
|
||||
count: 10
|
||||
|
||||
- type: entity
|
||||
id: CP14BirchWoodenPlanks20
|
||||
parent: CP14BirchWoodenPlanks1
|
||||
suffix: 20
|
||||
components:
|
||||
- type: Stack
|
||||
count: 20
|
||||
@@ -66,6 +66,19 @@
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileMarbleBrick
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileMarbleSmallbricks
|
||||
name: marble small brick
|
||||
components:
|
||||
- type: Sprite
|
||||
state: marble_smallbricks
|
||||
- type: FloorTile
|
||||
outputs:
|
||||
- CP14FloorMarbleSmallbricks
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileMarbleSmallbricks
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileOakWoodplanks
|
||||
@@ -74,11 +87,6 @@
|
||||
- type: Sprite
|
||||
state: oak_woodplanks
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorOakWoodPlanks
|
||||
- type: Stack
|
||||
@@ -188,77 +196,4 @@
|
||||
outputs:
|
||||
- CP14FloorStonebricksSquareCarved
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileStonebricksSquareCarved
|
||||
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileBirchWoodplanks
|
||||
name: birch woodplanks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: birch_woodplanks
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorBirchWoodPlanks
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileBirchWoodplanks
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileBirchWoodplanksBig
|
||||
name: birch big woodplanks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: birch_woodplanks_big
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorBirchWoodPlanksBig
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileBirchWoodplanksBig
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileBirchWoodplanksCruciform
|
||||
name: birch cruciform woodplanks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: birch_woodplanks_cruciform
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorBirchWoodPlanksCruciform
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileBirchWoodplanksCruciform
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorTileBase
|
||||
id: CP14FloorTileBirchWoodplanksStairs
|
||||
name: birch stairs woodplanks
|
||||
components:
|
||||
- type: Sprite
|
||||
state: birch_woodplanks_stairways
|
||||
- type: FloorTile
|
||||
placeTileSound:
|
||||
path: /Audio/Effects/woodenclosetclose.ogg
|
||||
params:
|
||||
variation: 0.03
|
||||
volume: 2
|
||||
outputs:
|
||||
- CP14FloorBirchWoodPlanksStairways
|
||||
- type: Stack
|
||||
stackType: CP14FloorTileBirchWoodplanksStairs
|
||||
stackType: CP14FloorTileStonebricksSquareCarved
|
||||
@@ -1,49 +0,0 @@
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
id: CP14FishingRod
|
||||
name: fishing rod
|
||||
description: Wooden stick with string attached.
|
||||
categories: [ ForkFiltered ]
|
||||
components:
|
||||
- type: Item
|
||||
shape:
|
||||
- 0,0,0,1
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Tools/fishing_rod.rsi
|
||||
state: icon
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 50
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: MetalBreak
|
||||
- !type:CP14ModularDisassembleBehavior
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- type: CP14ModularCraftStartPoint
|
||||
startSlots:
|
||||
- FishingRodShaft
|
||||
- type: MeleeWeapon
|
||||
angle: 45
|
||||
attackRate: 1
|
||||
wideAnimationRotation: 135
|
||||
wideAnimation: CP14WeaponArcSlash
|
||||
damage:
|
||||
types:
|
||||
Blunt: 0.1
|
||||
soundHit:
|
||||
collection: MetalThud
|
||||
cPAnimationLength: 0.25
|
||||
- type: Clothing
|
||||
equipDelay: 0.25
|
||||
unequipDelay: 0.25
|
||||
quickEquip: false
|
||||
breakOnMove: false
|
||||
slots:
|
||||
- neck
|
||||
- type: CP14FishingRod
|
||||
@@ -2,14 +2,14 @@
|
||||
parent: BaseStructure
|
||||
id: CP14FloorWaterOptimized
|
||||
name: water
|
||||
suffix: Optimized, Empty
|
||||
description: A trough of plain water. Clean enough for consumption
|
||||
categories: [ HideSpawnMenu ]
|
||||
categories: [ ForkFiltered ]
|
||||
placement:
|
||||
mode: SnapgridCenter
|
||||
snap:
|
||||
- Wall
|
||||
components:
|
||||
- type: CP14FishingPool
|
||||
- type: PlacementReplacement
|
||||
key: floorTile
|
||||
- type: Sprite
|
||||
@@ -62,11 +62,30 @@
|
||||
- type: TileEntityEffect
|
||||
effects:
|
||||
- !type:ExtinguishReaction
|
||||
- type: FrictionContacts
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorWaterOptimized
|
||||
id: CP14FloorWaterOptimizedDeep
|
||||
name: deep water
|
||||
suffix: Deep, Air damage
|
||||
components:
|
||||
- type: Sprite
|
||||
drawdepth: OverMobs
|
||||
color: "#869dc2"
|
||||
- type: SpeedModifierContacts
|
||||
walkSpeedModifier: 0.2
|
||||
sprintSpeedModifier: 0.2
|
||||
- type: FrictionContacts
|
||||
- type: DamageContacts
|
||||
damage:
|
||||
types:
|
||||
Asphyxiation: 2.5
|
||||
|
||||
- type: entity
|
||||
parent: CP14FloorWaterOptimized
|
||||
id: CP14FloorWater
|
||||
categories: [ ForkFiltered ]
|
||||
suffix: Normal
|
||||
components:
|
||||
- type: DrawableSolution
|
||||
solution: pool
|
||||
@@ -121,4 +140,4 @@
|
||||
- CP14GatherableWaterAirLily
|
||||
chance: 1
|
||||
offset: 0.2
|
||||
deleteSpawnerAfterSpawn: false
|
||||
deleteSpawnerAfterSpawn: false
|
||||
@@ -24,7 +24,7 @@
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.2,-0.2,0.2,0.2"
|
||||
bounds: "-0.35,-0.4,0.35,0.4"
|
||||
density: 1000
|
||||
layer:
|
||||
- WallLayer
|
||||
@@ -82,6 +82,15 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
offset: 0,1.55
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.18,-0.35,0.18,0.35"
|
||||
density: 2000
|
||||
layer:
|
||||
- WallLayer
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
@@ -139,7 +148,7 @@
|
||||
id: CP14FloraTreeSnow
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/Flora/tree_snow.rsi
|
||||
sprite: _CP14/Structures/Flora/snow_trees.rsi
|
||||
layers:
|
||||
- state: tree01
|
||||
map: ["random"]
|
||||
@@ -247,6 +256,15 @@
|
||||
- random:
|
||||
tree01: ""
|
||||
tree02: ""
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.18,-0.35,0.18,0.35"
|
||||
density: 2000
|
||||
layer:
|
||||
- WallLayer
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
@@ -279,151 +297,3 @@
|
||||
CP14LucensWoodLog:
|
||||
min: 3
|
||||
max: 6
|
||||
|
||||
- type: entity
|
||||
parent: CP14BaseTree
|
||||
id: CP14FloraTreeBirchSmall
|
||||
suffix: Small
|
||||
components:
|
||||
- type: Sprite
|
||||
offset: 0,1.3
|
||||
sprite: _CP14/Structures/Flora/tree_birch_small.rsi
|
||||
layers:
|
||||
- state: tree01
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
tree01: ""
|
||||
tree02: ""
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTypeTrigger
|
||||
damageType: Heat
|
||||
damage: 100
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 75
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Effects/tree_fell.ogg
|
||||
params:
|
||||
volume: 5
|
||||
variation: 0.05
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
CP14BirchWoodLog:
|
||||
min: 1
|
||||
max: 2
|
||||
|
||||
- type: entity
|
||||
parent: CP14BaseTree
|
||||
id: CP14FloraTreeBirchMedium
|
||||
suffix: Medium
|
||||
components:
|
||||
- type: Sprite
|
||||
offset: 0,1.8
|
||||
sprite: _CP14/Structures/Flora/tree_birch_medium.rsi
|
||||
layers:
|
||||
- state: tree01
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
tree01: ""
|
||||
tree02: ""
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTypeTrigger
|
||||
damageType: Heat
|
||||
damage: 100
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 75
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Effects/tree_fell.ogg
|
||||
params:
|
||||
volume: 5
|
||||
variation: 0.05
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
CP14BirchWoodLog:
|
||||
min: 2
|
||||
max: 4
|
||||
|
||||
- type: entity
|
||||
parent: CP14BaseTree
|
||||
id: CP14FloraTreeBirchLarge
|
||||
suffix: Large
|
||||
components:
|
||||
- type: Sprite
|
||||
offset: 0,2.6
|
||||
sprite: _CP14/Structures/Flora/tree_birch_big.rsi
|
||||
layers:
|
||||
- state: tree01
|
||||
map: ["random"]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
tree01: ""
|
||||
tree02: ""
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTypeTrigger
|
||||
damageType: Heat
|
||||
damage: 100
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 75
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Effects/tree_fell.ogg
|
||||
params:
|
||||
volume: 5
|
||||
variation: 0.05
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
CP14BirchWoodLog:
|
||||
min: 3
|
||||
max: 6
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- type: entity
|
||||
parent:
|
||||
- BaseStructure
|
||||
- CP14BaseFlammable
|
||||
id: CP14WoodenTableBase
|
||||
id: CP14TableBase
|
||||
categories: [ ForkFiltered ]
|
||||
abstract: true
|
||||
components:
|
||||
@@ -17,6 +16,31 @@
|
||||
- TableMask
|
||||
layer:
|
||||
- TableLayer
|
||||
- type: Damageable
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 60
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Effects/picaxe2.ogg
|
||||
- type: FootstepModifier
|
||||
footstepSoundCollection:
|
||||
collection: FootstepHull
|
||||
- type: Climbable
|
||||
- type: PlaceableSurface
|
||||
|
||||
- type: entity
|
||||
parent:
|
||||
- CP14TableBase
|
||||
- CP14BaseFlammable
|
||||
id: CP14WoodenTableBase
|
||||
abstract: true
|
||||
components:
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Wood
|
||||
@@ -52,8 +76,6 @@
|
||||
- type: FireVisuals
|
||||
sprite: _CP14/Effects/fire.rsi
|
||||
normalState: full
|
||||
- type: Climbable
|
||||
- type: PlaceableSurface
|
||||
|
||||
- type: entity
|
||||
parent: CP14WoodenTableBase
|
||||
@@ -116,4 +138,25 @@
|
||||
state: full
|
||||
- type: Construction
|
||||
graph: CP14TableWoodenCounter
|
||||
node: CP14TableWoodenCounter
|
||||
node: CP14TableWoodenCounter
|
||||
|
||||
- type: entity
|
||||
parent: CP14TableBase
|
||||
id: CP14TableMarble
|
||||
name: marble table
|
||||
description: Exquisite white marble table.
|
||||
components:
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
damageModifierSet: Metallic
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/Furniture/Tables/marble.rsi
|
||||
- type: Icon
|
||||
sprite: _CP14/Structures/Furniture/Tables/marble.rsi
|
||||
state: full
|
||||
- type: IconSmooth
|
||||
key: state
|
||||
base: state
|
||||
- type: FootstepModifier
|
||||
footstepSoundCollection:
|
||||
collection: FootstepFloor
|
||||
@@ -38,6 +38,39 @@
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
|
||||
- type: entity
|
||||
id: CP14WallMarbleStone
|
||||
name: marble
|
||||
parent: CP14WallStone
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/Walls/Natural/marble_stone.rsi
|
||||
- type: Icon
|
||||
sprite: _CP14/Structures/Walls/Natural/marble_stone.rsi
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 350
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 100
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Effects/break_stone.ogg
|
||||
params:
|
||||
volume: -6
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
CP14MarbleBlock1:
|
||||
min: 2
|
||||
max: 3
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
|
||||
- type: entity
|
||||
id: CP14WallStoneIndestructable
|
||||
|
||||
@@ -71,6 +71,25 @@
|
||||
sprite: _CP14/Structures/Walls/marblebricks_stone_wall.rsi
|
||||
- type: IconSmooth
|
||||
base: stonebricks
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
damageModifierSet: Rock
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Effects/break_stone.ogg
|
||||
params:
|
||||
volume: -6
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- type: Construction
|
||||
graph: CP14WallMarbleBrick
|
||||
node: CP14WallMarbleBrick
|
||||
- type: CP14WallpaperHolder
|
||||
|
||||
- type: entity
|
||||
@@ -128,18 +147,6 @@
|
||||
node: WallWooden
|
||||
- type: CP14WallpaperHolder
|
||||
|
||||
- type: entity
|
||||
id: CP14WallWoodenBirch
|
||||
parent: CP14WallWooden
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/Walls/wooden_wall_birch.rsi
|
||||
- type: Icon
|
||||
sprite: _CP14/Structures/Walls/wooden_wall_birch.rsi
|
||||
- type: Construction
|
||||
graph: CP14WallWood
|
||||
node: WallWoodenBirch
|
||||
|
||||
- type: entity
|
||||
id: CP14WallWoodenPalisade
|
||||
name: palisade
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
- type: CP14FishingPoolLootTable
|
||||
id: Default
|
||||
prototypes:
|
||||
- CP14BaseLockpick
|
||||
@@ -1,13 +0,0 @@
|
||||
- type: CP14FishingProcessStyleSheet
|
||||
id: Default
|
||||
background:
|
||||
texture: /Textures/_CP14/Interface/Fishing/Styles/Default/background.png
|
||||
offset: 10, 0
|
||||
handleOffset: 14, 5
|
||||
handleSize: 11, 141
|
||||
progressOffset: 4, 4
|
||||
progressSize: 2, 142
|
||||
handle:
|
||||
topTexture: /Textures/_CP14/Interface/Fishing/Styles/Default/Handle/top.png
|
||||
middleTexture: /Textures/_CP14/Interface/Fishing/Styles/Default/Handle/middle.png
|
||||
bottomTexture: /Textures/_CP14/Interface/Fishing/Styles/Default/Handle/bottom.png
|
||||
@@ -14,8 +14,6 @@
|
||||
- CP14ClothingCloakBlue
|
||||
- CP14ClothingCloakFurCoat
|
||||
- CP14ClothingCloakInsulated
|
||||
- CP14ClothingCloakBlackSyurko
|
||||
- CP14ClothingCloakRedSyurko
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingCloakFurcapeBlack
|
||||
@@ -27,16 +25,6 @@
|
||||
equipment:
|
||||
cloak: CP14ClothingCloakFurcapeBlue
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingCloakBlackSyurko
|
||||
equipment:
|
||||
cloak: CP14ClothingCloakBlackSyurko
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingCloakRedSyurko
|
||||
equipment:
|
||||
cloak: CP14ClothingCloakRedSyurko
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingCloakMaidArpon
|
||||
equipment:
|
||||
@@ -202,6 +190,7 @@
|
||||
- CP14ClothingHeadJestersCap
|
||||
- CP14ClothingHeadHuntersHat
|
||||
- CP14ClothingHeadJagermeisterHat
|
||||
- CP14ClothingHeadStrawHat
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingHeadMetalHeadband
|
||||
@@ -223,6 +212,11 @@
|
||||
equipment:
|
||||
head: CP14ClothingHeadJestersCap
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingHeadStrawHat
|
||||
equipment:
|
||||
head: CP14ClothingHeadStrawHat
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingHeadHuntersHat
|
||||
equipment:
|
||||
|
||||
@@ -7,18 +7,12 @@
|
||||
minLimit: 0
|
||||
loadouts:
|
||||
- CP14ClothingCloakGuardBlue
|
||||
- CP14ClothingCloakGuardSyurko
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingCloakGuardBlue
|
||||
equipment:
|
||||
cloak: CP14ClothingCloakGuardBlue
|
||||
|
||||
- type: loadout
|
||||
id: CP14ClothingCloakGuardSyurko
|
||||
equipment:
|
||||
cloak: CP14ClothingCloakGuardSyurko
|
||||
|
||||
# Head
|
||||
|
||||
- type: loadoutGroup
|
||||
|
||||
54
Resources/Prototypes/_CP14/Maps/Factoria.yml
Normal file
54
Resources/Prototypes/_CP14/Maps/Factoria.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
- type: gameMap
|
||||
id: Factoria
|
||||
mapName: "Factoria"
|
||||
mapPath: /Maps/_CP14/factoria.yml
|
||||
maxRandomOffset: 0
|
||||
randomRotation: false
|
||||
minPlayers: 0
|
||||
stations:
|
||||
Factoria:
|
||||
stationProto: CP14BaseExpedition
|
||||
components:
|
||||
- type: StationNameSetup
|
||||
mapNameTemplate: "Factoria"
|
||||
- type: StationJobs
|
||||
availableJobs:
|
||||
#Mercenary
|
||||
CP14Guildmaster: [1, 1]
|
||||
CP14Adventurer: [ -1, -1 ]
|
||||
#Artisans
|
||||
CP14Apprentice: [ 5, 5 ]
|
||||
CP14Alchemist: [ 2, 2 ]
|
||||
CP14Blacksmith: [ 2, 2 ]
|
||||
CP14Innkeeper: [ 3, 4 ]
|
||||
CP14Merchant: [2, 2]
|
||||
#Guard
|
||||
CP14Guard: [8, 8]
|
||||
CP14GuardCommander: [1, 1]
|
||||
- type: CP14StationZLevels
|
||||
defaultMapLevel: 0
|
||||
levels:
|
||||
-1:
|
||||
path: /Maps/_CP14/factoria_d.yml
|
||||
- type: CP14StationKeyDistribution
|
||||
keys:
|
||||
- Alchemy1
|
||||
- Alchemy2
|
||||
- Blacksmith1
|
||||
- Blacksmith2
|
||||
- PersonalHouse1
|
||||
- PersonalHouse2
|
||||
- PersonalHouse3
|
||||
- PersonalHouse4
|
||||
- PersonalHouse5
|
||||
- PersonalHouse6
|
||||
- PersonalHouse7
|
||||
- PersonalHouse8
|
||||
- PersonalHouse9
|
||||
- PersonalHouse10
|
||||
- PersonalHouse11
|
||||
- PersonalHouse12
|
||||
- PersonalHouse13
|
||||
- PersonalHouse14
|
||||
- PersonalHouse15
|
||||
- PersonalHouse16
|
||||
@@ -25,6 +25,15 @@
|
||||
color: "#555963"
|
||||
price: 0
|
||||
|
||||
- type: material
|
||||
id: CP14MarbleStone
|
||||
stackEntity: CP14MarbleBlock1
|
||||
name: cp14-material-stone-block #TODO
|
||||
unit: materials-unit-chunk
|
||||
icon: { sprite: _CP14/Objects/Materials/marble_block.rsi, state: stone_2 }
|
||||
color: "#555963"
|
||||
price: 0
|
||||
|
||||
- type: material
|
||||
id: CP14Nail
|
||||
stackEntity: CP14Nail1
|
||||
@@ -84,7 +93,7 @@
|
||||
stackEntity: CP14LucensWoodenPlanks1
|
||||
name: cp14-material-lucens-planks
|
||||
unit: materials-unit-bar
|
||||
icon: { sprite: _CP14/Objects/Materials/wood_lucens.rsi, state: planks_2 }
|
||||
icon: { sprite: _CP14/Objects/Materials/lucens_wood.rsi, state: planks_2 }
|
||||
color: "#1a1e22"
|
||||
price: 0
|
||||
|
||||
|
||||
@@ -41,6 +41,10 @@
|
||||
biomeTemplate: CP14CavesFloor
|
||||
tileMask:
|
||||
- CP14FloorGrass
|
||||
- !type:BiomeDunGen
|
||||
biomeTemplate: CP14MarbleCaves
|
||||
tileMask:
|
||||
- CP14FloorMarble
|
||||
|
||||
- type: dungeonConfig
|
||||
id: CP14DemiplaneCavesRingFloorMaskStone
|
||||
@@ -102,9 +106,9 @@
|
||||
- !type:NoiseDistanceDunGen
|
||||
size: 50, 50
|
||||
distanceConfig: !type:DunGenEuclideanSquaredDistance
|
||||
blendWeight: 0.6
|
||||
blendWeight: 0.8
|
||||
layers:
|
||||
- tile: Space
|
||||
- tile: CP14FloorMarble
|
||||
threshold: 0.50
|
||||
noise:
|
||||
frequency: 0.010
|
||||
@@ -112,18 +116,4 @@
|
||||
fractalType: FBm
|
||||
octaves: 5
|
||||
lacunarity: 2
|
||||
gain: 0.5
|
||||
- !type:NoiseDistanceDunGen
|
||||
size: 80, 50
|
||||
distanceConfig: !type:DunGenEuclideanSquaredDistance
|
||||
blendWeight: 0.2
|
||||
layers:
|
||||
- tile: Space
|
||||
threshold: 0.50
|
||||
noise:
|
||||
frequency: 0.08
|
||||
noiseType: OpenSimplex2
|
||||
fractalType: FBm
|
||||
octaves: 5
|
||||
lacunarity: 2
|
||||
gain: 0.5
|
||||
@@ -220,7 +220,7 @@
|
||||
- CP14DemiplaneHot
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14MobWatcherIce
|
||||
entity: CP14MobSlimeBase
|
||||
count: 2
|
||||
minGroupSize: 2
|
||||
maxGroupSize: 3
|
||||
@@ -239,7 +239,7 @@
|
||||
- CP14DemiplaneCold
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14MobWatcherMagma
|
||||
entity: CP14MobSlimeBase
|
||||
count: 2
|
||||
minGroupSize: 2
|
||||
maxGroupSize: 3
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
allowedTiles:
|
||||
- FloorSnow
|
||||
entities:
|
||||
- CP14FloorWaterOptimized
|
||||
- CP14FloorWaterOptimizedDeep
|
||||
|
||||
- type: biomeTemplate
|
||||
id: CP14SandOceanFill
|
||||
@@ -61,7 +61,7 @@
|
||||
allowedTiles:
|
||||
- FloorDesert
|
||||
entities:
|
||||
- CP14FloorWaterOptimized
|
||||
- CP14FloorWaterOptimizedDeep
|
||||
|
||||
- type: biomeTemplate
|
||||
id: CP14LavaOceanFill
|
||||
|
||||
@@ -126,12 +126,8 @@
|
||||
- CP14FloorGrassLight
|
||||
- CP14FloorGrassTall
|
||||
entities:
|
||||
- CP14FloraTreeGreen
|
||||
- CP14FloraTreeGreen
|
||||
- CP14FloraTreeGreenLarge
|
||||
- CP14FloraTreeBirchSmall
|
||||
- CP14FloraTreeBirchMedium
|
||||
- CP14FloraTreeBirchLarge
|
||||
- !type:BiomeEntityLayer # More Rocks
|
||||
threshold: 0.7
|
||||
noise:
|
||||
@@ -178,12 +174,8 @@
|
||||
- CP14FloorGrassLight
|
||||
- CP14FloorGrassTall
|
||||
entities:
|
||||
- CP14FloraTreeGreen
|
||||
- CP14FloraTreeGreen
|
||||
- CP14FloraTreeGreenLarge
|
||||
- CP14FloraTreeBirchSmall
|
||||
- CP14FloraTreeBirchMedium
|
||||
- CP14FloraTreeBirchLarge
|
||||
|
||||
- type: biomeTemplate
|
||||
id: CP14GrasslandHills # Холмы
|
||||
|
||||
47
Resources/Prototypes/_CP14/Procedural/marble_cave.yml
Normal file
47
Resources/Prototypes/_CP14/Procedural/marble_cave.yml
Normal file
@@ -0,0 +1,47 @@
|
||||
- type: biomeTemplate
|
||||
id: CP14MarbleCaves
|
||||
layers:
|
||||
- !type:BiomeTileLayer
|
||||
threshold: -1.0
|
||||
tile: CP14FloorMarbleCave
|
||||
#Rocks
|
||||
- !type:BiomeEntityLayer
|
||||
threshold: 0.4
|
||||
noise:
|
||||
seed: 1
|
||||
noiseType: OpenSimplex2
|
||||
fractalType: FBm
|
||||
frequency: 2
|
||||
allowedTiles:
|
||||
- CP14FloorMarbleCave
|
||||
entities:
|
||||
- CP14RockSmall
|
||||
# Lakes
|
||||
- !type:BiomeEntityLayer
|
||||
threshold: -0.45
|
||||
invert: true
|
||||
noise:
|
||||
seed: 12
|
||||
noiseType: Perlin
|
||||
fractalType: Ridged
|
||||
octaves: 1
|
||||
frequency: 0.1
|
||||
gain: 0.5
|
||||
allowedTiles:
|
||||
- CP14FloorMarbleCave
|
||||
entities:
|
||||
- CP14FloorLava
|
||||
- !type:BiomeEntityLayer
|
||||
threshold: -0.45
|
||||
invert: true
|
||||
noise:
|
||||
seed: 0
|
||||
noiseType: Perlin
|
||||
fractalType: Ridged
|
||||
octaves: 1
|
||||
frequency: 0.1
|
||||
gain: 0.5
|
||||
allowedTiles:
|
||||
- CP14FloorMarbleCave
|
||||
entities:
|
||||
- CP14WallMarbleStone
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14WoodenBed
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
- material: CP14Cloth
|
||||
amount: 1
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
- material: CP14Nail
|
||||
amount: 2
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 4
|
||||
- material: CP14Nail
|
||||
amount: 2
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14CurtainsWhite
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 1
|
||||
doAfter: 2
|
||||
- material: CP14Nail
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
- material: CP14Stone
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid { }
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 5
|
||||
doAfter: 3
|
||||
- node: CP14mannequin
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14WallmountOrdersBorder
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 3
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14ChairWooden
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- node: CP14ChairWooden
|
||||
@@ -24,7 +24,7 @@
|
||||
edges:
|
||||
- to: CP14BenchWood
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14BenchWood
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14TableWooden
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14TableWooden
|
||||
@@ -24,7 +24,7 @@
|
||||
edges:
|
||||
- to: CP14TableWoodenRound
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14TableWoodenRound
|
||||
@@ -40,7 +40,7 @@
|
||||
edges:
|
||||
- to: CP14TableWoodenCounter
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14TableWoodenCounter
|
||||
@@ -56,7 +56,7 @@
|
||||
edges:
|
||||
- to: CP14Workbench
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14Workbench
|
||||
@@ -72,7 +72,7 @@
|
||||
edges:
|
||||
- to: CP14WorkbenchCooking
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14WorkbenchCooking
|
||||
@@ -88,7 +88,7 @@
|
||||
edges:
|
||||
- to: CP14WorkbenchSewing
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14WorkbenchSewing
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14WoodenPallet
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- node: CP14WoodenPallet
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
- !type:SnapToGrid
|
||||
southRotation: true
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
|
||||
@@ -18,13 +18,16 @@
|
||||
edges:
|
||||
- to: start
|
||||
completed:
|
||||
- !type:GivePrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
- !type:DeleteEntity {}
|
||||
steps:
|
||||
- tool: Screwing
|
||||
doAfter: 1
|
||||
- to: CP14target
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 1
|
||||
- material: CP14Nail
|
||||
@@ -61,7 +64,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 5
|
||||
- material: CP14Cloth
|
||||
amount: 2
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14BaseBarrel
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 5
|
||||
doAfter: 3
|
||||
- material: CP14Nail
|
||||
@@ -27,7 +27,7 @@
|
||||
edges:
|
||||
- to: CP14CraneBarrel
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 5
|
||||
doAfter: 3
|
||||
- material: CP14Nail
|
||||
@@ -46,7 +46,7 @@
|
||||
edges:
|
||||
- to: CP14CraneBarrelSmall
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 3
|
||||
- material: CP14Nail
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14WoodenChestFrame
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
edges:
|
||||
- to: CP14WoodenChest
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- material: CP14Nail
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
- material: CP14Cloth
|
||||
amount: 2
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
- material: CP14Nail
|
||||
amount: 1
|
||||
@@ -26,7 +26,7 @@
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 4
|
||||
- material: CP14Nail
|
||||
amount: 2
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14WoodenDoorFrame
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
doAfter: 1
|
||||
- to: CP14WoodenDoor
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- to: CP14WoodenDoorWindowed
|
||||
@@ -47,6 +47,9 @@
|
||||
edges:
|
||||
- to: start
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
- !type:DeleteEntity {}
|
||||
steps:
|
||||
- tool: Prying #TODO - new tool
|
||||
@@ -73,6 +76,10 @@
|
||||
entity: CP14WoodenDoor
|
||||
edges:
|
||||
- to: CP14WoodenDoorFrame
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
steps:
|
||||
- tool: Prying #TODO - new tool
|
||||
doAfter: 5
|
||||
@@ -81,6 +88,10 @@
|
||||
entity: CP14WoodenDoorMirrored
|
||||
edges:
|
||||
- to: CP14WoodenDoorFrameMirrored
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
steps:
|
||||
- tool: Prying #TODO - new tool
|
||||
doAfter: 5
|
||||
@@ -89,6 +100,10 @@
|
||||
entity: CP14WoodenDoorWindowed
|
||||
edges:
|
||||
- to: CP14WoodenDoorFrame
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
steps:
|
||||
- tool: Prying #TODO - new tool
|
||||
doAfter: 5
|
||||
@@ -97,6 +112,10 @@
|
||||
entity: CP14WoodenDoorWindowedMirrored
|
||||
edges:
|
||||
- to: CP14WoodenDoorFrameMirrored
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
steps:
|
||||
- tool: Prying #TODO - new tool
|
||||
doAfter: 5
|
||||
|
||||
@@ -8,32 +8,32 @@
|
||||
edges:
|
||||
- to: CP14FenceWoodSmallStraight
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- to: CP14FenceWoodSmallCorner
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- to: CP14FenceWoodSmallGate
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- to: CP14FenceWoodStraight
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 4
|
||||
doAfter: 2
|
||||
- to: CP14FenceWoodCorner
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 4
|
||||
doAfter: 2
|
||||
- to: CP14FenceWoodGate
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 4
|
||||
doAfter: 2
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
edges:
|
||||
- to: CP14RoofWooden
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14WallmountTorch
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 3
|
||||
doAfter: 3
|
||||
- material: CP14Cloth
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
edges:
|
||||
- to: CP14WallmountBarShelfA
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- node: CP14WallmountBarShelfA
|
||||
@@ -24,7 +24,7 @@
|
||||
edges:
|
||||
- to: CP14WallmountBarShelfB
|
||||
steps:
|
||||
- stackGroup: WoodenPlanks
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- node: CP14WallmountBarShelfB
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
- type: constructionGraph
|
||||
id: CP14WallMarbleBrick
|
||||
start: start
|
||||
graph:
|
||||
- node: start
|
||||
edges:
|
||||
- to: CP14WallMarbleBrick
|
||||
completed:
|
||||
- !type:SnapToGrid
|
||||
southRotation: true
|
||||
steps:
|
||||
- material: CP14MarbleStone
|
||||
amount: 3
|
||||
doAfter: 2
|
||||
- node: CP14WallMarbleBrick
|
||||
entity: CP14WallMarbleBrick
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user