Compare commits
5 Commits
ed-17-07-2
...
ed-26-08-2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e503f9aeaa | ||
|
|
79515d9303 | ||
|
|
ea9c6ee7bf | ||
|
|
3850317a37 | ||
|
|
d3189b83cf |
@@ -7,6 +7,7 @@
|
||||
|
||||
using Content.Server._CP14.BiomeSpawner.EntitySystems;
|
||||
using Content.Shared.Parallax.Biomes;
|
||||
using Content.Shared.Whitelist;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Server._CP14.BiomeSpawner.Components;
|
||||
@@ -19,4 +20,10 @@ public sealed partial class CP14BiomeSpawnerComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
public ProtoId<BiomeTemplatePrototype> Biome = "Grasslands";
|
||||
|
||||
/// <summary>
|
||||
/// entities that we don't remove.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public EntityWhitelist DeleteBlacklist = new();
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ using Content.Server._CP14.BiomeSpawner.Components;
|
||||
using Content.Server._CP14.RoundSeed;
|
||||
using Content.Server.Decals;
|
||||
using Content.Server.Parallax;
|
||||
using Content.Shared.Whitelist;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Map.Components;
|
||||
@@ -26,6 +27,7 @@ public sealed class CP14BiomeSpawnerSystem : EntitySystem
|
||||
[Dependency] private readonly DecalSystem _decals = default!;
|
||||
[Dependency] private readonly EntityLookupSystem _lookup = default!;
|
||||
[Dependency] private readonly CP14RoundSeedSystem _roundSeed = default!;
|
||||
[Dependency] private readonly EntityWhitelistSystem _whitelist = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -79,11 +81,12 @@ public sealed class CP14BiomeSpawnerSystem : EntitySystem
|
||||
}
|
||||
|
||||
// Remove entities
|
||||
var oldEntities = _lookup.GetEntitiesInRange(spawnerTransform.Coordinates, 0.48f);
|
||||
var oldEntities = _lookup.GetEntitiesInRange(spawnerTransform.Coordinates, 0.48f, LookupFlags.Uncontained);
|
||||
// TODO: Replace this shit with GetEntitiesInBox2
|
||||
foreach (var entToRemove in oldEntities.Concat(new[] { ent.Owner })) // Do not remove self
|
||||
{
|
||||
QueueDel(entToRemove);
|
||||
if (!_whitelist.IsValid(ent.Comp.DeleteBlacklist, entToRemove))
|
||||
QueueDel(entToRemove);
|
||||
}
|
||||
|
||||
if (_biome.TryGetEntity(vec, biome.Layers, tile.Value, seed, map, out var entityProto))
|
||||
|
||||
@@ -71,8 +71,11 @@ public sealed partial class CP14FarmingSystem
|
||||
continue;
|
||||
|
||||
var spawnLoot = getLoot.GetSpawns(_random);
|
||||
var spawnPos = pos.Offset(_random.NextVector2(gatheredPlant.Comp.GatherOffset));
|
||||
result.Add(Spawn(spawnLoot[0], spawnPos)); //TODO почему то не спавнится больше 1 пшенички. Кажись проблема оффов
|
||||
foreach (var loot in spawnLoot)
|
||||
{
|
||||
var spawnPos = pos.Offset(_random.NextVector2(gatheredPlant.Comp.GatherOffset));
|
||||
result.Add(Spawn(loot, spawnPos));
|
||||
}
|
||||
}
|
||||
|
||||
if (gatheredPlant.Comp.DeleteAfterHarvest)
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
using Content.Shared._CP14.SpawnOnTileTool;
|
||||
|
||||
namespace Content.Server._CP14.SpawnOnTileTool;
|
||||
|
||||
public sealed partial class CP14SpawnOnTileToolSystem : SharedCP14SpawnOnTileToolSystem
|
||||
{
|
||||
public override void Initialize()
|
||||
{
|
||||
SubscribeLocalEvent<CP14SpawnOnTileToolComponent, SpawnOnTileToolAfterEvent>(AfterDoAfter);
|
||||
}
|
||||
|
||||
private void AfterDoAfter(Entity<CP14SpawnOnTileToolComponent> ent, ref SpawnOnTileToolAfterEvent args)
|
||||
{
|
||||
if (args.Handled || args.Cancelled)
|
||||
return;
|
||||
|
||||
SpawnAtPosition(args.Spawn, GetCoordinates(args.Coordinates));
|
||||
|
||||
args.Handled = true;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Server._CP14.StationDungeonMap;
|
||||
|
||||
/// <summary>
|
||||
/// Loads additional maps from the list at the start of the round.
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(CP14StationAdditionalMapSystem))]
|
||||
public sealed partial class CP14StationAdditionalMapComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// A map paths to load on a new map.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public List<ResPath> MapPaths = new();
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
using Content.Server.Parallax;
|
||||
using Content.Server.Station.Components;
|
||||
using Content.Server.Station.Events;
|
||||
using Content.Server.Station.Systems;
|
||||
using Content.Shared.Teleportation.Systems;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Server.Maps;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Server._CP14.StationDungeonMap;
|
||||
|
||||
public sealed partial class CP14StationAdditionalMapSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly BiomeSystem _biome = default!;
|
||||
[Dependency] private readonly IPrototypeManager _proto = default!;
|
||||
[Dependency] private readonly MapSystem _map = default!;
|
||||
[Dependency] private readonly MetaDataSystem _metaData = default!;
|
||||
[Dependency] private readonly LinkedEntitySystem _linkedEntity = default!;
|
||||
[Dependency] private readonly StationSystem _station = default!;
|
||||
[Dependency] private readonly MapLoaderSystem _mapLoader = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<CP14StationAdditionalMapComponent, StationPostInitEvent>(OnStationPostInit);
|
||||
}
|
||||
|
||||
private void OnStationPostInit(Entity<CP14StationAdditionalMapComponent> addMap, ref StationPostInitEvent args)
|
||||
{
|
||||
if (!TryComp(addMap, out StationDataComponent? dataComp))
|
||||
return;
|
||||
|
||||
foreach (var path in addMap.Comp.MapPaths)
|
||||
{
|
||||
var mapUid = _map.CreateMap(out var mapId);
|
||||
Log.Info($"Created map {mapId} for StationAdditionalMap system");
|
||||
var options = new MapLoadOptions { LoadMap = true };
|
||||
if (!_mapLoader.TryLoad(mapId, path.ToString(), out var roots, options))
|
||||
{
|
||||
Log.Error($"Failed to load map from {path}!");
|
||||
Del(mapUid);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using Content.Server._CP14.StationDungeonMap.EntitySystems;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Server._CP14.StationDungeonMap.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes the z-level system by creating a series of linked maps
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(CP14StationZLevelsSystem))]
|
||||
public sealed partial class CP14StationZLevelsComponent : Component
|
||||
{
|
||||
[DataField(required: true)]
|
||||
public int DefaultMapLevel = 0;
|
||||
|
||||
[DataField(required: true)]
|
||||
public Dictionary<int, CP14ZLevelEntry> Levels = new();
|
||||
|
||||
public bool Initialized = false;
|
||||
|
||||
public Dictionary<MapId, int> LevelEntities = new();
|
||||
}
|
||||
|
||||
[DataRecord, Serializable]
|
||||
public sealed class CP14ZLevelEntry
|
||||
{
|
||||
public ResPath? Path { get; set; } = null;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using Content.Server._CP14.StationDungeonMap.EntitySystems;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Server._CP14.StationDungeonMap.Components;
|
||||
|
||||
/// <summary>
|
||||
/// automatically creates a linked portal at a different relative z-level, and then the component is removed
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(CP14StationZLevelsSystem))]
|
||||
public sealed partial class CP14ZLevelAutoPortalComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// relative neighboring layer. Ideally, -1 is the neighboring bottom layer, +1 is the neighboring top layer
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public int ZLevelOffset = 0;
|
||||
|
||||
/// <summary>
|
||||
/// prototype of the portal being created on the other side
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public EntProtoId OtherSideProto = default!;
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
using Content.Server._CP14.StationDungeonMap.Components;
|
||||
using Content.Server.GameTicking.Events;
|
||||
using Content.Server.Station.Components;
|
||||
using Content.Server.Station.Events;
|
||||
using Content.Server.Station.Systems;
|
||||
using Content.Shared.Maps;
|
||||
using Content.Shared.Station.Components;
|
||||
using Content.Shared.Teleportation.Systems;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Server.Maps;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Server._CP14.StationDungeonMap.EntitySystems;
|
||||
|
||||
public sealed partial class CP14StationZLevelsSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly MapSystem _map = default!;
|
||||
[Dependency] private readonly StationSystem _station = default!;
|
||||
[Dependency] private readonly MapLoaderSystem _mapLoader = default!;
|
||||
[Dependency] private readonly TransformSystem _transform = default!;
|
||||
[Dependency] private readonly ITileDefinitionManager _tileDefManager = default!;
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
[Dependency] private readonly TileSystem _tile = default!;
|
||||
[Dependency] private readonly SharedMapSystem _maps = default!;
|
||||
[Dependency] private readonly LinkedEntitySystem _linkedEntity = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<CP14ZLevelAutoPortalComponent, MapInitEvent>(OnPortalMapInit);
|
||||
SubscribeLocalEvent<RoundStartingEvent>(OnRoundStart);
|
||||
SubscribeLocalEvent<CP14StationZLevelsComponent, StationPostInitEvent>(OnStationPostInit);
|
||||
}
|
||||
|
||||
private void OnRoundStart(RoundStartingEvent ev)
|
||||
{
|
||||
var query = EntityQueryEnumerator<CP14ZLevelAutoPortalComponent>();
|
||||
while (query.MoveNext(out var uid, out var portal))
|
||||
{
|
||||
InitPortal((uid, portal));
|
||||
}
|
||||
}
|
||||
|
||||
private void OnStationPostInit(Entity<CP14StationZLevelsComponent> ent, ref StationPostInitEvent args)
|
||||
{
|
||||
if (ent.Comp.Initialized)
|
||||
return;
|
||||
|
||||
if (!TryComp(ent, out StationDataComponent? dataComp))
|
||||
{
|
||||
Log.Error($"Failed to init CP14StationZLevelsSystem: no StationData");
|
||||
return;
|
||||
}
|
||||
|
||||
var defaultMap = _station.GetLargestGrid(dataComp);
|
||||
|
||||
if (defaultMap is null)
|
||||
{
|
||||
Log.Error($"Failed to init CP14StationZLevelsSystem: defaultMap is null");
|
||||
return;
|
||||
}
|
||||
|
||||
ent.Comp.LevelEntities.Add(Transform(defaultMap.Value).MapID, ent.Comp.DefaultMapLevel);
|
||||
|
||||
ent.Comp.Initialized = true;
|
||||
|
||||
foreach (var (map, level) in ent.Comp.Levels)
|
||||
{
|
||||
if (ent.Comp.LevelEntities.ContainsValue(map))
|
||||
{
|
||||
Log.Error($"Key duplication for CP14StationZLevelsSystem at level {map}!");
|
||||
continue;
|
||||
}
|
||||
|
||||
var path = level.Path.ToString();
|
||||
if (path is null)
|
||||
{
|
||||
Log.Error($"path {path} for CP14StationZLevelsSystem at level {map} don't exist!");
|
||||
continue;
|
||||
}
|
||||
|
||||
var mapUid = _map.CreateMap(out var mapId);
|
||||
var member = EnsureComp<StationMemberComponent>(mapUid);
|
||||
member.Station = ent;
|
||||
|
||||
Log.Info($"Created map {mapId} for CP14StationZLevelsSystem at level {map}");
|
||||
var options = new MapLoadOptions { LoadMap = true };
|
||||
|
||||
if (!_mapLoader.TryLoad(mapId, path, out var grids, options))
|
||||
{
|
||||
Log.Error($"Failed to load map for CP14StationZLevelsSystem at level {map}!");
|
||||
Del(mapUid);
|
||||
continue;
|
||||
}
|
||||
ent.Comp.LevelEntities.Add(mapId, map);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnPortalMapInit(Entity<CP14ZLevelAutoPortalComponent> autoPortal, ref MapInitEvent args)
|
||||
{
|
||||
InitPortal(autoPortal);
|
||||
}
|
||||
|
||||
private void InitPortal(Entity<CP14ZLevelAutoPortalComponent> autoPortal)
|
||||
{
|
||||
var mapId = Transform(autoPortal).MapUid;
|
||||
if (mapId is null)
|
||||
return;
|
||||
|
||||
var offsetMap = GetMapOffset(mapId.Value, autoPortal.Comp.ZLevelOffset);
|
||||
|
||||
if (offsetMap is null)
|
||||
return;
|
||||
|
||||
var currentWorldPos = _transform.GetWorldPosition(autoPortal);
|
||||
var targetMapPos = new MapCoordinates(currentWorldPos, offsetMap.Value);
|
||||
|
||||
var otherSidePortal = Spawn(autoPortal.Comp.OtherSideProto, targetMapPos);
|
||||
|
||||
if (_linkedEntity.TryLink(autoPortal, otherSidePortal, true))
|
||||
RemComp<CP14ZLevelAutoPortalComponent>(autoPortal);
|
||||
}
|
||||
|
||||
public MapId? GetMapOffset(EntityUid mapUid, int offset)
|
||||
{
|
||||
var query = EntityQueryEnumerator<CP14StationZLevelsComponent, StationDataComponent>();
|
||||
while (query.MoveNext(out var uid, out var zLevel, out _))
|
||||
{
|
||||
if (!zLevel.LevelEntities.TryGetValue(Transform(mapUid).MapID, out var currentLevel))
|
||||
continue;
|
||||
|
||||
var targetLevel = currentLevel + offset;
|
||||
|
||||
if (!zLevel.LevelEntities.ContainsValue(targetLevel))
|
||||
continue;
|
||||
|
||||
foreach (var (key, value) in zLevel.LevelEntities)
|
||||
{
|
||||
if (value == targetLevel && _map.MapExists(key))
|
||||
return key;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
using Content.Shared.Tools;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.DestroyedByTool;
|
||||
|
||||
/// <summary>
|
||||
/// abstract ability to destroy objects by using the right kind of tool on them
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(CP14DestroyedByToolSystem))]
|
||||
public sealed partial class CP14DestroyedByToolComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
public ProtoId<ToolQualityPrototype>? Tool;
|
||||
|
||||
[DataField]
|
||||
public TimeSpan RemoveTime = TimeSpan.FromSeconds(1f);
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Tools.Components;
|
||||
using Content.Shared.Tools.Systems;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.DestroyedByTool;
|
||||
|
||||
public sealed partial class CP14DestroyedByToolSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly SharedToolSystem _tool = default!;
|
||||
[Dependency] private readonly SharedDoAfterSystem _doAfter = default!;
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<CP14DestroyedByToolComponent, CP14DestroyedByToolDoAfterEvent>(OnDestroyDoAfter);
|
||||
SubscribeLocalEvent<CP14DestroyedByToolComponent, InteractUsingEvent>(OnInteractUsing);
|
||||
}
|
||||
|
||||
private void OnInteractUsing(Entity<CP14DestroyedByToolComponent> ent, ref InteractUsingEvent args)
|
||||
{
|
||||
if (args.Handled)
|
||||
return;
|
||||
|
||||
if (ent.Comp.Tool == null || !_tool.HasQuality(args.Used, ent.Comp.Tool))
|
||||
return;
|
||||
|
||||
if (TryComp<ToolComponent>(args.Used, out var tool))
|
||||
{
|
||||
_tool.PlayToolSound(args.Used, tool, args.User);
|
||||
}
|
||||
|
||||
var doAfterArgs =
|
||||
new DoAfterArgs(EntityManager, args.User, ent.Comp.RemoveTime, new CP14DestroyedByToolDoAfterEvent(), args.Target)
|
||||
{
|
||||
BreakOnDamage = true,
|
||||
BlockDuplicate = true,
|
||||
BreakOnMove = true,
|
||||
BreakOnHandChange = true,
|
||||
};
|
||||
_doAfter.TryStartDoAfter(doAfterArgs);
|
||||
}
|
||||
|
||||
private void OnDestroyDoAfter(Entity<CP14DestroyedByToolComponent> ent, ref CP14DestroyedByToolDoAfterEvent args)
|
||||
{
|
||||
if (args.Cancelled || args.Handled)
|
||||
return;
|
||||
|
||||
QueueDel(ent);
|
||||
|
||||
args.Handled = true;
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed partial class CP14DestroyedByToolDoAfterEvent : SimpleDoAfterEvent
|
||||
{
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Maps;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.SpawnOnTileTool;
|
||||
|
||||
/// <summary>
|
||||
/// Allows using an item on a certain type of tile to spawn entities on it.
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(SharedCP14SpawnOnTileToolSystem))]
|
||||
public sealed partial class CP14SpawnOnTileToolComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
public Dictionary<ProtoId<ContentTileDefinition>, EntProtoId> Spawns = new();
|
||||
|
||||
[DataField]
|
||||
public bool NeedEmptySpace = true;
|
||||
|
||||
[DataField]
|
||||
public TimeSpan DoAfter = TimeSpan.FromSeconds(1f);
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed partial class SpawnOnTileToolAfterEvent : DoAfterEvent
|
||||
{
|
||||
public override DoAfterEvent Clone() => this;
|
||||
public readonly NetCoordinates Coordinates;
|
||||
public readonly EntProtoId Spawn;
|
||||
|
||||
public SpawnOnTileToolAfterEvent(IEntityManager entManager, EntityCoordinates coord, EntProtoId spawn)
|
||||
{
|
||||
Spawn = spawn;
|
||||
Coordinates = entManager.GetNetCoordinates(coord);
|
||||
}
|
||||
|
||||
public SpawnOnTileToolAfterEvent(NetCoordinates coord, EntProtoId spawn)
|
||||
{
|
||||
Spawn = spawn;
|
||||
Coordinates = coord;
|
||||
}
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
using System.Linq;
|
||||
using Content.Shared._CP14.Farming;
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Maps;
|
||||
using Content.Shared.Popups;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Map.Components;
|
||||
|
||||
namespace Content.Shared._CP14.SpawnOnTileTool;
|
||||
|
||||
public partial class SharedCP14SpawnOnTileToolSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly SharedMapSystem _map = default!;
|
||||
[Dependency] private readonly SharedTransformSystem _transform = default!;
|
||||
[Dependency] private readonly ITileDefinitionManager _tileDef = default!;
|
||||
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||
[Dependency] private readonly SharedDoAfterSystem _doAfter = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
SubscribeLocalEvent<CP14SpawnOnTileToolComponent, AfterInteractEvent>(OnAfterInteract);
|
||||
}
|
||||
|
||||
private void OnAfterInteract(Entity<CP14SpawnOnTileToolComponent> tool, ref AfterInteractEvent args)
|
||||
{
|
||||
var grid = _transform.GetGrid(args.ClickLocation);
|
||||
|
||||
if (grid == null || !TryComp<MapGridComponent>(grid, out var gridComp))
|
||||
return;
|
||||
|
||||
var tile = _map.GetTileRef(grid.Value, gridComp, args.ClickLocation);
|
||||
var tileDef = (ContentTileDefinition) _tileDef[tile.Tile.TypeId];
|
||||
|
||||
if (tool.Comp.NeedEmptySpace && _map.GetAnchoredEntities(grid.Value, gridComp, args.ClickLocation).Count() > 0)
|
||||
{
|
||||
_popup.PopupClient(Loc.GetString("cp14-insufficient-space"), args.ClickLocation, args.User);
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var pair in tool.Comp.Spawns)
|
||||
{
|
||||
if (tileDef.ID != pair.Key)
|
||||
continue;
|
||||
|
||||
var doAfterArgs =
|
||||
new DoAfterArgs(EntityManager, args.User, tool.Comp.DoAfter, new SpawnOnTileToolAfterEvent(EntityManager, args.ClickLocation, pair.Value), tool)
|
||||
{
|
||||
BreakOnDamage = true,
|
||||
BlockDuplicate = true,
|
||||
BreakOnMove = true,
|
||||
BreakOnHandChange = true
|
||||
};
|
||||
_doAfter.TryStartDoAfter(doAfterArgs);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,9 @@
|
||||
ent-CP14SeedTest = FUCK test SEED
|
||||
|
||||
ent-CP14Fire = огонь
|
||||
.desc = Это огонь!
|
||||
.suffix = cp14
|
||||
|
||||
ent-CP14BaseKeyRing = кольцо для ключей
|
||||
.desc = Позволяет комфортно хранить большое количество ключей в одном месте.
|
||||
.desc = Позволяет комфортно носить большое количество ключей в одном месте.
|
||||
.suffix = Пустое
|
||||
|
||||
ent-CP14KeyRingInnkeeper = { ent-CP14BaseKeyRing }
|
||||
@@ -13,19 +11,25 @@ ent-CP14KeyRingInnkeeper = { ent-CP14BaseKeyRing }
|
||||
.suffix = Трактирщик
|
||||
|
||||
ent-CP14BaseKey = ключ
|
||||
.desc = Небольшая заковыристая железяка, открывающая определенные замки. Не отдавайте кому попало!
|
||||
.desc = Небольшой замысловатый кусочек железа, открывающий определенные замки. Не отдавайте кому попало!
|
||||
|
||||
ent-CP14BaseLockpick = отмычка
|
||||
.desc = Воровской инструмент, при должном умении и сноровке позволяющий взламывать любые замки.
|
||||
.desc = Воровской инструмент, позволяющий с достаточными навыками и сноровкой открыть любой замок.
|
||||
|
||||
ent-CP14KeyTavern = капитанский ключ
|
||||
.desc = { ent-CP14BaseKey.desc }
|
||||
|
||||
ent-CP14BaseLock = стальной замок
|
||||
.desc = Он запирает вещи. И вам потребуется ключ, чтобы открыть их обратно.
|
||||
.desc = Он запирает вещи. И вам, конечно же, нужен ключ, чтобы открыть их.
|
||||
|
||||
ent-CP14BaseMagicRune = magic rune
|
||||
.desc = manifestation of magical energy in the physical plane
|
||||
ent-CP14LockTavern = капитанский замок
|
||||
.desc = { ent-CP14BaseLock.desc }
|
||||
|
||||
ent-CP14BaseMagicImpact = magic impact
|
||||
.desc = manifestation of magical energy in the physical plane
|
||||
ent-CP14BaseMagicRune = магическая руна
|
||||
.desc = проявления магической энергии в физическом плане.
|
||||
|
||||
ent-CP14BaseMagicImpact = магическая вспышка
|
||||
.desc = проявления магической энергии в физическом плане.
|
||||
|
||||
ent-CP14ClothingCloakArmoredRed = бронированная красная накидка
|
||||
.desc = Огромные металлические наплечники дают дополнительную защиту от отрубания головы.
|
||||
@@ -96,9 +100,21 @@ ent-CP14ClothingHeadBlackBeret = черный берет
|
||||
ent-CP14ClothingHeadCaptainCap = капитанская кепка
|
||||
.desc = Нет, ну вы посмотрите какой красавчик!
|
||||
|
||||
ent-CP14ClothingHeadYellowHat = желтая бандана
|
||||
.desc = Почему-то любимая желтая шляпа магов.
|
||||
|
||||
ent-CP14ClothingHeadMercenaryBeret = берет наемника
|
||||
.desc = Большая красная шерстяная шляпа, украшенная пером.
|
||||
|
||||
ent-CP14ClothingHeadCapellina = капеллина
|
||||
.desc = Защита от ударов крупными предметами по голове.
|
||||
|
||||
ent-CP14ClothingMaskSinner = маска грешника
|
||||
.desc = Маска предназначенная для ношения не самыми светлыми личностями. Палачи надевают их на себя и на жертву перед казнью.
|
||||
|
||||
ent-CP14ClothingMaskSteelMask = стальная маска
|
||||
.desc = Стальная маска, защищающая лицо от внешнего воздействия железа.
|
||||
|
||||
ent-CP14ClothingPantsTrouserWhite = белые штаны
|
||||
.desc = Широкие, свободные штаны из простой холщовой ткани.
|
||||
|
||||
@@ -114,17 +130,11 @@ ent-CP14ClothingPantsLoincloth = набедренная повязка
|
||||
ent-CP14ClothingDressBlack = черное платье
|
||||
.desc = Просторная женское платье
|
||||
|
||||
ent-CP14ClothingRingIceDagger = conductive ring
|
||||
.desc = A standard mana-conductive ring that allows the user to summon ice daggers.
|
||||
.suffix = Ice Dagger
|
||||
ent-CP14ClothingPantsMercenaryTrousers = брюки наемника
|
||||
.desc = Разноцветные брюки наемника. Не порвите их.
|
||||
|
||||
ent-CP14ClothingRingFlameCreation = conductive ring
|
||||
.desc = A standard mana-conductive ring that allows the user to summon artificial flames.
|
||||
.suffix = Flame creation
|
||||
|
||||
ent-CP14ClothingRingCureWounds = conductive ring
|
||||
.desc = A standard mana-conductive ring that allows the user to heal physical injuries.
|
||||
.suffix = Cure Wounds
|
||||
ent-CP14ClothingPantsSouthernMagician = Платье южного фокусника
|
||||
.desc = Традиционная юбка южного мага, довольно свободная.
|
||||
|
||||
ent-CP14ClothingShirtCottonBlue = хлопковая синяя рубаха
|
||||
.desc = { ent-CP14ClothingShirtCottonBlue.desc }
|
||||
@@ -147,6 +157,12 @@ ent-CP14ClothingShirtCottonYellow = хлопковая желтая
|
||||
ent-CP14ClothingShirtSteampunk = укрепленная латунью рубашка
|
||||
.desc = Белая рубашка, укрепленная латунными вставками.
|
||||
|
||||
ent-CP14ClothingShirtMercenary = рубашка наемника
|
||||
.desc = Пестрая рубашка наемника.
|
||||
|
||||
ent-CP14ClothingShirtYellowWizard = yellow wizard shirt
|
||||
.desc = A loose magician's shirt, comfortable and nice looking.
|
||||
|
||||
ent-CP14ClothingShoesBlack = простые черные ботинки
|
||||
.desc = Влагу они не удержат, но это лучше чем ходить босиком.
|
||||
|
||||
@@ -171,21 +187,16 @@ ent-CP14SpawnPointAdventurer = авантюрист
|
||||
|
||||
ent-CP14SpawnPointAlchemist = алхимик
|
||||
|
||||
ent-CP14SpawnPointInnkeeper = трактирщик
|
||||
|
||||
ent-CP14SpawnPointCaptain = капитан
|
||||
|
||||
ent-CP14ConstrainedSpawnerBase = None
|
||||
.desc = lol
|
||||
ent-CP14SpawnPointGuardCommander = командир стражи
|
||||
|
||||
ent-CP14ConstrainedSpawnerXeno = xeno constrained spawner
|
||||
.desc = { ent-CP14ConstrainedSpawnerBase.desc }
|
||||
ent-CP14SpawnPointHouseKeeper = завхоз
|
||||
|
||||
ent-CP14RandomSpawnerBattleRoyaleLootWeapon = Loot
|
||||
.desc = lol
|
||||
.suffix = Weapon
|
||||
|
||||
ent-CP14RandomSpawnerBattleRoyaleLootTools = Loot
|
||||
.desc = lol
|
||||
.suffix = Tools
|
||||
ent-CP14ConstrainedSpawnerBase = Неа
|
||||
.desc = лол
|
||||
|
||||
ent-CP14RandomSpawnerGatherAgaricShroom = спавнер мухоморов
|
||||
|
||||
@@ -201,6 +212,10 @@ ent-CP14BiomeSpawnerCave = { ent-CP14BaseBiomeSpawner }
|
||||
.desc = { ent-CP14BaseBiomeSpawner.desc }
|
||||
.suffix = Пещеры
|
||||
|
||||
ent-CP14BiomeSpawnerForest = { ent-CP14BaseBiomeSpawner }
|
||||
.desc = { ent-CP14BaseBiomeSpawner.desc }
|
||||
.suffix = Лес
|
||||
|
||||
ent-CP14MobDwarf = мистер Дварф
|
||||
.desc = { ent-CP14BaseMobDwarf.desc }
|
||||
|
||||
@@ -235,6 +250,86 @@ ent-CP14OreIron = железная руда
|
||||
ent-CP14OreGold = золотая руда
|
||||
.desc = Кусочек мягкого, чистого золота.
|
||||
|
||||
ent-CP14GreenBottle = Зеленая бутылка
|
||||
.desc = Зеленая бутылка, идеально подходит для пива.
|
||||
.suffix = Пустая
|
||||
|
||||
ent-CP14BlueVial = Синий флакон
|
||||
.desc = Синий флакон, идеально подходит для рома.
|
||||
.suffix = Пустой
|
||||
|
||||
ent-CP14GreenVial = Зеленый флакон
|
||||
.desc = Маленький зеленый флакон.
|
||||
.suffix = Пустой
|
||||
|
||||
ent-CP14OrangeBottle = Оранжевая бутылка
|
||||
.desc = Просто оранжевая бутылка.
|
||||
.suffix = Пустая
|
||||
|
||||
ent-CP14RedBottle = Красная бутылка
|
||||
.desc = Красная бутылка, идеально подходит для вина.
|
||||
.suffix = Пустая
|
||||
|
||||
ent-CP14MetalBeerMug = Металлическая кружка
|
||||
.desc = Самая обычная металлическая кружка.
|
||||
|
||||
ent-CP14WoodenBeerMug = Деревянная кружка
|
||||
.desc = Деревянная кружка для пива.
|
||||
|
||||
ent-CP14SteelBeerMug = Пивная кружка
|
||||
.desc = Деревянная кружка с железными вкраплениями.
|
||||
|
||||
ent-CP14SteelWoodBeerMug = { ent-CP14SteelBeerMug }
|
||||
.desc = { ent-CP14SteelBeerMug.desc }
|
||||
|
||||
ent-CP14FoodCheeseWheel = колесо сыра
|
||||
.desc = Большое колесо мягкого, ароматного сыра.
|
||||
|
||||
ent-CP14FoodCheesePart = сыр
|
||||
.desc = Треугольник мягкого, ароматного сыра.
|
||||
|
||||
ent-CP14FoodCheeseSlice = долька сыра
|
||||
.desc = Тонкий ломтик вкусно пахнущего сыра
|
||||
|
||||
ent-CP14FoodDoughLarge = большой кусок теста
|
||||
.desc = Идеальный ингредиент для любого мучного изделия. Остается только придать ему форму.
|
||||
|
||||
ent-CP14FoodDoughMedium = средний кусок теста
|
||||
.desc = { ent-CP14FoodDoughLarge.desc }
|
||||
|
||||
ent-CP14FoodDoughMediumFlat = раскатанное тесто
|
||||
.desc = { ent-CP14FoodDoughMedium.desc }
|
||||
|
||||
ent-CP14Eggshells = яичная скорлупа
|
||||
.desc = Ты ходишь по ним, приятель.
|
||||
|
||||
ent-CP14FoodEgg = яйцо
|
||||
.desc = { ent-CP14FoodEggBase.desc }
|
||||
|
||||
ent-CP14FoodMeatSliceBase = { ent-CP14FoodMeatBase }
|
||||
.desc = { ent-CP14FoodMeatBase.desc }
|
||||
|
||||
ent-CP14FoodMeatLamb = сырая баранина
|
||||
.desc = Сочный стейк из баранины
|
||||
|
||||
ent-CP14FoodMeatLambSlice = кусочки мяса
|
||||
.desc = Succulent lamb steak
|
||||
|
||||
ent-CP14FoodMeatLambCutlet = котлета из баранины
|
||||
.desc = Результат смешивания нарезанной баранины и яйца - сырая круглая котлета.
|
||||
|
||||
ent-CP14FoodCabbage = капуста
|
||||
.desc = Зеленый съедобный шарик
|
||||
|
||||
ent-CP14FoodCabbageSlice = лист капусты
|
||||
.desc = Время делать салатики.
|
||||
|
||||
ent-CP14FoodPumpkin = тыква
|
||||
.desc = Большая, клевая тыква.
|
||||
|
||||
ent-CP14FoodPumpkinSlice = кусок тыквы
|
||||
.desc = Это тыква!
|
||||
|
||||
ent-CP14CopperCoin = медная корона
|
||||
.desc = Минимальная экономическая единица на просторах Эберрона. Является одной десятой серебряного соверена.
|
||||
.suffix = 10 монет
|
||||
@@ -358,6 +453,9 @@ ent-CP14Nail110 = { ent-CP14Nail1 }
|
||||
.desc = { ent-CP14Nail1.desc }
|
||||
.suffix = 10
|
||||
|
||||
ent-CP14FloraMaterial = растительный материал
|
||||
.desc = Органический материал, используемый в лечебных или строительных целях.
|
||||
|
||||
ent-CP14Cauldron = котел
|
||||
.desc = Тяжелый котелок. Он не такой громоздкий, как чан, но его можно нести в руках.
|
||||
|
||||
@@ -406,7 +504,7 @@ ent-CP14VialSmallLumiMushroom = { ent-CP14VialTiny }
|
||||
ent-CP14MeltingMoldBase = форма для выплавки
|
||||
.desc = Деревянная доска для заливки металла в необходимые формы.
|
||||
|
||||
ent-CP14MeltingMoldBlank = форма для выплавки заготовок
|
||||
ent-CP14MeltingMoldBlank = пустая форма для выплавки
|
||||
.desc = Пустая форма для литья металла. Вы можете вырезать в ней любую нужную форму на столе для резки деталей.
|
||||
|
||||
ent-CP14MeltingMoldDaggers = форма для кинжала
|
||||
@@ -454,24 +552,17 @@ ent-CP14QuartzShard = грубый кварц
|
||||
ent-CP14LumiMushroom = люмигриб
|
||||
.desc = Слабо светящийся гриб. Часто используется алхимиками как средство для концентрации растворов.
|
||||
|
||||
ent-CP14EnergyCrystalBase = None
|
||||
.desc = Shards of one of the Khyber dragon, used to bind and control elemental energy.
|
||||
ent-CP14SeedWheat = семена пшеницы
|
||||
.desc = Маленькие семена пшеницы. Что вы будете с ними делать? Размолоть в муку или посадить снова?
|
||||
|
||||
ent-CP14EnergyCrystalSmall = small Khyber shard
|
||||
.desc = { ent-CP14EnergyCrystalBase.desc }
|
||||
.suffix = Full
|
||||
ent-CP14SeedPumpkin = семена тыквы
|
||||
.desc = Тыквенные семечки. Кажется, какая-то тыква была жестоко выпотрошена и разделана.
|
||||
|
||||
ent-CP14EnergyCrystalSmallEmpty = { ent-CP14EnergyCrystalSmall }
|
||||
.desc = { ent-CP14EnergyCrystalSmall.desc }
|
||||
.suffix = Empty
|
||||
ent-CP14SeedCabbage = семена капусты
|
||||
.desc = О нет! Моя капуста!
|
||||
|
||||
ent-CP14EnergyCrystalMedium = Khyber shard
|
||||
.desc = { ent-CP14EnergyCrystalBase.desc }
|
||||
.suffix = Full
|
||||
|
||||
ent-CP14EnergyCrystalMediumEmpty = { ent-CP14EnergyCrystalMedium }
|
||||
.desc = { ent-CP14EnergyCrystalMedium.desc }
|
||||
.suffix = Empty
|
||||
ent-CP14SeedTomato = семена помидоров
|
||||
.desc = Похоже на порошок! Они такие маленькие, эти семена.
|
||||
|
||||
ent-CP14AuraScanner = сканер ауры
|
||||
.desc = Сканирует полярность потоков элементальной энергии в этом месте.
|
||||
@@ -589,6 +680,9 @@ ent-CP14WoodDoorTavern = { ent-CP14BaseWoodDoor }
|
||||
.desc = { ent-CP14BaseWoodDoor.desc }
|
||||
.suffix = Таверна
|
||||
|
||||
ent-CP14FloorWater = вода
|
||||
.desc = Впадина с обычной водой. Достаточна чиста для употребления.
|
||||
|
||||
ent-CP14Chasm = бездна
|
||||
.desc = И вы не видите ее дна...
|
||||
|
||||
@@ -694,9 +788,6 @@ ent-CP14CrystalDiamondsBig = { ent-CP14CrystalBase }
|
||||
.desc = { ent-CP14CrystalBase.desc }
|
||||
.suffix = White, Big
|
||||
|
||||
ent-CP14FloorWater = вода
|
||||
.desc = Впадина с обычной водой. Достаточна чиста для употребления.
|
||||
|
||||
ent-CP14HighBush = высокий куст
|
||||
.desc = Высокие и густые заросли. Возможно кто-то наблюдает за тобой из них.
|
||||
|
||||
@@ -797,6 +888,9 @@ ent-CP14Bonfire = костёр
|
||||
ent-CP14ChairWooden = деревянный стул
|
||||
.desc = Сколочен из самых обычных досок. Просто и эффективно!
|
||||
|
||||
ent-CP14CuttingBoard = Разделочная доска
|
||||
.desc = Поможет вам приготовить еду.
|
||||
|
||||
ent-CP14ClosetBase = шкаф
|
||||
.desc = Обычный, ветхий шкаф.
|
||||
|
||||
@@ -832,6 +926,9 @@ ent-CP14Workbench = верстак
|
||||
ent-CP14WorkbenchMeltingMolds = стол для резки форм
|
||||
.desc = Специализированный стол, позволяющий вырезать формы для выплавки металла.
|
||||
|
||||
ent-CP14WorkbenchCooking = кухонный стол
|
||||
.desc = Время готовить.
|
||||
|
||||
ent-CP14FrameWooden = каркас деревянной стены
|
||||
.desc = Деревянный каркас для деревянных стен любых видов.
|
||||
|
||||
@@ -847,9 +944,8 @@ ent-CP14AlchemyNormalizer = нормализатор растворов
|
||||
ent-CP14BaseVat = чан
|
||||
.desc = Очень большой чан для хранения огромного количества жидкости. Тяжелый, неудобный для переноски.
|
||||
|
||||
ent-CP14PloughedGround = вскопанная почва
|
||||
|
||||
ent-CP14SeedbedDefault = лоток для семян
|
||||
ent-CP14SeedbedWooden = грядка
|
||||
.desc = Деревянная кадка с кучей земли, приспособленная для выращивания растений.
|
||||
|
||||
ent-CP14GatherableWildBase = { ent-CP14GatherableBase }
|
||||
.desc = { ent-CP14GatherableBase.desc }
|
||||
@@ -857,12 +953,6 @@ ent-CP14GatherableWildBase = { ent-CP14GatherableBase }
|
||||
ent-CP14GatherablePlantBase = { ent-CP14GatherableBase }
|
||||
.desc = { ent-CP14GatherableBase.desc }
|
||||
|
||||
ent-CP14PlantWheat = пшеница
|
||||
.desc = Наиболее популярная культура. Непритязательна, и открывает дорогу к разнообразию мучных изделий.
|
||||
|
||||
ent-CP14PlantWheatDeath = мертвая пшеница
|
||||
.desc = Грустное зрелище потерянной еды.
|
||||
|
||||
ent-CP14GatherableBloodgrass = кровьтрава
|
||||
.desc = Самое скучное и распространенное растение, которое можно встретить в природе, - это темно-коричневая трава.
|
||||
.suffix = Gatherable
|
||||
@@ -883,6 +973,12 @@ ent-CP14GatherableLumiMushroom = люмигрибы
|
||||
.desc = Слабо светящийся гриб. Часто используется алхимиками как средство для концентрации растворов.
|
||||
.suffix = Gatherable
|
||||
|
||||
ent-CP14PlantWheat = пшеница
|
||||
.desc = Наиболее популярная культура. Непритязательна, и открывает дорогу к разнообразию мучных изделий.
|
||||
|
||||
ent-CP14PlantWheatDeath = мертвая пшеница
|
||||
.desc = Грустное зрелище потерянной еды.
|
||||
|
||||
ent-CP14ElementalReactor = elemental reactor
|
||||
.desc = A work of art created by the dwarves of Zilagro and House Lyrandar, controlling the fire elemental and allowing it to produce vast amounts of energy.
|
||||
|
||||
@@ -948,10 +1044,14 @@ ent-CP14IronGrilleTJunction = { ent-CP14IronGrilleBase }
|
||||
ent-CP14IronGrilleGate = ворота в железной решетке
|
||||
.desc = Представляете ли вы, что ждет вас за этими воротами? Это может быть как туалет, так и роскошный особняк.
|
||||
|
||||
ent-CP14IronGrilleGateLockedTavern = { ent-CP14IronGrilleGate }
|
||||
.desc = { ent-CP14IronGrilleGate.desc }
|
||||
.suffix = Таверна, закрыто
|
||||
|
||||
ent-CP14WallStone = камень
|
||||
.desc = Природная стена из цельного камня. В ней ощущается холод пещеры.
|
||||
|
||||
ent-CP14WallDirt = земляной холм
|
||||
ent-CP14WallDirt = земляная стена
|
||||
.desc = Высокая куча земли. Можно ли построить из нее дом?
|
||||
|
||||
ent-CP14WallStoneGoldOre = { ent-CP14WallStone }
|
||||
@@ -1022,6 +1122,9 @@ ent-CP14FenceWoodSmallTJunction = { ent-CP14BaseFenceWoodSmall }
|
||||
ent-CP14FenceWoodSmallGate = ворота в деревянном заборе
|
||||
.desc = Представляете ли вы, что ждет вас за этими воротами? Это может быть как туалет, так и роскошный особняк.
|
||||
|
||||
ent-CP14WindowDirectional = направленное окно
|
||||
.desc = Не заляпайте стекло.
|
||||
|
||||
ent-CP14WindowStoneBrick = окно в стене из каменного кирпича
|
||||
.desc = Каменная кирпичная стена, и проделанным в ней стеклянным окном.
|
||||
|
||||
@@ -1074,47 +1177,12 @@ ent-CP14CardboardWall = стена из картона
|
||||
ent-CPBaseSharpeningStoneStructure = стационарный точильный камень
|
||||
.desc = прочный, долговечный точильный камень, способный затачивать оружие без особого вреда для него.
|
||||
|
||||
ent-CP14GreenBottle = Зеленая бутылка
|
||||
.desc = Зеленая бутылка, идеально подходит для пива.
|
||||
.suffix = Пустая
|
||||
|
||||
ent-CP14BlueVial = Синий флакон
|
||||
.desc = Синий флакон, идеально подходит для рома.
|
||||
.suffix = Пустой
|
||||
|
||||
ent-CP14GreenVial = Зеленый флакон
|
||||
.desc = Маленький зеленый флакон.
|
||||
.suffix = Пустой
|
||||
|
||||
ent-CP14OrangeBottle = Оранжевая бутылка
|
||||
.desc = Просто оранжевая бутылка.
|
||||
.suffix = Пустая
|
||||
|
||||
ent-CP14RedBottle = Красная бутылка
|
||||
.desc = Красная бутылка, идеально подходит для вина.
|
||||
.suffix = Пустая
|
||||
|
||||
ent-CP14MetalBeerMug = Металлическая кружка
|
||||
.desc = Самая обычная металлическая кружка.
|
||||
|
||||
ent-CP14WoodenBeerMug = Деревянная кружка
|
||||
.desc = Деревянная кружка для пива.
|
||||
|
||||
ent-CP14SteelBeerMug = Пивная кружка
|
||||
.desc = Деревянная кружка с железными вкраплениями.
|
||||
|
||||
ent-CP14SteelWoodBeerMug = { ent-CP14SteelBeerMug }
|
||||
.desc = { ent-CP14SteelBeerMug.desc }
|
||||
|
||||
ent-CP14RawFoodMeat = Сырая баранина
|
||||
.desc = Пахнет странно, но выглядит как обычное мясо...
|
||||
|
||||
ent-CP14CookedFoodMeat = Стейк из баранины
|
||||
.desc = Зажаренный кусок мяса. Запах первобытный.
|
||||
|
||||
ent-CP14CuttingBoard = Разделочная доска
|
||||
.desc = Поможет вам приготовить еду.
|
||||
|
||||
ent-CP14ActionSpellCureWounds = Лечение ран
|
||||
.desc = Вы касаетесь существа, исцеляя его тело от физических повреждений.
|
||||
|
||||
@@ -1159,3 +1227,4 @@ ent-CP14ActionSpellSphereOfLight = Сфера света
|
||||
|
||||
ent-CP14SphereOfLight = Сфера света
|
||||
.desc = Сгусток яркого света в форме сферы.
|
||||
|
||||
|
||||
@@ -25,7 +25,6 @@ entities:
|
||||
name: Map Entity
|
||||
- type: Transform
|
||||
- type: Map
|
||||
mapPaused: True
|
||||
- type: PhysicsMap
|
||||
- type: GridTree
|
||||
- type: MovedGrids
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
- type: entity
|
||||
id: CP14SeedTest
|
||||
name: FUCK test SEED
|
||||
parent: BaseItem
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Specific/Hydroponics/seeds.rsi
|
||||
state: seed
|
||||
- type: CP14Seed
|
||||
plantProto: CP14PlantWheat
|
||||
@@ -14,6 +14,11 @@
|
||||
drawdepth: BelowFloor
|
||||
sprite: _CP14/Markers/biome.rsi
|
||||
- type: CP14BiomeSpawner
|
||||
deleteBlacklist:
|
||||
components:
|
||||
- Portal
|
||||
- MindContainer
|
||||
- CP14WorldBounding
|
||||
- type: PlacementReplacement
|
||||
key: CP14BiomeSpawner
|
||||
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
- type: entity
|
||||
id: CP14FoodCabbage
|
||||
parent: FoodInjectableBase
|
||||
name: cabbage
|
||||
description: Green edible ball.
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: FlavorProfile
|
||||
flavors:
|
||||
- cabbage
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Specific/Farming/Produce/cabbage.rsi
|
||||
layers:
|
||||
- state: base1
|
||||
map: [ "random" ]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
base1: ""
|
||||
base2: ""
|
||||
base3: ""
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 12
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 10
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 1
|
||||
- type: SliceableFood
|
||||
count: 4
|
||||
sliceTime: 1.5
|
||||
slice: CP14FoodCabbageSlice
|
||||
|
||||
- type: entity
|
||||
id: CP14FoodCabbageSlice
|
||||
parent: CP14FoodCabbage
|
||||
name: cabbage leaf
|
||||
description: Time to make green salads
|
||||
components:
|
||||
- type: Item
|
||||
size: Tiny
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: slice1
|
||||
map: [ "random" ]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
slice1: ""
|
||||
slice2: ""
|
||||
slice3: ""
|
||||
slice4: ""
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 3 # 1/4 cabbage
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 2.5
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 0.25
|
||||
|
||||
- type: entity
|
||||
id: CP14FoodPumpkin
|
||||
parent: FoodInjectableBase
|
||||
name: pumpkin
|
||||
description: Big, cool pumpkin.
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: FlavorProfile
|
||||
flavors:
|
||||
- pumpkin
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Specific/Farming/Produce/pumpkin.rsi
|
||||
layers:
|
||||
- state: base1
|
||||
map: [ "random" ]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
base1: ""
|
||||
base2: ""
|
||||
base3: ""
|
||||
base4: ""
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 25
|
||||
reagents:
|
||||
- ReagentId: PumpkinFlesh
|
||||
Quantity: 20
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 5
|
||||
- type: SliceableFood
|
||||
count: 5
|
||||
sliceTime: 2
|
||||
slice: CP14FoodPumpkinSlice
|
||||
|
||||
- type: entity
|
||||
id: CP14FoodPumpkinSlice
|
||||
parent: CP14FoodPumpkin
|
||||
name: pumpkin slice
|
||||
description: Pumpkin! # TODO
|
||||
components:
|
||||
- type: Item
|
||||
size: Tiny
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: slice1
|
||||
map: [ "random" ]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
slice1: ""
|
||||
slice2: ""
|
||||
slice3: ""
|
||||
slice4: ""
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 5 # 1/5 pumpkin
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 4
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 1
|
||||
@@ -0,0 +1,61 @@
|
||||
- type: entity
|
||||
id: CP14BaseSeed
|
||||
parent: BaseItem
|
||||
abstract: true
|
||||
components:
|
||||
- type: Item
|
||||
size: Tiny
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Specific/Farming/seeds.rsi
|
||||
|
||||
- type: entity
|
||||
id: CP14SeedWheat
|
||||
name: wheat seeds
|
||||
description: Small wheat seeds. What will you do with them? Grind them into flour, or plant them again?
|
||||
parent: CP14BaseSeed
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: bag
|
||||
- state: wheat
|
||||
- type: CP14Seed
|
||||
plantProto: CP14PlantWheat
|
||||
|
||||
- type: entity
|
||||
id: CP14SeedPumpkin
|
||||
name: pumpkin seeds
|
||||
description: Pumpkin seeds. Some pumpkin seems to have been gutted and butchered.
|
||||
parent: CP14BaseSeed
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: bag
|
||||
- state: pumpkin
|
||||
- type: CP14Seed
|
||||
plantProto: CP14PlantPumpkin
|
||||
|
||||
- type: entity
|
||||
id: CP14SeedCabbage
|
||||
name: cabbage seeds
|
||||
description: Oh, no, my cabbage!
|
||||
parent: CP14BaseSeed
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: bag
|
||||
- state: cabbage
|
||||
- type: CP14Seed
|
||||
plantProto: CP14PlantCabbage
|
||||
|
||||
- type: entity
|
||||
id: CP14SeedTomato
|
||||
name: tomato seeds
|
||||
description: It looks like powder! They're so small, these seeds.
|
||||
parent: CP14BaseSeed
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: bag
|
||||
- state: tomato
|
||||
#- type: CP14Seed
|
||||
# plantProto: CP14PlantWheat
|
||||
@@ -21,7 +21,4 @@
|
||||
collection: MetalThud
|
||||
- type: Item
|
||||
size: Normal
|
||||
sprite: _CP14/Objects/Weapons/Melee/Hoe/hoe.rsi
|
||||
- type: CP14SpawnOnTileTool
|
||||
spawns:
|
||||
CP14FloorDirt: CP14PloughedGround
|
||||
sprite: _CP14/Objects/Weapons/Melee/Hoe/hoe.rsi
|
||||
@@ -69,6 +69,14 @@
|
||||
- type: CP14Sharpened
|
||||
- type: CP14SharpeningStone
|
||||
- type: UseDelay
|
||||
- type: Tool
|
||||
qualities:
|
||||
- Slicing
|
||||
useSound:
|
||||
path: /Audio/Items/Culinary/chop.ogg
|
||||
- type: Utensil
|
||||
types:
|
||||
- Knife
|
||||
|
||||
- type: entity
|
||||
id: CP14BaseWeaponDestructible
|
||||
|
||||
@@ -120,4 +120,6 @@
|
||||
- CP14FoodDoughLarge
|
||||
- CP14FoodDoughMediumFlat
|
||||
- CP14FoodDoughMedium
|
||||
- CP14FoodMeatLamb
|
||||
- CP14FoodMeatLamb
|
||||
- CP14SeedPumpkin
|
||||
- CP14SeedWheat
|
||||
@@ -10,8 +10,6 @@
|
||||
- type: Physics
|
||||
canCollide: false
|
||||
bodyType: Static
|
||||
- type: CP14DestroyedByTool
|
||||
tool: CP14Digging
|
||||
- type: CP14PlantAutoRoot
|
||||
- type: Damageable
|
||||
damageContainer: Biological
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
- type: entity
|
||||
id: CP14PlantCabbage
|
||||
parent: CP14GatherablePlantBase
|
||||
name: cabbage
|
||||
description: OOO # TODO
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/Specific/Farming/Herbals/cabbage.rsi
|
||||
layers:
|
||||
- state: grow-1
|
||||
map: ["enum.PlantVisualLayers.Base"]
|
||||
- type: CP14PlantMetabolizer
|
||||
metabolizerId: Base
|
||||
- type: CP14PlantEnergyFromLight
|
||||
energy: 1
|
||||
daytime: true
|
||||
- type: CP14PlantVisuals
|
||||
growthSteps: 6
|
||||
- type: CP14PlantGrowing
|
||||
energyCost: 1
|
||||
resourceCost: 1
|
||||
growthPerUpdate: 0.1 # 10 minute to full grow
|
||||
- type: CP14PlantFading
|
||||
resourcePerMinute: 0.25 #20 minute from water
|
||||
- type: CP14PlantGatherable
|
||||
deleteAfterHarvest: true
|
||||
loot:
|
||||
All: CP14GatherCabbage
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 25
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTypeTrigger
|
||||
damageType: Cellular
|
||||
damage: 1
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
CP14PlantCabbageDeath:
|
||||
min: 1
|
||||
max: 1
|
||||
|
||||
- type: entity
|
||||
id: CP14PlantCabbageDeath
|
||||
name: dead cabbage
|
||||
description: The sad spectacle of wasted food.
|
||||
parent: CP14GatherableBase
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/Specific/Farming/Herbals/cabbage.rsi
|
||||
state: death
|
||||
- type: Gatherable
|
||||
toolWhitelist:
|
||||
tags:
|
||||
- CP14HerbalGathering
|
||||
|
||||
- type: entityLootTable
|
||||
id: CP14GatherCabbage
|
||||
entries:
|
||||
- id: CP14FoodCabbage
|
||||
amount: 3
|
||||
maxAmount: 4
|
||||
@@ -0,0 +1,69 @@
|
||||
- type: entity
|
||||
id: CP14PlantPumpkin
|
||||
parent: CP14GatherablePlantBase
|
||||
name: pumpkin
|
||||
description: OOO # TODO
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi
|
||||
layers:
|
||||
- state: grow-1
|
||||
map: ["enum.PlantVisualLayers.Base"]
|
||||
- type: CP14PlantMetabolizer
|
||||
metabolizerId: Base
|
||||
- type: CP14PlantEnergyFromLight
|
||||
energy: 1
|
||||
daytime: true
|
||||
- type: CP14PlantVisuals
|
||||
growthSteps: 6
|
||||
- type: CP14PlantGrowing
|
||||
energyCost: 1
|
||||
resourceCost: 1
|
||||
growthPerUpdate: 0.1 # 10 minute to full grow
|
||||
- type: CP14PlantFading
|
||||
resourcePerMinute: 0.25 #20 minute from water
|
||||
- type: CP14PlantGatherable
|
||||
deleteAfterHarvest: true
|
||||
loot:
|
||||
All: CP14GatherPumpkin
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 25
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTypeTrigger
|
||||
damageType: Cellular
|
||||
damage: 1
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
CP14PlantPumpkinDeath:
|
||||
min: 1
|
||||
max: 1
|
||||
|
||||
- type: entity
|
||||
id: CP14PlantPumpkinDeath
|
||||
name: dead pumpkin
|
||||
description: The sad spectacle of wasted food.
|
||||
parent: CP14GatherableBase
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi
|
||||
state: death
|
||||
- type: Gatherable
|
||||
toolWhitelist:
|
||||
tags:
|
||||
- CP14HerbalGathering
|
||||
|
||||
- type: entityLootTable
|
||||
id: CP14GatherPumpkin
|
||||
entries:
|
||||
- id: CP14FoodPumpkin
|
||||
amount: 1
|
||||
maxAmount: 2
|
||||
@@ -44,6 +44,9 @@
|
||||
CP14PlantWheatDeath:
|
||||
min: 1
|
||||
max: 1
|
||||
- type: CP14WaveShader
|
||||
speed: 2.8
|
||||
dis: 4
|
||||
|
||||
- type: entity
|
||||
id: CP14PlantWheatDeath
|
||||
@@ -31,39 +31,12 @@
|
||||
anchored: true
|
||||
- type: CP14Soil
|
||||
solution: soil
|
||||
- type: CP14DestroyedByTool
|
||||
tool: CP14Digging
|
||||
|
||||
- type: entity
|
||||
name: ploughed ground
|
||||
id: CP14SeedbedWooden
|
||||
parent: CP14BaseFarmingSoil
|
||||
id: CP14PloughedGround
|
||||
components:
|
||||
- type: Sprite
|
||||
drawdepth: FloorTiles
|
||||
sprite: _CP14/Structures/Specific/Farming/soil.rsi
|
||||
layers:
|
||||
- state: soil1
|
||||
map: ["random"]
|
||||
- state: liq-1 #Resprite this shit
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
visible: false
|
||||
snapCardinals: true
|
||||
- type: SolutionContainerVisuals
|
||||
maxFillLevels: 4
|
||||
fillBaseName: liq-
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
soil1: ""
|
||||
soil2: ""
|
||||
soil3: ""
|
||||
soil4: ""
|
||||
|
||||
- type: entity
|
||||
name: seedbed
|
||||
id: CP14SeedbedDefault
|
||||
parent: CP14BaseFarmingSoil
|
||||
description: A wooden tub with a pile of earth adapted for growing plants.
|
||||
components:
|
||||
- type: Icon
|
||||
sprite: _CP14/Structures/Specific/Farming/seedbed.rsi
|
||||
@@ -85,4 +58,6 @@
|
||||
state: seedbed_default_north
|
||||
- map: [ "enum.EdgeLayer.West" ]
|
||||
state: seedbed_default_west
|
||||
# snapCardinals: true (when you flip it over, you get a swastika)
|
||||
- type: Construction
|
||||
graph: CP14Seedbed
|
||||
node: CP14SeedbedWooden
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
- type: entity
|
||||
id: CP14WallDirt
|
||||
name: earth cliffs
|
||||
name: earth wall
|
||||
parent: CP14BaseWall
|
||||
description: A tall pile of dirt. Can a house be built from it?
|
||||
components:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
- type: entity
|
||||
id: CP14DungeonEntrance
|
||||
name: dungeon entrance
|
||||
noSpawn: true
|
||||
description: The dark depths of the underworld are calling you.
|
||||
placement:
|
||||
mode: SnapgridCenter
|
||||
@@ -31,12 +32,12 @@
|
||||
- type: Portal
|
||||
canTeleportToOtherMaps: true
|
||||
randomTeleport: false
|
||||
- type: CP14AutoLink
|
||||
|
||||
- type: entity
|
||||
parent: CP14DungeonEntrance
|
||||
id: CP14DungeonExit
|
||||
name: dungeon exit
|
||||
noSpawn: true
|
||||
description: A way out of the dark underworld into the overworld.
|
||||
components:
|
||||
- type: Sprite
|
||||
@@ -50,4 +51,19 @@
|
||||
radius: 3
|
||||
energy: 1
|
||||
netsync: false
|
||||
- type: CP14AutoLink
|
||||
|
||||
- type: entity
|
||||
parent: CP14DungeonEntrance
|
||||
id: CP14DungeonEntranceAutoLink
|
||||
components:
|
||||
- type: CP14ZLevelAutoPortal
|
||||
zLevelOffset: -1 # Go into deep
|
||||
otherSideProto: CP14DungeonExit
|
||||
|
||||
- type: entity
|
||||
parent: CP14DungeonExit
|
||||
id: CP14DungeonExitAutoLink
|
||||
components:
|
||||
- type: CP14ZLevelAutoPortal
|
||||
zLevelOffset: 1 # Go onto surface
|
||||
otherSideProto: CP14DungeonEntrance
|
||||
@@ -24,9 +24,11 @@
|
||||
AlchemyTest:
|
||||
stationProto: StandardStationArena
|
||||
components:
|
||||
- type: CP14StationAdditionalMap
|
||||
mapPaths:
|
||||
- /Maps/_CP14/alchemy_test_layer2.yml
|
||||
- type: CP14StationZLevels
|
||||
defaultMapLevel: 0
|
||||
levels:
|
||||
1:
|
||||
path: /Maps/_CP14/alchemy_test_layer2.yml
|
||||
- type: StationNameSetup
|
||||
mapNameTemplate: "Alchemy test"
|
||||
- type: StationJobs
|
||||
@@ -78,4 +80,11 @@
|
||||
CP14GuardCommander: [1, 1]
|
||||
CP14HouseKeeper: [1, 1]
|
||||
- type: CP14StationExpeditionTarget
|
||||
shuttlePath: /Maps/_CP14/Shuttles/test-ship.yml
|
||||
shuttlePath: /Maps/_CP14/Shuttles/test-ship.yml
|
||||
- type: CP14StationZLevels
|
||||
defaultMapLevel: 0
|
||||
levels:
|
||||
-1:
|
||||
path: /Maps/_CP14/alchemy_test_layer2.yml
|
||||
-2:
|
||||
path: /Maps/_CP14/battle_royale.yml
|
||||
@@ -27,3 +27,8 @@
|
||||
- type: StationJobs
|
||||
availableJobs:
|
||||
CP14Adventurer: [ -1, -1 ]
|
||||
- type: CP14StationZLevels
|
||||
defaultMapLevel: 0
|
||||
levels:
|
||||
-1:
|
||||
path: /Maps/_CP14/alchemy_test_layer2.yml
|
||||
|
||||
9
Resources/Prototypes/_CP14/Procedural/biome_markers.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
- type: biomeMarkerLayer
|
||||
id: CP14OreGold
|
||||
entityMask:
|
||||
CP14WallStone: CP14PlantPumpkinDeath
|
||||
maxCount: 30
|
||||
minGroupSize: 10
|
||||
maxGroupSize: 15
|
||||
radius: 4
|
||||
@@ -0,0 +1,32 @@
|
||||
- type: constructionGraph
|
||||
id: CP14Seedbed
|
||||
start: start
|
||||
graph:
|
||||
- node: start
|
||||
actions:
|
||||
- !type:DestroyEntity {}
|
||||
edges:
|
||||
- to: CP14SeedbedWooden
|
||||
steps:
|
||||
- material: CP14Dirt
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
|
||||
- node: CP14SeedbedWooden
|
||||
entity: CP14SeedbedWooden
|
||||
edges:
|
||||
- to: start
|
||||
steps:
|
||||
- tool: CP14Digging
|
||||
doAfter: 1
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14DirtBlock1
|
||||
amount: 2
|
||||
- !type:DeleteEntity {}
|
||||
20
Resources/Prototypes/_CP14/Recipes/Construction/farming.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
- type: construction
|
||||
crystallPunkAllowed: true
|
||||
name: Seedbed
|
||||
description: A wooden tub with a pile of earth adapted for growing plants.
|
||||
id: CP14SeedbedWooden
|
||||
graph: CP14Seedbed
|
||||
startNode: start
|
||||
targetNode: CP14SeedbedWooden
|
||||
category: construction-category-furniture
|
||||
icon:
|
||||
sprite: _CP14/Structures/Specific/Farming/seedbed.rsi
|
||||
state: seedbed_default
|
||||
objectType: Structure
|
||||
placementMode: SnapgridCenter
|
||||
canBuildInImpassable: false
|
||||
conditions:
|
||||
- !type:TileNotBlocked
|
||||
- !type:TileType
|
||||
targets:
|
||||
- CP14FloorDirt
|
||||
@@ -29,4 +29,18 @@
|
||||
entities:
|
||||
CP14FoodDoughMedium: 1
|
||||
result: CP14FoodDoughMediumFlat
|
||||
tryMergeSolutions: true
|
||||
tryMergeSolutions: true
|
||||
|
||||
- type: CP14Recipe
|
||||
id: CP14SeedPumpkin
|
||||
craftTime: 1
|
||||
entities:
|
||||
CP14FoodPumpkinSlice: 1
|
||||
result: CP14SeedPumpkin
|
||||
|
||||
- type: CP14Recipe
|
||||
id: CP14SeedWheat
|
||||
craftTime: 1
|
||||
entities:
|
||||
CP14Wheat: 1
|
||||
result: CP14SeedWheat
|
||||
@@ -10,3 +10,7 @@
|
||||
- type: lobbyBackground
|
||||
id: Tiefling
|
||||
background: /Textures/_CP14/LobbyScreens/tiefling.webp
|
||||
|
||||
- type: lobbyBackground
|
||||
id: LittleAdventure
|
||||
background: /Textures/_CP14/LobbyScreens/little_adventure.webp
|
||||
|
||||
BIN
Resources/Textures/_CP14/LobbyScreens/little_adventure.webp
Normal file
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,2 @@
|
||||
sample:
|
||||
filter: true
|
||||
|
After Width: | Height: | Size: 535 B |
|
After Width: | Height: | Size: 588 B |
|
After Width: | Height: | Size: 555 B |
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by omsoyk (Discord)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "base1"
|
||||
},
|
||||
{
|
||||
"name": "base2"
|
||||
},
|
||||
{
|
||||
"name": "base3"
|
||||
},
|
||||
{
|
||||
"name": "slice1"
|
||||
},
|
||||
{
|
||||
"name": "slice2"
|
||||
},
|
||||
{
|
||||
"name": "slice3"
|
||||
},
|
||||
{
|
||||
"name": "slice4"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 307 B |
|
After Width: | Height: | Size: 295 B |
|
After Width: | Height: | Size: 319 B |
|
After Width: | Height: | Size: 286 B |
|
After Width: | Height: | Size: 377 B |
|
After Width: | Height: | Size: 529 B |
|
After Width: | Height: | Size: 461 B |
|
After Width: | Height: | Size: 431 B |
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by omsoyk (Discord)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "base1"
|
||||
},
|
||||
{
|
||||
"name": "base2"
|
||||
},
|
||||
{
|
||||
"name": "base3"
|
||||
},
|
||||
{
|
||||
"name": "base4"
|
||||
},
|
||||
{
|
||||
"name": "slice1"
|
||||
},
|
||||
{
|
||||
"name": "slice2"
|
||||
},
|
||||
{
|
||||
"name": "slice3"
|
||||
},
|
||||
{
|
||||
"name": "slice4"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 261 B |
|
After Width: | Height: | Size: 260 B |
|
After Width: | Height: | Size: 248 B |
|
After Width: | Height: | Size: 250 B |
|
After Width: | Height: | Size: 292 B |
|
After Width: | Height: | Size: 183 B |
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"version": 1,
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by TheShuEd (Github) for CrystallPunk14",
|
||||
"states": [
|
||||
{
|
||||
"name": "bag"
|
||||
},
|
||||
{
|
||||
"name": "cabbage"
|
||||
},
|
||||
{
|
||||
"name": "pumpkin"
|
||||
},
|
||||
{
|
||||
"name": "tomato"
|
||||
},
|
||||
{
|
||||
"name": "wheat"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 171 B |
|
After Width: | Height: | Size: 142 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 422 B |
|
After Width: | Height: | Size: 923 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by omsoyk (Discord)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "grow-1"
|
||||
},
|
||||
{
|
||||
"name": "grow-2"
|
||||
},
|
||||
{
|
||||
"name": "grow-3"
|
||||
},
|
||||
{
|
||||
"name": "grow-4"
|
||||
},
|
||||
{
|
||||
"name": "grow-5"
|
||||
},
|
||||
{
|
||||
"name": "grow-6"
|
||||
},
|
||||
{
|
||||
"name": "death"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 885 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by omsoyk (Discord)",
|
||||
"size": {
|
||||
"x": 48,
|
||||
"y": 48
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "grow-1"
|
||||
},
|
||||
{
|
||||
"name": "grow-2"
|
||||
},
|
||||
{
|
||||
"name": "grow-3"
|
||||
},
|
||||
{
|
||||
"name": "grow-4"
|
||||
},
|
||||
{
|
||||
"name": "grow-5"
|
||||
},
|
||||
{
|
||||
"name": "grow-6"
|
||||
},
|
||||
{
|
||||
"name": "death"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -33,6 +33,14 @@ CP14Shovel: CP14BaseShovel
|
||||
CP14Hoe: CP14BaseHoe
|
||||
CP14WallStoneSilverOre: CP14WallStoneGoldOre
|
||||
|
||||
# 2024-08-22
|
||||
CP14PloughedGround: CP14SeedbedWooden
|
||||
CP14SeedbedDefault: CP14SeedbedWooden
|
||||
|
||||
# 2024-08-24
|
||||
CP14DungeonEntrance: CP14DungeonEntranceAutoLink
|
||||
CP14DungeonExit: CP14DungeonExitAutoLink
|
||||
|
||||
# <---> CrystallPunk migration zone end
|
||||
|
||||
|
||||
|
||||