Compare commits
7 Commits
ed-06-08-2
...
ed-10-08-2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ccb87bdf30 | ||
|
|
bf256b25e9 | ||
|
|
9f4932a8af | ||
|
|
32ce8f2164 | ||
|
|
f70e3051ed | ||
|
|
e3e142592a | ||
|
|
d4001598d4 |
@@ -1,7 +1,7 @@
|
||||
using System.Numerics;
|
||||
using Content.Client.Parallax;
|
||||
using Content.Client.Weather;
|
||||
using Content.Shared._CP14.DayCycle;
|
||||
using Content.Shared._CP14.DayCycle.Components;
|
||||
using Content.Shared._CP14.WorldEdge;
|
||||
using Content.Shared.Salvage;
|
||||
using Content.Shared.Weather;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.Numerics;
|
||||
using Content.Shared._CP14.DayCycle;
|
||||
using Content.Shared._CP14.DayCycle.Components;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
@@ -53,7 +53,7 @@ public sealed partial class StencilOverlay
|
||||
worldHandle.UseShader(_protoManager.Index<ShaderPrototype>("StencilMask").Instance());
|
||||
worldHandle.DrawTextureRect(_blep!.Texture, worldBounds);
|
||||
var curTime = _timing.RealTime;
|
||||
var sprite = _sprite.GetFrame(new SpriteSpecifier.Texture(new ResPath(cloudComp.ParallaxPath)), curTime);
|
||||
var sprite = _sprite.GetFrame(new SpriteSpecifier.Texture(cloudComp.ParallaxPath), curTime);
|
||||
|
||||
// Draw the rain
|
||||
worldHandle.UseShader(_protoManager.Index<ShaderPrototype>("StencilDraw").Instance());
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
using Content.Shared._CP14.Workbench;
|
||||
/*
|
||||
* All right reserved to Crystallpunk.
|
||||
*
|
||||
* BUT this file is sublicensed under CLA License for next projects:
|
||||
* https://github.com/technologists-team/after-rain
|
||||
* https://github.com/EscapeD-14/EscapeD-14
|
||||
*
|
||||
*/
|
||||
|
||||
using Content.Shared._CP14.Workbench;
|
||||
using Robust.Client.UserInterface;
|
||||
|
||||
namespace Content.Client._CP14.Workbench;
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
using Content.Shared._CP14.Workbench;
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
/*
|
||||
* All right reserved to Crystallpunk.
|
||||
*
|
||||
* BUT this file is sublicensed under CLA License for next projects:
|
||||
* https://github.com/technologists-team/after-rain
|
||||
* https://github.com/EscapeD-14/EscapeD-14
|
||||
*
|
||||
*/
|
||||
|
||||
using Content.Shared.Stacks;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.GameObjects;
|
||||
@@ -26,7 +33,7 @@ public sealed partial class CP14WorkbenchRecipeControl : Control
|
||||
|
||||
public CP14WorkbenchRecipeControl(EntityPrototype prototype, int count) : this()
|
||||
{
|
||||
var entityName = Loc.GetString(prototype.Name);
|
||||
var entityName = prototype.Name;
|
||||
Name.Text = count <= 1 ? entityName : $"{entityName} x{count}";
|
||||
View.Texture = _sprite.GetPrototypeIcon(prototype).Default;
|
||||
}
|
||||
@@ -34,7 +41,7 @@ public sealed partial class CP14WorkbenchRecipeControl : Control
|
||||
public CP14WorkbenchRecipeControl(StackPrototype prototype, int count) : this()
|
||||
{
|
||||
var entityName = Loc.GetString(prototype.Name);
|
||||
Name.Text = count <= 1 ? entityName : $"{entityName} x{count}";
|
||||
Name.Text = $"{entityName} x{count}";
|
||||
|
||||
var icon = prototype.Icon;
|
||||
if (icon is null)
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
using Content.Shared._CP14.Workbench;
|
||||
/*
|
||||
* All right reserved to Crystallpunk.
|
||||
*
|
||||
* BUT this file is sublicensed under CLA License for next projects:
|
||||
* https://github.com/technologists-team/after-rain
|
||||
* https://github.com/EscapeD-14/EscapeD-14
|
||||
*
|
||||
*/
|
||||
|
||||
using Content.Shared._CP14.Workbench;
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.GameObjects;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<DefaultWindow xmlns="https://spacestation14.io"
|
||||
xmlns:graphics="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
|
||||
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
|
||||
Title="Workbench"
|
||||
Title="{Loc 'cp14-workbench-ui-title'}"
|
||||
MinSize="700 600">
|
||||
<BoxContainer Orientation="Vertical">
|
||||
<!-- Main -->
|
||||
@@ -41,7 +41,7 @@
|
||||
<controls:HLine Color="#404040" Thickness="2" Margin="0 5"/>
|
||||
|
||||
<!-- Required title -->
|
||||
<Label Text="Required"/>
|
||||
<Label Text="{Loc 'cp14-workbench-recipe-list'}"/>
|
||||
|
||||
<!-- Craft requirements content -->
|
||||
<!-- Added by code -->
|
||||
@@ -50,7 +50,7 @@
|
||||
<controls:HLine Color="#404040" Thickness="2" Margin="0 5"/>
|
||||
|
||||
<!-- Craft button -->
|
||||
<Button Name="CraftButton" Text="Craft"/>
|
||||
<Button Name="CraftButton" Text="{Loc 'cp14-workbench-craft'}"/>
|
||||
</BoxContainer>
|
||||
</PanelContainer>
|
||||
</BoxContainer>
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
/*
|
||||
* All right reserved to Crystallpunk.
|
||||
*
|
||||
* BUT this file is sublicensed under CLA License for next projects:
|
||||
* https://github.com/technologists-team/after-rain
|
||||
* https://github.com/EscapeD-14/EscapeD-14
|
||||
*
|
||||
*/
|
||||
|
||||
using Content.Shared._CP14.Workbench;
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
using Robust.Client.AutoGenerated;
|
||||
@@ -40,11 +49,23 @@ public sealed partial class CP14WorkbenchWindow : DefaultWindow
|
||||
{
|
||||
CraftsContainer.RemoveAllChildren();
|
||||
|
||||
List<CP14WorkbenchUiRecipesEntry> uncraftableList = new();
|
||||
foreach (var entry in recipesState.Recipes)
|
||||
{
|
||||
if (entry.Craftable)
|
||||
{
|
||||
var control = new CP14WorkbenchRequirementControl(entry);
|
||||
control.OnSelect += RecipeSelect;
|
||||
CraftsContainer.AddChild(control);
|
||||
}
|
||||
else
|
||||
uncraftableList.Add(entry);
|
||||
}
|
||||
|
||||
foreach (var entry in uncraftableList)
|
||||
{
|
||||
var control = new CP14WorkbenchRequirementControl(entry);
|
||||
control.OnSelect += RecipeSelect;
|
||||
|
||||
CraftsContainer.AddChild(control);
|
||||
}
|
||||
|
||||
@@ -73,8 +94,8 @@ public sealed partial class CP14WorkbenchWindow : DefaultWindow
|
||||
var result = _prototype.Index(recipe.Result);
|
||||
|
||||
ItemView.Texture = _sprite.GetPrototypeIcon(recipe.Result).Default;
|
||||
ItemName.Text = Loc.GetString(result.Name);
|
||||
ItemDescription.Text = Loc.GetString(result.Description);
|
||||
ItemName.Text = result.Name;
|
||||
ItemDescription.Text = result.Description;
|
||||
|
||||
ItemRequirements.RemoveAllChildren();
|
||||
foreach (var (entProtoId, count) in recipe.Entities)
|
||||
@@ -82,9 +103,9 @@ public sealed partial class CP14WorkbenchWindow : DefaultWindow
|
||||
ItemRequirements.AddChild(new CP14WorkbenchRecipeControl(_prototype.Index(entProtoId), count));
|
||||
}
|
||||
|
||||
foreach (var (entProtoId, count) in recipe.Stacks)
|
||||
foreach (var (stackProtoId, count) in recipe.Stacks)
|
||||
{
|
||||
ItemRequirements.AddChild(new CP14WorkbenchRecipeControl(_prototype.Index(entProtoId), count));
|
||||
ItemRequirements.AddChild(new CP14WorkbenchRecipeControl(_prototype.Index(stackProtoId), count));
|
||||
}
|
||||
|
||||
CraftButton.Disabled = !entry.Craftable;
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
using System.Numerics;
|
||||
using Content.Shared._CP14.DayCycle;
|
||||
using Content.Shared._CP14.DayCycle.Components;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Server._CP14.DayCycle;
|
||||
|
||||
public sealed partial class CP14CloudShadowsSystem : EntitySystem
|
||||
public sealed class CP14CloudShadowsSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
|
||||
@@ -15,10 +14,8 @@ public sealed partial class CP14CloudShadowsSystem : EntitySystem
|
||||
SubscribeLocalEvent<CP14CloudShadowsComponent, MapInitEvent>(OnMapInit);
|
||||
}
|
||||
|
||||
private void OnMapInit(Entity<CP14CloudShadowsComponent> ent, ref MapInitEvent args)
|
||||
private void OnMapInit(Entity<CP14CloudShadowsComponent> entity, ref MapInitEvent args)
|
||||
{
|
||||
ent.Comp.CloudSpeed = new Vector2(
|
||||
_random.NextFloat(-ent.Comp.MaxSpeed, ent.Comp.MaxSpeed),
|
||||
_random.NextFloat(-ent.Comp.MaxSpeed, ent.Comp.MaxSpeed));
|
||||
entity.Comp.CloudSpeed = _random.NextVector2(-entity.Comp.MaxSpeed, entity.Comp.MaxSpeed);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
using System.Diagnostics;
|
||||
using Content.Shared._CP14.DayCycle;
|
||||
using Content.Shared._CP14.DayCycle.Components;
|
||||
using Content.Shared.Maps;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Map.Components;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Shared._CP14.DayCycle;
|
||||
namespace Content.Server._CP14.DayCycle;
|
||||
|
||||
public sealed partial class CP14DayCycleSystem : EntitySystem
|
||||
public sealed partial class CP14DayCycleSystem : CP14SharedDayCycleSystem
|
||||
{
|
||||
public const int MinTimeEntryCount = 2;
|
||||
private const float MaxTimeDiff = 0.05f;
|
||||
|
||||
private static readonly ProtoId<CP14DayCyclePeriodPrototype> DayPeriod = "Day";
|
||||
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
[Dependency] private readonly SharedMapSystem _maps = default!;
|
||||
[Dependency] private readonly SharedTransformSystem _transform = default!;
|
||||
[Dependency] private readonly ITileDefinitionManager _tileDefManager = default!;
|
||||
|
||||
public override void Initialize()
|
||||
@@ -21,17 +24,8 @@ public sealed partial class CP14DayCycleSystem : EntitySystem
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<CP14DayCycleComponent, MapInitEvent>(OnMapInitDayCycle);
|
||||
SubscribeLocalEvent<CP14DayCycleComponent, DayCycleDayStartedEvent>(OnDayStarted);
|
||||
SubscribeLocalEvent<CP14DayCycleComponent, DayCycleNightStartedEvent>(OnNightStarted);
|
||||
}
|
||||
|
||||
private void OnDayStarted(Entity<CP14DayCycleComponent> dayCycle, ref DayCycleDayStartedEvent args)
|
||||
{
|
||||
}
|
||||
|
||||
private void OnNightStarted(Entity<CP14DayCycleComponent> dayCycle, ref DayCycleNightStartedEvent args)
|
||||
{
|
||||
}
|
||||
|
||||
private void OnMapInitDayCycle(Entity<CP14DayCycleComponent> dayCycle, ref MapInitEvent args)
|
||||
{
|
||||
@@ -88,22 +82,8 @@ public sealed partial class CP14DayCycleSystem : EntitySystem
|
||||
dayCycle.Comp.EntryStartTime = dayCycle.Comp.EntryEndTime;
|
||||
dayCycle.Comp.EntryEndTime += dayCycle.Comp.CurrentTimeEntry.Duration;
|
||||
|
||||
// TODO: Made with states,we might need an evening or something, and besides, it's too much hardcore
|
||||
if (dayCycle.Comp.IsNight && !dayCycle.Comp.CurrentTimeEntry.IsNight) // Day started
|
||||
{
|
||||
dayCycle.Comp.IsNight = false;
|
||||
|
||||
var ev = new DayCycleDayStartedEvent(dayCycle);
|
||||
RaiseLocalEvent(dayCycle, ref ev, true);
|
||||
}
|
||||
|
||||
if (!dayCycle.Comp.IsNight && dayCycle.Comp.CurrentTimeEntry.IsNight) // Night started
|
||||
{
|
||||
dayCycle.Comp.IsNight = true;
|
||||
|
||||
var ev = new DayCycleNightStartedEvent(dayCycle);
|
||||
RaiseLocalEvent(dayCycle, ref ev, true);
|
||||
}
|
||||
var ev = new DayCycleChangedEvent(dayCycle.Comp.CurrentTimeEntry);
|
||||
RaiseLocalEvent(dayCycle, ref ev, true);
|
||||
|
||||
Dirty(dayCycle);
|
||||
}
|
||||
@@ -113,28 +93,22 @@ public sealed partial class CP14DayCycleSystem : EntitySystem
|
||||
/// </summary>
|
||||
/// <param name="target">An entity being tested to see if it is in daylight</param>
|
||||
/// <param name="checkRoof">Checks if the tile covers the weather (the only "roof" factor at the moment)</param>
|
||||
/// <param name="isDaylight">daylight test result returned</param>
|
||||
public bool TryDaylightThere(EntityUid target, bool checkRoof)
|
||||
{
|
||||
if (!TryComp<TransformComponent>(target, out var xform))
|
||||
return false;
|
||||
|
||||
var xform = Transform(target);
|
||||
if (!TryComp<CP14DayCycleComponent>(xform.MapUid, out var dayCycle))
|
||||
return false;
|
||||
|
||||
if (checkRoof)
|
||||
{
|
||||
if (!TryComp<MapGridComponent>(xform.GridUid, out var mapGrid))
|
||||
return !dayCycle.IsNight;
|
||||
if (!checkRoof || !TryComp<MapGridComponent>(xform.GridUid, out var mapGrid))
|
||||
return dayCycle.CurrentPeriod == DayPeriod;
|
||||
|
||||
var tileRef = _maps.GetTileRef(xform.GridUid.Value, mapGrid, xform.Coordinates);
|
||||
var tileDef = (ContentTileDefinition) _tileDefManager[tileRef.Tile.TypeId];
|
||||
var tileRef = _maps.GetTileRef(xform.GridUid.Value, mapGrid, xform.Coordinates);
|
||||
var tileDef = (ContentTileDefinition) _tileDefManager[tileRef.Tile.TypeId];
|
||||
|
||||
if (!tileDef.Weather)
|
||||
return false;
|
||||
}
|
||||
if (!tileDef.Weather)
|
||||
return false;
|
||||
|
||||
return !dayCycle.IsNight;
|
||||
return dayCycle.CurrentPeriod == DayPeriod;
|
||||
}
|
||||
|
||||
private void SetAmbientColor(Entity<MapLightComponent> light, Color color)
|
||||
@@ -1,9 +1,11 @@
|
||||
using Content.Server.Administration;
|
||||
using Content.Shared._CP14.DayCycle;
|
||||
using Content.Shared._CP14.DayCycle.Components;
|
||||
using Content.Shared.Administration;
|
||||
using Robust.Shared.Console;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Server._CP14.DayCycle;
|
||||
namespace Content.Server._CP14.DayCycle.Commands;
|
||||
|
||||
[AdminCommand(AdminFlags.VarEdit)]
|
||||
public sealed class CP14AddTimeEntryCommand : LocalizedCommands
|
||||
@@ -13,7 +15,7 @@ public sealed class CP14AddTimeEntryCommand : LocalizedCommands
|
||||
|
||||
public override string Command => Name;
|
||||
public override string Description => "Allows you to add a new time entry to the map list";
|
||||
public override string Help => $"{Name} <mapUid> <color> <duration> <isNight>";
|
||||
public override string Help => $"{Name} <mapUid> <color> <duration> <periodId>";
|
||||
|
||||
public override void Execute(IConsoleShell shell, string argStr, string[] args)
|
||||
{
|
||||
@@ -29,7 +31,9 @@ public sealed class CP14AddTimeEntryCommand : LocalizedCommands
|
||||
return;
|
||||
}
|
||||
|
||||
var entityManager = IoCManager.Resolve<EntityManager>();
|
||||
var entityManager = IoCManager.Resolve<IEntityManager>();
|
||||
var prototypeManager = IoCManager.Resolve<IPrototypeManager>();
|
||||
|
||||
var dayCycleSystem = entityManager.System<CP14DayCycleSystem>();
|
||||
var entity = entityManager.GetEntity(netEntity);
|
||||
|
||||
@@ -51,9 +55,9 @@ public sealed class CP14AddTimeEntryCommand : LocalizedCommands
|
||||
return;
|
||||
}
|
||||
|
||||
if (!bool.TryParse(args[3], out var isNight))
|
||||
if (!prototypeManager.TryIndex<CP14DayCyclePeriodPrototype>(args[3], out var prototype))
|
||||
{
|
||||
shell.WriteError(Loc.GetString("parse-bool-fail", ("args", args[3])));
|
||||
shell.WriteError(Loc.GetString("parse-prototype-fail", ("args", args[3])));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -61,7 +65,7 @@ public sealed class CP14AddTimeEntryCommand : LocalizedCommands
|
||||
{
|
||||
Color = color,
|
||||
Duration = TimeSpan.FromSeconds(duration),
|
||||
IsNight = isNight
|
||||
Period = prototype.ID,
|
||||
};
|
||||
|
||||
dayCycleSystem.AddTimeEntry((entity, dayCycle), entry);
|
||||
@@ -72,7 +76,7 @@ public sealed class CP14AddTimeEntryCommand : LocalizedCommands
|
||||
return args.Length switch
|
||||
{
|
||||
1 => CompletionResult.FromOptions(CompletionHelper.Components<CP14DayCycleComponent>(args[0])),
|
||||
4 => CompletionResult.FromOptions(CompletionHelper.Booleans),
|
||||
4 => CompletionResult.FromOptions(CompletionHelper.PrototypeIDs<CP14DayCyclePeriodPrototype>()),
|
||||
_ => CompletionResult.Empty,
|
||||
};
|
||||
}
|
||||
@@ -2,8 +2,9 @@ using Content.Server.Administration;
|
||||
using Content.Shared._CP14.DayCycle;
|
||||
using Content.Shared.Administration;
|
||||
using Robust.Shared.Console;
|
||||
using CP14DayCycleComponent = Content.Shared._CP14.DayCycle.Components.CP14DayCycleComponent;
|
||||
|
||||
namespace Content.Server._CP14.DayCycle;
|
||||
namespace Content.Server._CP14.DayCycle.Commands;
|
||||
|
||||
[AdminCommand(AdminFlags.VarEdit)]
|
||||
public sealed class CP14InitDayCycleCommand : LocalizedCommands
|
||||
@@ -2,8 +2,9 @@ using Content.Server.Administration;
|
||||
using Content.Shared._CP14.DayCycle;
|
||||
using Content.Shared.Administration;
|
||||
using Robust.Shared.Console;
|
||||
using CP14DayCycleComponent = Content.Shared._CP14.DayCycle.Components.CP14DayCycleComponent;
|
||||
|
||||
namespace Content.Server._CP14.DayCycle;
|
||||
namespace Content.Server._CP14.DayCycle.Commands;
|
||||
|
||||
[AdminCommand(AdminFlags.VarEdit)]
|
||||
public sealed class CP14SetTimeEntryCommand : LocalizedCommands
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.Server._CP14.DayCycle;
|
||||
using Content.Server._CP14.Farming.Components;
|
||||
using Content.Server.Destructible;
|
||||
using Content.Server.DoAfter;
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
/*
|
||||
* All right reserved to Crystallpunk.
|
||||
*
|
||||
* BUT this file is sublicensed under CLA License for next projects:
|
||||
* https://github.com/technologists-team/after-rain
|
||||
* https://github.com/EscapeD-14/EscapeD-14
|
||||
*
|
||||
*/
|
||||
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
/*
|
||||
* All right reserved to Crystallpunk.
|
||||
*
|
||||
* BUT this file is sublicensed under CLA License for next projects:
|
||||
* https://github.com/technologists-team/after-rain
|
||||
* https://github.com/EscapeD-14/EscapeD-14
|
||||
*
|
||||
*/
|
||||
|
||||
using Content.Shared._CP14.Workbench;
|
||||
|
||||
namespace Content.Server._CP14.Workbench;
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
/*
|
||||
* All right reserved to Crystallpunk.
|
||||
*
|
||||
* BUT this file is sublicensed under CLA License for next projects:
|
||||
* https://github.com/technologists-team/after-rain
|
||||
* https://github.com/EscapeD-14/EscapeD-14
|
||||
*
|
||||
*/
|
||||
|
||||
using Content.Server.DoAfter;
|
||||
using Content.Server.Popups;
|
||||
using Content.Server.Stack;
|
||||
|
||||
10
Content.Shared/_CP14/DayCycle/CP14DayCyclePeriodPrototype.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.DayCycle;
|
||||
|
||||
[Prototype("CP14DayCyclePeriod")]
|
||||
public sealed class CP14DayCyclePeriodPrototype : IPrototype
|
||||
{
|
||||
[IdDataField]
|
||||
public string ID { get; } = string.Empty;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace Content.Shared._CP14.DayCycle;
|
||||
|
||||
public abstract class CP14SharedDayCycleSystem : EntitySystem;
|
||||
@@ -1,16 +1,17 @@
|
||||
using System.Numerics;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared._CP14.DayCycle;
|
||||
namespace Content.Shared._CP14.DayCycle.Components;
|
||||
|
||||
/// <summary>
|
||||
/// if added to the map, renders cloud shadows on the map
|
||||
/// If added to the map, renders cloud shadows on the map
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
||||
public sealed partial class CP14CloudShadowsComponent : Component
|
||||
{
|
||||
[DataField, AutoNetworkedField]
|
||||
public Vector2 CloudSpeed = new Vector2(0.5f, 0f);
|
||||
public Vector2 CloudSpeed = new(0.5f, 0f);
|
||||
|
||||
[DataField]
|
||||
public float MaxSpeed = 1.5f;
|
||||
@@ -22,5 +23,5 @@ public sealed partial class CP14CloudShadowsComponent : Component
|
||||
public float Scale = 2.5f;
|
||||
|
||||
[DataField]
|
||||
public string ParallaxPath = "/Textures/_CP14/Parallaxes/Shadows.png";
|
||||
public ResPath ParallaxPath = new("/Textures/_CP14/Parallaxes/Shadows.png");
|
||||
}
|
||||
@@ -1,13 +1,13 @@
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.DayCycle;
|
||||
namespace Content.Shared._CP14.DayCycle.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Stores all the necessary data for the day and night cycle system to work
|
||||
/// Stores all the necessary data for the day and night cycle system to work.
|
||||
/// </summary>
|
||||
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(CP14DayCycleSystem))]
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(CP14SharedDayCycleSystem))]
|
||||
public sealed partial class CP14DayCycleComponent : Component
|
||||
{
|
||||
[ViewVariables]
|
||||
@@ -25,12 +25,12 @@ public sealed partial class CP14DayCycleComponent : Component
|
||||
[ViewVariables]
|
||||
public Color EndColor => NextCurrentTimeEntry.Color;
|
||||
|
||||
[ViewVariables]
|
||||
public ProtoId<CP14DayCyclePeriodPrototype> CurrentPeriod => CurrentTimeEntry.Period;
|
||||
|
||||
[DataField(required: true), ViewVariables, AutoNetworkedField]
|
||||
public List<DayCycleEntry> TimeEntries = new();
|
||||
|
||||
[DataField, ViewVariables, AutoNetworkedField]
|
||||
public bool IsNight; // TODO: Rewrite this shit
|
||||
|
||||
[DataField, ViewVariables, AutoNetworkedField]
|
||||
public int CurrentTimeEntryIndex;
|
||||
|
||||
@@ -57,17 +57,11 @@ public readonly partial record struct DayCycleEntry()
|
||||
public TimeSpan Duration { get; init; } = TimeSpan.FromSeconds(60);
|
||||
|
||||
[DataField]
|
||||
public bool IsNight { get; init; } = false;
|
||||
public ProtoId<CP14DayCyclePeriodPrototype> Period { get; init; } = "Day";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Event raised on map entity, wen night is started
|
||||
/// Event raised on map entity, wen day cycle changed.
|
||||
/// </summary>
|
||||
[ByRefEvent]
|
||||
public readonly record struct DayCycleNightStartedEvent(EntityUid Map);
|
||||
|
||||
/// <summary>
|
||||
/// Event raised on map entity, wen night is started
|
||||
/// </summary>
|
||||
[ByRefEvent]
|
||||
public readonly record struct DayCycleDayStartedEvent(EntityUid Map);
|
||||
public readonly record struct DayCycleChangedEvent(DayCycleEntry Entry);
|
||||
@@ -1,4 +1,3 @@
|
||||
using Content.Shared._CP14.DayCycle;
|
||||
using Content.Shared.Random.Rules;
|
||||
|
||||
namespace Content.Shared._CP14.Random.Rules;
|
||||
@@ -11,7 +10,9 @@ public sealed partial class IsDaylight : RulesRule
|
||||
public override bool Check(EntityManager entManager, EntityUid uid)
|
||||
{
|
||||
var transform = entManager.System<SharedTransformSystem>();
|
||||
var dayCycle = entManager.System<CP14DayCycleSystem>();
|
||||
|
||||
// Not shared yet, use raw component data from map
|
||||
// var dayCycle = entManager.System<CP14DayCycleSystem>();
|
||||
|
||||
//черт, нужны комиты из ветки фермерства
|
||||
return !Inverted;
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
/*
|
||||
* All right reserved to Crystallpunk.
|
||||
*
|
||||
* BUT this file is sublicensed under CLA License for next projects:
|
||||
* https://github.com/technologists-team/after-rain
|
||||
* https://github.com/EscapeD-14/EscapeD-14
|
||||
*
|
||||
*/
|
||||
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
/*
|
||||
* All right reserved to Crystallpunk.
|
||||
*
|
||||
* BUT this file is sublicensed under CLA License for next projects:
|
||||
* https://github.com/technologists-team/after-rain
|
||||
* https://github.com/EscapeD-14/EscapeD-14
|
||||
*
|
||||
*/
|
||||
|
||||
using Content.Shared.Stacks;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
/*
|
||||
* All right reserved to Crystallpunk.
|
||||
*
|
||||
* BUT this file is sublicensed under CLA License for next projects:
|
||||
* https://github.com/technologists-team/after-rain
|
||||
* https://github.com/EscapeD-14/EscapeD-14
|
||||
*
|
||||
*/
|
||||
|
||||
using Content.Shared._CP14.Workbench.Prototypes;
|
||||
using Content.Shared.DoAfter;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
4
Resources/Locale/en-US/_CP14/stack/coins.ftl
Normal file
@@ -0,0 +1,4 @@
|
||||
cp14-stack-copper-coin = copper coins
|
||||
cp14-stack-silver-coin = silver coins
|
||||
cp14-stack-gold-coin = gold coins
|
||||
cp14-stack-platinum-coin = platinum coins
|
||||
8
Resources/Locale/en-US/_CP14/stack/materials.ftl
Normal file
@@ -0,0 +1,8 @@
|
||||
cp14-stack-dirt-block = dirt blocks
|
||||
cp14-stack-stone-block = stone blocks
|
||||
cp14-stack-wood-planks = wooden planks
|
||||
cp14-stack-nails = nails
|
||||
|
||||
cp14-stack-copper-bars = copper bars
|
||||
cp14-stack-iron-bars = iron bars
|
||||
cp14-stack-gold-bars = gold bars
|
||||
@@ -1,5 +1,6 @@
|
||||
cp14-verb-categories-craft = Select recipe:
|
||||
cp14-workbench-ui-title = Item creation
|
||||
|
||||
cp14-workbench-craft = Craft
|
||||
cp14-workbench-recipe-list = Recipe:
|
||||
|
||||
cp14-workbench-no-resource = There aren't enough ingredients!
|
||||
@@ -1114,3 +1114,48 @@ ent-CP14CookedFoodMeat = Стейк из баранины
|
||||
|
||||
ent-CP14CuttingBoard = Разделочная доска
|
||||
.desc = Поможет вам приготовить еду.
|
||||
|
||||
ent-CP14ActionSpellCureWounds = Лечение ран
|
||||
.desc = Вы касаетесь существа, исцеляя его тело от физических повреждений.
|
||||
|
||||
ent-CP14ActionSpellEarthWall = Земляная стена
|
||||
.desc = Поднимает из недр прочную стену земли.
|
||||
|
||||
ent-CP14ActionSpellFireball = Огненный шар
|
||||
.desc = Эффективный метод уничтожения - взрывной огненный шар.
|
||||
|
||||
ent-CP14ActionSpellFlameCreation = Создание пламени
|
||||
.desc = В вашей руке образуется искусственное пламя, освещающее окружающее пространство. Вы можете бросить его, чтобы использовать в качестве одноразового оружия.
|
||||
|
||||
ent-CP14FlameCreationArtificialFlame = искусственное пламя
|
||||
.desc = Магически созданное искусственное пламя, горящее прямо в воздухе. Неплохой источник света или оружие, если бросить его кому-нибудь в лицо.
|
||||
|
||||
ent-CP14ActionSpellFlashLight = Вспышка света
|
||||
.desc = Создает вспышку яркого, ослепительного света.
|
||||
|
||||
ent-CP14ActionSpellIceDagger = Ледяной кинжал
|
||||
.desc = Материализация временного острого ледяного метательного кинжала.
|
||||
|
||||
ent-CP14DaggerIce = ледяной кинжал
|
||||
.desc = Кусок острого магического льда. Через некоторое время действие заклинания ослабнет, и он исчезнет.
|
||||
|
||||
ent-CP14ActionSpellIceFloor = Ледяной пол
|
||||
.desc = Покрывает определенный участок земли скользким льдом.
|
||||
|
||||
ent-CP14IceFloor = ледяная корка
|
||||
.desc = Холодно и скользко.
|
||||
|
||||
ent-CP14ActionSpellIceShards = Ледяные осколки
|
||||
.desc = Быстрые ледяные иглы для быстрой стрельбы по мишеням.
|
||||
|
||||
ent-CP14ActionSpellShadowGrab = Теневой захват
|
||||
.desc = Вы вызываете призрачную руку, которая притягивает к вам предмет или сущность.
|
||||
|
||||
ent-CP14ActionSpellShadowStep = Теневой шаг
|
||||
.desc = Шаг сквозь прореху реальности, позволяющий быстро преодолеть небольшое расстояние.
|
||||
|
||||
ent-CP14ActionSpellSphereOfLight = Сфера света
|
||||
.desc = Материализация яркого и безопасного источника света.
|
||||
|
||||
ent-CP14SphereOfLight = Сфера света
|
||||
.desc = Сгусток яркого света в форме сферы.
|
||||
|
||||
4
Resources/Locale/ru-RU/_CP14/stack/coins.ftl
Normal file
@@ -0,0 +1,4 @@
|
||||
cp14-stack-copper-coin = медные монеты
|
||||
cp14-stack-silver-coin = серебрянные монеты
|
||||
cp14-stack-gold-coin = золотые монеты
|
||||
cp14-stack-platinum-coin = платиновые монеты
|
||||
8
Resources/Locale/ru-RU/_CP14/stack/materials.ftl
Normal file
@@ -0,0 +1,8 @@
|
||||
cp14-stack-dirt-block = блоки земли
|
||||
cp14-stack-stone-block = каменные блоки
|
||||
cp14-stack-wood-planks = деревянные доски
|
||||
cp14-stack-nails = гвозди
|
||||
|
||||
cp14-stack-copper-bars = медные слитки
|
||||
cp14-stack-iron-bars = железные слитки
|
||||
cp14-stack-gold-bars = золотые слитки
|
||||
@@ -1,5 +1,6 @@
|
||||
cp14-verb-categories-craft = Выберите крафт:
|
||||
cp14-workbench-ui-title = Создание предметов
|
||||
|
||||
cp14-workbench-craft = Создать
|
||||
cp14-workbench-recipe-list = Рецепт:
|
||||
|
||||
cp14-workbench-no-resource = Не хватает ингредиентов!
|
||||
@@ -47,18 +47,18 @@ entities:
|
||||
color: '#E0BA87FF'
|
||||
- duration: 80
|
||||
color: '#BFEEFFFF'
|
||||
- isNight: True
|
||||
duration: 80
|
||||
- duration: 80
|
||||
color: '#385163FF'
|
||||
- isNight: True
|
||||
duration: 80
|
||||
period: Night
|
||||
- duration: 80
|
||||
color: '#060D12FF'
|
||||
- isNight: True
|
||||
duration: 80
|
||||
period: Night
|
||||
- duration: 80
|
||||
color: '#000000FF'
|
||||
- isNight: True
|
||||
duration: 80
|
||||
period: Night
|
||||
- duration: 80
|
||||
color: '#000000FF'
|
||||
period: Night
|
||||
- duration: 80
|
||||
color: '#120906FF'
|
||||
- uid: 2
|
||||
|
||||
@@ -42,16 +42,16 @@ entities:
|
||||
color: '#E0BA87FF'
|
||||
- duration: 80
|
||||
color: '#BFEEFFFF'
|
||||
- isNight: True
|
||||
- period: Night
|
||||
duration: 80
|
||||
color: '#385163FF'
|
||||
- isNight: True
|
||||
- period: Night
|
||||
duration: 80
|
||||
color: '#060D12FF'
|
||||
- isNight: True
|
||||
- period: Night
|
||||
duration: 80
|
||||
color: '#000000FF'
|
||||
- isNight: True
|
||||
- period: Night
|
||||
duration: 80
|
||||
color: '#000000FF'
|
||||
- duration: 80
|
||||
|
||||
@@ -38,16 +38,16 @@ entities:
|
||||
color: '#E0BA87FF'
|
||||
- duration: 80
|
||||
color: '#BFEEFFFF'
|
||||
- isNight: True
|
||||
- period: Night
|
||||
duration: 80
|
||||
color: '#385163FF'
|
||||
- isNight: True
|
||||
- period: Night
|
||||
duration: 80
|
||||
color: '#060D12FF'
|
||||
- isNight: True
|
||||
- period: Night
|
||||
duration: 80
|
||||
color: '#000000FF'
|
||||
- isNight: True
|
||||
- period: Night
|
||||
duration: 80
|
||||
color: '#000000FF'
|
||||
- duration: 80
|
||||
|
||||
@@ -35,16 +35,16 @@ entities:
|
||||
color: '#E0BA87FF'
|
||||
- duration: 80
|
||||
color: '#BFEEFFFF'
|
||||
- isNight: True
|
||||
- period: Night
|
||||
duration: 80
|
||||
color: '#385163FF'
|
||||
- isNight: True
|
||||
- period: Night
|
||||
duration: 80
|
||||
color: '#060D12FF'
|
||||
- isNight: True
|
||||
- period: Night
|
||||
duration: 80
|
||||
color: '#000000FF'
|
||||
- isNight: True
|
||||
- period: Night
|
||||
duration: 80
|
||||
color: '#000000FF'
|
||||
- duration: 80
|
||||
|
||||
11
Resources/Prototypes/_CP14/DayCycle/periods.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
- type: CP14DayCyclePeriod
|
||||
id: Sunrise # HOLY SHIT!
|
||||
|
||||
- type: CP14DayCyclePeriod
|
||||
id: Day
|
||||
|
||||
- type: CP14DayCyclePeriod
|
||||
id: Night
|
||||
|
||||
- type: CP14DayCyclePeriod
|
||||
id: Evening
|
||||
@@ -0,0 +1,86 @@
|
||||
- type: entity
|
||||
id: CP14ActionSpellFlashLight
|
||||
name: Flash Light
|
||||
description: Creates a flash of bright, blinding light.
|
||||
components:
|
||||
- type: CP14MagicEffect
|
||||
manaCost: 10
|
||||
telegraphyEffects:
|
||||
- !type:CP14SpellSpawnEntityOnTarget
|
||||
spawns:
|
||||
- CP14ImpactEffectFlashLight
|
||||
effects:
|
||||
- !type:CP14SpellSpawnEntityOnTarget
|
||||
spawns:
|
||||
- CP14SpawnEffectFlashLight
|
||||
- type: CP14MagicEffectVerbalAspect
|
||||
startSpeech: "Lux clara..."
|
||||
endSpeech: "excaecant inimicos meos"
|
||||
- type: CP14MagicEffectCastingVisual
|
||||
proto: CP14RuneFlashLight
|
||||
- type: WorldTargetAction
|
||||
useDelay: 5
|
||||
range: 10
|
||||
itemIconStyle: BigAction
|
||||
sound: !type:SoundPathSpecifier
|
||||
path: /Audio/Magic/rumble.ogg
|
||||
icon:
|
||||
sprite: _CP14/Effects/Magic/spells_icons.rsi
|
||||
state: flash_light
|
||||
event: !type:CP14DelayedWorldTargetActionEvent
|
||||
delay: 0.5
|
||||
|
||||
- type: entity
|
||||
id: CP14RuneFlashLight
|
||||
parent: CP14BaseMagicRune
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: PointLight
|
||||
color: "#efedff"
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: sun
|
||||
color: "#efedff"
|
||||
shader: unshaded
|
||||
|
||||
- type: entity
|
||||
id: CP14ImpactEffectFlashLight
|
||||
parent: CP14BaseMagicImpact
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: particles_up
|
||||
color: "#efedff"
|
||||
shader: unshaded
|
||||
|
||||
- type: entity
|
||||
id: CP14SpawnEffectFlashLight
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: /Textures/Objects/Fun/goldbikehorn.rsi
|
||||
visible: false
|
||||
state: icon
|
||||
- type: TriggerOnSpawn
|
||||
- type: TimedDespawn
|
||||
lifetime: 5
|
||||
- type: FlashOnTrigger
|
||||
range: 4
|
||||
duration: 4
|
||||
- type: SpawnOnTrigger
|
||||
proto: CP14SpellFlashEffect
|
||||
|
||||
- type: entity
|
||||
id: CP14SpellFlashEffect
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: PointLight
|
||||
enabled: true
|
||||
radius: 5
|
||||
energy: 14
|
||||
netsync: false
|
||||
- type: LightFade
|
||||
duration: 0.5
|
||||
- type: TimedDespawn
|
||||
lifetime: 0.5
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
- type: entity
|
||||
id: CP14ActionSpellSphereOfLight
|
||||
name: Sphere of Light
|
||||
description: Materialization of a bright and safe light source.
|
||||
components:
|
||||
- type: CP14MagicEffect
|
||||
manaCost: 10
|
||||
effects:
|
||||
- !type:CP14SpellSpawnEntityOnTarget
|
||||
spawns:
|
||||
- CP14ImpactEffectSphereOfLight
|
||||
- !type:CP14SpellSpawnInHandEntity
|
||||
spawns:
|
||||
- CP14SphereOfLight
|
||||
- type: CP14MagicEffectVerbalAspect
|
||||
startSpeech: "Appare in manu tua..."
|
||||
endSpeech: "sphaera lucis"
|
||||
- type: CP14MagicEffectSomaticAspect
|
||||
- type: CP14MagicEffectCastingVisual
|
||||
proto: CP14RuneSphereOfLight
|
||||
- type: InstantAction
|
||||
useDelay: 15
|
||||
itemIconStyle: BigAction
|
||||
sound: !type:SoundPathSpecifier
|
||||
path: /Audio/Magic/rumble.ogg
|
||||
icon:
|
||||
sprite: _CP14/Effects/Magic/spells_icons.rsi
|
||||
state: sphere_of_light
|
||||
event: !type:CP14DelayedInstantActionEvent
|
||||
delay: 0.5
|
||||
breakOnMove: false
|
||||
|
||||
- type: entity
|
||||
id: CP14RuneSphereOfLight
|
||||
parent: CP14BaseMagicRune
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: PointLight
|
||||
color: "#efedff"
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: sun
|
||||
color: "#efedff"
|
||||
shader: unshaded
|
||||
|
||||
- type: entity
|
||||
id: CP14ImpactEffectSphereOfLight
|
||||
parent: CP14BaseMagicImpact
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: particles_up
|
||||
color: "#efedff"
|
||||
shader: unshaded
|
||||
|
||||
- type: entity
|
||||
id: CP14SphereOfLight
|
||||
name: Sphere of light
|
||||
parent: BaseItem
|
||||
description: A lump of bright light in the shape of a sphere.
|
||||
components:
|
||||
- type: TimedDespawn
|
||||
lifetime: 300 # 5 min
|
||||
- type: Sprite
|
||||
sprite: _CP14/Effects/Magic/sphere_of_light.rsi
|
||||
noRot: true
|
||||
layers:
|
||||
- state: icon
|
||||
shader: unshaded
|
||||
- type: Item
|
||||
size: Ginormous
|
||||
- type: Tag
|
||||
tags:
|
||||
- ForceableFollow
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.2,-0.2,0.2,0.2"
|
||||
density: 30
|
||||
hard: true
|
||||
mask:
|
||||
- ItemMask
|
||||
layer:
|
||||
- Opaque
|
||||
- type: LandAtCursor
|
||||
- type: MovementIgnoreGravity
|
||||
- type: PointLight
|
||||
radius: 5.0
|
||||
energy: 6
|
||||
color: "#efedff"
|
||||
- type: Damageable
|
||||
- type: EmitSoundOnLand
|
||||
sound:
|
||||
path: /Audio/Effects/drop.ogg
|
||||
params:
|
||||
volume: -100 #Yes, it's stupid, but it's easier
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 10
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg
|
||||
params:
|
||||
variation: 0.250
|
||||
volume: -12
|
||||
@@ -172,3 +172,40 @@
|
||||
- type: CP14SpellStorage
|
||||
spells:
|
||||
- CP14ActionSpellIceFloor
|
||||
|
||||
- type: entity
|
||||
id: CP14ClothingRingSphereOfLight
|
||||
parent: CP14ClothingRingBase
|
||||
name: conductive ring
|
||||
description: A standard mana-conductive ring that allows the user to create a sphere of light.
|
||||
suffix: Sphere of Light
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: brass_ring
|
||||
- state: citrine_stone_small
|
||||
- type: CP14SpellStorageRequireAttune
|
||||
- type: CP14MagicAttuningItem
|
||||
- type: CP14SpellStorageAccessWearing
|
||||
- type: CP14SpellStorage
|
||||
spells:
|
||||
- CP14ActionSpellSphereOfLight
|
||||
|
||||
- type: entity
|
||||
id: CP14ClothingRingFlashLight
|
||||
parent: CP14ClothingRingBase
|
||||
name: conductive ring
|
||||
description: A standard mana-conductive ring that allows the user to create a bright flash of light that blinds enemies.
|
||||
suffix: Flash Light
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: brass_ring
|
||||
- state: citrine_stone_small
|
||||
- type: CP14SpellStorageRequireAttune
|
||||
- type: CP14MagicAttuningItem
|
||||
- type: CP14SpellStorageAccessWearing
|
||||
- type: CP14SpellStorage
|
||||
spells:
|
||||
- CP14ActionSpellFlashLight
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
- type: entity
|
||||
id: CP14MeltingMoldBlank
|
||||
parent: CP14MeltingMoldBase
|
||||
name: black melting mold
|
||||
name: blank melting mold
|
||||
description: An empty mold for casting metal. You can cut any shape you need in it on the pattern cutting table.
|
||||
components:
|
||||
- type: Sprite
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
recipes:
|
||||
- CP14Bucket
|
||||
- CP14BaseBarrel
|
||||
- CP14WoodenBeerMug
|
||||
|
||||
- type: entity
|
||||
id: CP14WorkbenchMeltingMolds
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
- type: entity
|
||||
id: CP14WindowDirectional
|
||||
parent: BaseStructure
|
||||
name: directional window
|
||||
description: Don't smudge up the glass down there.
|
||||
placement:
|
||||
mode: SnapgridCenter
|
||||
snap:
|
||||
- Window
|
||||
components:
|
||||
- type: WallMount
|
||||
arc: 360 # interact despite grilles
|
||||
- type: MeleeSound
|
||||
soundGroups:
|
||||
Brute:
|
||||
collection: GlassSmack
|
||||
- type: Sprite
|
||||
drawdepth: Mobs
|
||||
sprite: _CP14/Structures/Windows/directional.rsi
|
||||
layers:
|
||||
- state: wooden_frame
|
||||
- state: default_glass
|
||||
- type: Icon
|
||||
sprite: _CP14/Structures/Windows/directional.rsi
|
||||
state: wooden_frame
|
||||
- type: InteractionPopup
|
||||
interactSuccessString: comp-window-knock
|
||||
messagePerceivedByOthers: comp-window-knock
|
||||
interactSuccessSound:
|
||||
path: /Audio/Effects/glass_knock.ogg
|
||||
- type: Physics
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.49,-0.32,0.49,0"
|
||||
density: 1500
|
||||
mask:
|
||||
- FullTileMask
|
||||
layer:
|
||||
- GlassLayer
|
||||
- type: Repairable
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Glass
|
||||
- type: ExaminableDamage
|
||||
messages: WindowMessages
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities.
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: WindowShatter
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 25
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: WindowShatter
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
ShardGlass:
|
||||
min: 1
|
||||
max: 1
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- type: Airtight
|
||||
noAirWhenFullyAirBlocked: false
|
||||
airBlockedDirection:
|
||||
- South
|
||||
- type: Appearance
|
||||
- type: DamageVisuals
|
||||
thresholds: [4, 8, 12]
|
||||
damageDivisor: 3.333
|
||||
trackAllDamage: true
|
||||
damageOverlay:
|
||||
sprite: Structures/Windows/cracks_directional.rsi
|
||||
- type: StaticPrice
|
||||
price: 10
|
||||
@@ -13,4 +13,12 @@
|
||||
stacks:
|
||||
CP14WoodenPlanks: 5
|
||||
CP14Nail: 2
|
||||
result: CP14BaseBarrel
|
||||
result: CP14BaseBarrel
|
||||
|
||||
- type: CP14Recipe
|
||||
id: CP14WoodenBeerMug
|
||||
craftTime: 3
|
||||
stacks:
|
||||
CP14WoodenPlanks: 2
|
||||
CP14Nail: 1
|
||||
result: CP14WoodenBeerMug
|
||||
@@ -1,6 +1,6 @@
|
||||
- type: stack
|
||||
id: CP14CopperCoin
|
||||
name: copper crown
|
||||
name: cp14-stack-copper-coin
|
||||
spawn: CP14CopperCoin1
|
||||
icon:
|
||||
sprite: /Textures/_CP14/Objects/Economy/cp_coin.rsi
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
- type: stack
|
||||
id: CP14SilverCoin
|
||||
name: silver sovereign
|
||||
name: cp14-stack-silver-coin
|
||||
spawn: CP14SilverCoin1
|
||||
icon:
|
||||
sprite: /Textures/_CP14/Objects/Economy/sp_coin.rsi
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
- type: stack
|
||||
id: CP14GoldCoin
|
||||
name: gold galifar
|
||||
name: cp14-stack-gold-coin
|
||||
spawn: CP14GoldCoin1
|
||||
icon:
|
||||
sprite: /Textures/_CP14/Objects/Economy/gp_coin.rsi
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
- type: stack
|
||||
id: CP14PlatinumCoin
|
||||
name: platinum dragon
|
||||
name: cp14-stack-platinum-coin
|
||||
spawn: CP14PlatinumCoin1
|
||||
icon:
|
||||
sprite: /Textures/_CP14/Objects/Economy/pp_coin.rsi
|
||||
|
||||
@@ -1,48 +1,48 @@
|
||||
- type: stack
|
||||
id: CP14Dirt
|
||||
name: dirt block
|
||||
name: cp14-stack-dirt-block
|
||||
spawn: CP14DirtBlock1
|
||||
icon: { sprite: _CP14/Objects/Materials/dirt_block.rsi, state: dirt_2 }
|
||||
maxCount: 10
|
||||
|
||||
- type: stack
|
||||
id: CP14Stone
|
||||
name: stone block
|
||||
name: cp14-stack-stone-block
|
||||
spawn: CP14StoneBlock1
|
||||
icon: { sprite: _CP14/Objects/Materials/stone_block.rsi, state: stone_2 }
|
||||
maxCount: 10
|
||||
|
||||
- type: stack
|
||||
id: CP14WoodenPlanks
|
||||
name: wooden planks
|
||||
name: cp14-stack-wood-planks
|
||||
spawn: CP14WoodenPlanks1
|
||||
icon: { sprite: _CP14/Objects/Materials/wood.rsi, state: planks_2 }
|
||||
maxCount: 10
|
||||
|
||||
- type: stack
|
||||
id: CP14Nail
|
||||
name: nails
|
||||
name: cp14-stack-nails
|
||||
spawn: CP14Nail1
|
||||
icon: { sprite: _CP14/Objects/Materials/nails.rsi, state: nail_2 }
|
||||
maxCount: 10
|
||||
|
||||
- type: stack
|
||||
id: CP14CopperBar
|
||||
name: copper bars
|
||||
name: cp14-stack-copper-bars
|
||||
spawn: CP14CopperBar1
|
||||
icon: { sprite: _CP14/Objects/Materials/copper_bar.rsi, state: bar_2 }
|
||||
maxCount: 10
|
||||
|
||||
- type: stack
|
||||
id: CP14IronBar
|
||||
name: iron bars
|
||||
name: cp14-stack-iron-bars
|
||||
spawn: CP14IronBar1
|
||||
icon: { sprite: _CP14/Objects/Materials/iron_bar.rsi, state: bar_2 }
|
||||
maxCount: 10
|
||||
|
||||
- type: stack
|
||||
id: CP14GoldBar
|
||||
name: gold bars
|
||||
name: cp14-stack-gold-bars
|
||||
spawn: CP14GoldBar1
|
||||
icon: { sprite: _CP14/Objects/Materials/gold_bar.rsi, state: bar_2 }
|
||||
maxCount: 10
|
||||
@@ -6,3 +6,7 @@
|
||||
- type: lobbyBackground
|
||||
id: TypicalAlchemistDay
|
||||
background: /Textures/_CP14/LobbyScreens/typicalAlchemistDay.webp
|
||||
|
||||
- type: lobbyBackground
|
||||
id: Tiefling
|
||||
background: /Textures/_CP14/LobbyScreens/tiefling.webp
|
||||
|
||||
|
After Width: | Height: | Size: 146 B |
@@ -24,6 +24,9 @@
|
||||
},
|
||||
{
|
||||
"name": "berill_stone_small"
|
||||
},
|
||||
{
|
||||
"name": "citrine_stone_small"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 300 B |
@@ -33,6 +33,12 @@
|
||||
},
|
||||
{
|
||||
"name": "earth_wall"
|
||||
},
|
||||
{
|
||||
"name": "sphere_of_light"
|
||||
},
|
||||
{
|
||||
"name": "flash_light"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 430 B |
|
After Width: | Height: | Size: 371 B |
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"version": 1,
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by Nimfar11 for CrystallPunk",
|
||||
"states": [
|
||||
{
|
||||
"name": "icon",
|
||||
"delays": [
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
- files: ["beginning.webp", "typicalAlchemistDay.webp"]
|
||||
- files: ["beginning.webp", "typicalAlchemistDay.webp", "tiefling.webp"]
|
||||
license: "All rights reserved for the CrystallPunk14 project only"
|
||||
copyright: "alisw_a on discord"
|
||||
source: "https://github.com/crystallpunk-14/crystall-punk-14"
|
||||
|
||||
BIN
Resources/Textures/_CP14/LobbyScreens/tiefling.webp
Normal file
|
After Width: | Height: | Size: 441 KiB |
2
Resources/Textures/_CP14/LobbyScreens/tiefling.webp.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
sample:
|
||||
filter: true
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by TheShuEd (Github) for CrystallPunk14",
|
||||
"copyright": "Created by TheShuEd (Github) for CrystallPunk14. This file sublicensed under CLA for https://github.com/technologists-team/after-rain",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by TheShuEd (Github) for CrystallPunk14",
|
||||
"copyright": "Created by TheShuEd (Github) for CrystallPunk14. This file sublicensed under CLA for https://github.com/technologists-team/after-rain",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
||||
|
Before Width: | Height: | Size: 771 B After Width: | Height: | Size: 891 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 921 B After Width: | Height: | Size: 923 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 920 B After Width: | Height: | Size: 927 B |
|
Before Width: | Height: | Size: 924 B After Width: | Height: | Size: 926 B |
|
Before Width: | Height: | Size: 592 B After Width: | Height: | Size: 604 B |
|
Before Width: | Height: | Size: 921 B After Width: | Height: | Size: 894 B |
|
After Width: | Height: | Size: 888 B |
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by Jaraten (discord/Github) for CrystallPunk 14",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 80
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "wooden_frame",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "default_glass",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 478 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 283 B |
|
Before Width: | Height: | Size: 736 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 987 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1019 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 996 B After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 821 B After Width: | Height: | Size: 954 B |
|
Before Width: | Height: | Size: 1012 B After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 820 B After Width: | Height: | Size: 283 B |