From 0decd375e474522dbb6d2c629921fc731f6b0c33 Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Wed, 9 Apr 2025 15:54:38 +0300 Subject: [PATCH] Birch tree (#1154) * birch * wooden birch log and planks * birch tile crafting * add birch to worldgen * Update grasslands.yml * wooden planks (any) * universal wood crafting * birch wall --- .../ConstructionSystem.Initial.cs | 31 +++ .../_CP14/Workbench/CP14WorkbenchSystem.cs | 4 +- .../ConstructionGraphStepTypeSerializer.cs | 10 +- .../CP14StackGroupConstructionGraphStep.cs | 65 +++++ .../Prototypes/CP14StackGroupPrototype.cs | 25 ++ .../Requirements/KnowledgeRequired.cs | 2 +- .../Requirements/MaterialResource.cs | 2 +- .../Workbench/Requirements/ProtoIdResource.cs | 4 +- .../Requirements/StackGroupResource.cs | 97 +++++++ .../Workbench/Requirements/StackResource.cs | 2 +- .../Workbench/Requirements/TagResource.cs | 2 +- .../Workbench/WorkbenchCraftRequirement.cs | 1 + .../Locale/en-US/_CP14/stack/materials.ftl | 5 +- .../Locale/ru-RU/_CP14/stack/materials.ftl | 7 +- .../Entities/Objects/Materials/simple.yml | 190 -------------- .../_CP14/Entities/Objects/Materials/wood.yml | 241 ++++++++++++++++++ .../_CP14/Entities/Objects/Misc/tiles.yml | 80 +++++- .../_CP14/Entities/Structures/Flora/trees.yml | 170 ++++++++++-- .../_CP14/Entities/Structures/Walls/walls.yml | 12 + .../Prototypes/_CP14/Materials/simple.yml | 2 +- .../_CP14/Procedural/grasslands.yml | 8 + .../Construction/Graphs/Furniture/beds.yml | 2 +- .../Graphs/Furniture/cabinets.yml | 2 +- .../Construction/Graphs/Furniture/closets.yml | 2 +- .../Graphs/Furniture/curtains.yml | 2 +- .../Graphs/Furniture/lighting.yml | 2 +- .../Graphs/Furniture/mannequin.yml | 2 +- .../Graphs/Furniture/orders_border.yml | 2 +- .../Construction/Graphs/Furniture/seats.yml | 4 +- .../Construction/Graphs/Furniture/tables.yml | 12 +- .../Construction/Graphs/Misc/pallets.yml | 2 +- .../Construction/Graphs/Misc/target.yml | 9 +- .../Construction/Graphs/Storage/barrels.yml | 6 +- .../Construction/Graphs/Storage/chests.yml | 4 +- .../Construction/Graphs/Storage/coffins.yml | 2 +- .../Construction/Graphs/Storage/crates.yml | 4 +- .../Graphs/Structures/Doors/wooden_doors.yml | 23 +- .../Graphs/Structures/Fence/wooden_fence.yml | 12 +- .../Graphs/Structures/Roofs/roofs.yml | 2 +- .../Graphs/Structures/Wallmount/lighting.yml | 2 +- .../Graphs/Structures/Wallmount/shelfs.yml | 4 +- .../Graphs/Structures/Walls/WallWood.yml | 22 +- .../_CP14/Recipes/Construction/walls.yml | 18 ++ .../Recipes/Workbench/Workbench/misc.yml | 28 +- .../Recipes/Workbench/Workbench/tile.yml | 44 ++++ .../_CP14/Stacks/floor_tile_stacks.yml | 28 ++ .../Prototypes/_CP14/Stacks/materials.yml | 21 +- .../Prototypes/_CP14/Stacks/stack_groups.yml | 7 + .../Prototypes/_CP14/Tiles/woodplanks.yml | 8 +- .../Objects/Materials/wood_birch.rsi/log.png | Bin 0 -> 803 bytes .../Materials/wood_birch.rsi/log_2.png | Bin 0 -> 769 bytes .../Materials/wood_birch.rsi/log_3.png | Bin 0 -> 796 bytes .../Materials/wood_birch.rsi/meta.json | 29 +++ .../Materials/wood_birch.rsi/planks.png | Bin 0 -> 366 bytes .../Materials/wood_birch.rsi/planks_2.png | Bin 0 -> 527 bytes .../Materials/wood_birch.rsi/planks_3.png | Bin 0 -> 623 bytes .../log.png | Bin .../log_2.png | Bin .../log_3.png | Bin .../meta.json | 0 .../planks.png | Bin .../planks_2.png | Bin .../planks_3.png | Bin .../Tile/tile.rsi/birch_woodplanks.png | Bin 0 -> 509 bytes .../Tile/tile.rsi/birch_woodplanks_big.png | Bin 0 -> 633 bytes .../tile.rsi/birch_woodplanks_cruciform.png | Bin 0 -> 637 bytes .../tile.rsi/birch_woodplanks_stairways.png | Bin 0 -> 548 bytes .../_CP14/Objects/Tile/tile.rsi/meta.json | 12 + .../tile.rsi/oak_woodplanks_stairways.png | Bin 585 -> 588 bytes .../Flora/tree_birch_big.rsi/meta.json | 17 ++ .../Flora/tree_birch_big.rsi/tree01.png | Bin 0 -> 9449 bytes .../Flora/tree_birch_big.rsi/tree02.png | Bin 0 -> 9410 bytes .../Flora/tree_birch_medium.rsi/meta.json | 17 ++ .../Flora/tree_birch_medium.rsi/tree01.png | Bin 0 -> 5359 bytes .../Flora/tree_birch_medium.rsi/tree02.png | Bin 0 -> 5414 bytes .../Flora/tree_birch_small.rsi/meta.json | 17 ++ .../Flora/tree_birch_small.rsi/tree01.png | Bin 0 -> 4102 bytes .../Flora/tree_birch_small.rsi/tree02.png | Bin 0 -> 3955 bytes .../meta.json | 0 .../tree01.png | Bin .../tree02.png | Bin .../tree03.png | Bin .../tree04.png | Bin .../tree05.png | Bin .../tree06.png | Bin .../Walls/wooden_wall_birch.rsi/full.png | Bin 0 -> 910 bytes .../Walls/wooden_wall_birch.rsi/meta.json | 46 ++++ .../Walls/wooden_wall_birch.rsi/wood0.png | Bin 0 -> 1378 bytes .../Walls/wooden_wall_birch.rsi/wood1.png | Bin 0 -> 947 bytes .../Walls/wooden_wall_birch.rsi/wood2.png | Bin 0 -> 1378 bytes .../Walls/wooden_wall_birch.rsi/wood3.png | Bin 0 -> 945 bytes .../Walls/wooden_wall_birch.rsi/wood4.png | Bin 0 -> 949 bytes .../Walls/wooden_wall_birch.rsi/wood5.png | Bin 0 -> 608 bytes .../Walls/wooden_wall_birch.rsi/wood6.png | Bin 0 -> 923 bytes .../Walls/wooden_wall_birch.rsi/wood7.png | Bin 0 -> 267 bytes 95 files changed, 1062 insertions(+), 312 deletions(-) create mode 100644 Content.Shared/_CP14/Workbench/Prototypes/CP14StackGroupConstructionGraphStep.cs create mode 100644 Content.Shared/_CP14/Workbench/Prototypes/CP14StackGroupPrototype.cs create mode 100644 Content.Shared/_CP14/Workbench/Requirements/StackGroupResource.cs create mode 100644 Resources/Prototypes/_CP14/Entities/Objects/Materials/wood.yml create mode 100644 Resources/Prototypes/_CP14/Stacks/stack_groups.yml create mode 100644 Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/log.png create mode 100644 Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/log_2.png create mode 100644 Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/log_3.png create mode 100644 Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/planks.png create mode 100644 Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/planks_2.png create mode 100644 Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/planks_3.png rename Resources/Textures/_CP14/Objects/Materials/{lucens_wood.rsi => wood_lucens.rsi}/log.png (100%) rename Resources/Textures/_CP14/Objects/Materials/{lucens_wood.rsi => wood_lucens.rsi}/log_2.png (100%) rename Resources/Textures/_CP14/Objects/Materials/{lucens_wood.rsi => wood_lucens.rsi}/log_3.png (100%) rename Resources/Textures/_CP14/Objects/Materials/{lucens_wood.rsi => wood_lucens.rsi}/meta.json (100%) rename Resources/Textures/_CP14/Objects/Materials/{lucens_wood.rsi => wood_lucens.rsi}/planks.png (100%) rename Resources/Textures/_CP14/Objects/Materials/{lucens_wood.rsi => wood_lucens.rsi}/planks_2.png (100%) rename Resources/Textures/_CP14/Objects/Materials/{lucens_wood.rsi => wood_lucens.rsi}/planks_3.png (100%) create mode 100644 Resources/Textures/_CP14/Objects/Tile/tile.rsi/birch_woodplanks.png create mode 100644 Resources/Textures/_CP14/Objects/Tile/tile.rsi/birch_woodplanks_big.png create mode 100644 Resources/Textures/_CP14/Objects/Tile/tile.rsi/birch_woodplanks_cruciform.png create mode 100644 Resources/Textures/_CP14/Objects/Tile/tile.rsi/birch_woodplanks_stairways.png create mode 100644 Resources/Textures/_CP14/Structures/Flora/tree_birch_big.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Structures/Flora/tree_birch_big.rsi/tree01.png create mode 100644 Resources/Textures/_CP14/Structures/Flora/tree_birch_big.rsi/tree02.png create mode 100644 Resources/Textures/_CP14/Structures/Flora/tree_birch_medium.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Structures/Flora/tree_birch_medium.rsi/tree01.png create mode 100644 Resources/Textures/_CP14/Structures/Flora/tree_birch_medium.rsi/tree02.png create mode 100644 Resources/Textures/_CP14/Structures/Flora/tree_birch_small.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Structures/Flora/tree_birch_small.rsi/tree01.png create mode 100644 Resources/Textures/_CP14/Structures/Flora/tree_birch_small.rsi/tree02.png rename Resources/Textures/_CP14/Structures/Flora/{snow_trees.rsi => tree_snow.rsi}/meta.json (100%) rename Resources/Textures/_CP14/Structures/Flora/{snow_trees.rsi => tree_snow.rsi}/tree01.png (100%) rename Resources/Textures/_CP14/Structures/Flora/{snow_trees.rsi => tree_snow.rsi}/tree02.png (100%) rename Resources/Textures/_CP14/Structures/Flora/{snow_trees.rsi => tree_snow.rsi}/tree03.png (100%) rename Resources/Textures/_CP14/Structures/Flora/{snow_trees.rsi => tree_snow.rsi}/tree04.png (100%) rename Resources/Textures/_CP14/Structures/Flora/{snow_trees.rsi => tree_snow.rsi}/tree05.png (100%) rename Resources/Textures/_CP14/Structures/Flora/{snow_trees.rsi => tree_snow.rsi}/tree06.png (100%) create mode 100644 Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/full.png create mode 100644 Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood0.png create mode 100644 Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood1.png create mode 100644 Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood2.png create mode 100644 Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood3.png create mode 100644 Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood4.png create mode 100644 Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood5.png create mode 100644 Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood6.png create mode 100644 Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood7.png diff --git a/Content.Server/Construction/ConstructionSystem.Initial.cs b/Content.Server/Construction/ConstructionSystem.Initial.cs index 6cc430b74f..b88248b82f 100644 --- a/Content.Server/Construction/ConstructionSystem.Initial.cs +++ b/Content.Server/Construction/ConstructionSystem.Initial.cs @@ -2,6 +2,7 @@ using System.IO; using System.Linq; using System.Threading.Tasks; using Content.Server.Construction.Components; +using Content.Shared._CP14.Workbench.Prototypes; using Content.Shared.ActionBlocker; using Content.Shared.Construction; using Content.Shared.Construction.Prototypes; @@ -236,6 +237,36 @@ namespace Content.Server.Construction } break; + + //CP14 stack group support + case CP14StackGroupConstructionGraphStep stackGroupStep: + foreach (var entity in new HashSet(EnumerateNearby(user))) + { + if (!stackGroupStep.EntityValid(entity, out var stack)) + continue; + + if (used.Contains(entity)) + continue; + + var splitStack = _stackSystem.Split(entity, stackGroupStep.Amount, user.ToCoordinates(0, 0), stack); + + if (splitStack == null) + continue; + + if (string.IsNullOrEmpty(stackGroupStep.Store)) + { + if (!_container.Insert(splitStack.Value, container)) + continue; + } + else if (!_container.Insert(splitStack.Value, GetContainer(stackGroupStep.Store))) + continue; + + handled = true; + break; + } + + break; + //CP14 stack group support end } if (handled == false) diff --git a/Content.Server/_CP14/Workbench/CP14WorkbenchSystem.cs b/Content.Server/_CP14/Workbench/CP14WorkbenchSystem.cs index 83277aa8cd..fb84c2d091 100644 --- a/Content.Server/_CP14/Workbench/CP14WorkbenchSystem.cs +++ b/Content.Server/_CP14/Workbench/CP14WorkbenchSystem.cs @@ -97,13 +97,13 @@ public sealed partial class CP14WorkbenchSystem : SharedCP14WorkbenchSystem foreach (var req in recipe.Requirements) { - req.PostCraft(EntityManager, placedEntities, args.User); + req.PostCraft(EntityManager, _proto, placedEntities, args.User); } //We teleport result to workbench AFTER craft. foreach (var resultEntity in resultEntities) { - _transform.SetCoordinates(resultEntity, Transform(ent).Coordinates.Offset(new Vector2(_random.NextFloat(-0.5f, 0.5f), _random.NextFloat(-0.5f, 0.5f)))); + _transform.SetCoordinates(resultEntity, Transform(ent).Coordinates.Offset(new Vector2(_random.NextFloat(-0.25f, 0.25f), _random.NextFloat(-0.25f, 0.25f)))); } UpdateUIRecipes(ent, args.User); diff --git a/Content.Shared/Construction/Steps/ConstructionGraphStepTypeSerializer.cs b/Content.Shared/Construction/Steps/ConstructionGraphStepTypeSerializer.cs index 7b5b020d2f..67f520165c 100644 --- a/Content.Shared/Construction/Steps/ConstructionGraphStepTypeSerializer.cs +++ b/Content.Shared/Construction/Steps/ConstructionGraphStepTypeSerializer.cs @@ -1,4 +1,5 @@ -using Robust.Shared.Serialization; +using Content.Shared._CP14.Workbench.Prototypes; +using Robust.Shared.Serialization; using Robust.Shared.Serialization.Manager; using Robust.Shared.Serialization.Markdown.Mapping; using Robust.Shared.Serialization.Markdown.Validation; @@ -46,6 +47,13 @@ namespace Content.Shared.Construction.Steps return typeof(PartAssemblyConstructionGraphStep); } + //CP14 stack group support + if (node.Has("stackGroup")) + { + return typeof(CP14StackGroupConstructionGraphStep); + } + //CP14 stack group support end + return null; } diff --git a/Content.Shared/_CP14/Workbench/Prototypes/CP14StackGroupConstructionGraphStep.cs b/Content.Shared/_CP14/Workbench/Prototypes/CP14StackGroupConstructionGraphStep.cs new file mode 100644 index 0000000000..4aa2fc5a86 --- /dev/null +++ b/Content.Shared/_CP14/Workbench/Prototypes/CP14StackGroupConstructionGraphStep.cs @@ -0,0 +1,65 @@ +/* + * This file is sublicensed under MIT License + * https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT + */ + +using System.Diagnostics.CodeAnalysis; +using Content.Shared.Construction; +using Content.Shared.Construction.Steps; +using Content.Shared.Examine; +using Content.Shared.Stacks; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared._CP14.Workbench.Prototypes; + +[DataDefinition] +public sealed partial class CP14StackGroupConstructionGraphStep : EntityInsertConstructionGraphStep +{ + [DataField] + public ProtoId StackGroup = default!; + + [DataField] + public int Amount = 1; + + public override void DoExamine(ExaminedEvent examinedEvent) + { + var group = IoCManager.Resolve().Index(StackGroup); + + examinedEvent.PushMarkup(Loc.GetString("construction-insert-material-entity", ("amount", Amount), ("materialName", Loc.GetString(group.Name)))); + } + + public override bool EntityValid(EntityUid uid, IEntityManager entityManager, IComponentFactory compFactory) + { + var group = IoCManager.Resolve().Index(StackGroup); + + return entityManager.TryGetComponent(uid, out StackComponent? stack) && group.Stacks.Contains(stack.StackTypeId) && stack.Count >= Amount; + } + + public bool EntityValid(EntityUid entity, [NotNullWhen(true)] out StackComponent? stack) + { + var group = IoCManager.Resolve().Index(StackGroup); + + if (IoCManager.Resolve().TryGetComponent(entity, out StackComponent? otherStack) && group.Stacks.Contains(otherStack.StackTypeId) && otherStack.Count >= Amount) + stack = otherStack; + else + stack = null; + + return stack != null; + } + + public override ConstructionGuideEntry GenerateGuideEntry() + { + var proto = IoCManager.Resolve(); + var group = proto.Index(StackGroup); + + var firstStack = group.Stacks.FirstOrNull(); + + return new ConstructionGuideEntry() + { + Localization = "construction-presenter-material-step", + Arguments = new (string, object)[]{("amount", Amount), ("material", Loc.GetString(group.Name))}, + Icon = firstStack != null ? proto.Index(firstStack.Value).Icon : SpriteSpecifier.Invalid, + }; + } +} diff --git a/Content.Shared/_CP14/Workbench/Prototypes/CP14StackGroupPrototype.cs b/Content.Shared/_CP14/Workbench/Prototypes/CP14StackGroupPrototype.cs new file mode 100644 index 0000000000..6eb3646f68 --- /dev/null +++ b/Content.Shared/_CP14/Workbench/Prototypes/CP14StackGroupPrototype.cs @@ -0,0 +1,25 @@ +/* + * This file is sublicensed under MIT License + * https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT + */ + +using Content.Shared.Stacks; +using Robust.Shared.Prototypes; + +namespace Content.Shared._CP14.Workbench.Prototypes; + +/// +/// Allows you to group several different kinds of stacks into one group. Can be used for situations where different stacks are appropriate for a particular situation +/// +[Prototype("CP14StackGroup")] +public sealed class CP14StackGroupPrototype : IPrototype +{ + [IdDataField] + public string ID { get; private set; } = default!; + + [DataField(required: true)] + public LocId Name = default!; + + [DataField(required: true)] + public List> Stacks = new(); +} diff --git a/Content.Shared/_CP14/Workbench/Requirements/KnowledgeRequired.cs b/Content.Shared/_CP14/Workbench/Requirements/KnowledgeRequired.cs index ddd52e133f..c814e6535d 100644 --- a/Content.Shared/_CP14/Workbench/Requirements/KnowledgeRequired.cs +++ b/Content.Shared/_CP14/Workbench/Requirements/KnowledgeRequired.cs @@ -34,7 +34,7 @@ public sealed partial class SkillRequired : CP14WorkbenchCraftRequirement return haveAllSkills; } - public override void PostCraft(EntityManager entManager, HashSet placedEntities, EntityUid user) + public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager, HashSet placedEntities, EntityUid user) { } diff --git a/Content.Shared/_CP14/Workbench/Requirements/MaterialResource.cs b/Content.Shared/_CP14/Workbench/Requirements/MaterialResource.cs index a6e61546b1..d0b96a0c14 100644 --- a/Content.Shared/_CP14/Workbench/Requirements/MaterialResource.cs +++ b/Content.Shared/_CP14/Workbench/Requirements/MaterialResource.cs @@ -59,7 +59,7 @@ public sealed partial class MaterialResource : CP14WorkbenchCraftRequirement return true; } - public override void PostCraft(EntityManager entManager, HashSet placedEntities, EntityUid user) + public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager, HashSet placedEntities, EntityUid user) { var stackSystem = entManager.System(); diff --git a/Content.Shared/_CP14/Workbench/Requirements/ProtoIdResource.cs b/Content.Shared/_CP14/Workbench/Requirements/ProtoIdResource.cs index d29923362b..6c714ace0a 100644 --- a/Content.Shared/_CP14/Workbench/Requirements/ProtoIdResource.cs +++ b/Content.Shared/_CP14/Workbench/Requirements/ProtoIdResource.cs @@ -30,9 +30,7 @@ public sealed partial class ProtoIdResource : CP14WorkbenchCraftRequirement return indexedIngredients.TryGetValue(ProtoId, out var availableQuantity) && availableQuantity >= Count; } - public override void PostCraft(EntityManager entManager, - HashSet placedEntities, - EntityUid user) + public override void PostCraft(EntityManager entManager,IPrototypeManager protoManager, HashSet placedEntities, EntityUid user) { var requiredCount = Count; diff --git a/Content.Shared/_CP14/Workbench/Requirements/StackGroupResource.cs b/Content.Shared/_CP14/Workbench/Requirements/StackGroupResource.cs new file mode 100644 index 0000000000..a6ed0e43b8 --- /dev/null +++ b/Content.Shared/_CP14/Workbench/Requirements/StackGroupResource.cs @@ -0,0 +1,97 @@ +/* + * This file is sublicensed under MIT License + * https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT + */ + +using Content.Shared._CP14.Workbench.Prototypes; +using Content.Shared.Stacks; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared._CP14.Workbench.Requirements; + +public sealed partial class StackGroupResource : CP14WorkbenchCraftRequirement +{ + public override bool HideRecipe { get; set; } = false; + + [DataField(required: true)] + public ProtoId Group; + + [DataField] + public int Count = 1; + + public override bool CheckRequirement(EntityManager entManager, + IPrototypeManager protoManager, + HashSet placedEntities, + EntityUid user, + CP14WorkbenchRecipePrototype recipe) + { + if (!protoManager.TryIndex(Group, out var indexedGroup)) + return false; + + var count = 0; + foreach (var ent in placedEntities) + { + if (!entManager.TryGetComponent(ent, out var stack)) + continue; + + if (!indexedGroup.Stacks.Contains(stack.StackTypeId)) + continue; + + count += stack.Count; + } + + if (count < Count) + return false; + + return true; + } + + public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager, + HashSet placedEntities, + EntityUid user) + { + var stackSystem = entManager.System(); + + if (!protoManager.TryIndex(Group, out var indexedGroup)) + return; + + var requiredCount = Count; + foreach (var placedEntity in placedEntities) + { + if (!entManager.TryGetComponent(placedEntity, out var stack)) + continue; + + if (!indexedGroup.Stacks.Contains(stack.StackTypeId)) + continue; + + var count = (int)MathF.Min(requiredCount, stack.Count); + + if (stack.Count - count <= 0) + entManager.DeleteEntity(placedEntity); + else + stackSystem.SetCount(placedEntity, stack.Count - count, stack); + + requiredCount -= count; + } + } + + public override string GetRequirementTitle(IPrototypeManager protoManager) + { + var indexedGroup = protoManager.Index(Group); + + return $"{Loc.GetString(indexedGroup.Name)} x{Count}"; + } + + public override EntityPrototype? GetRequirementEntityView(IPrototypeManager protoManager) + { + return null; + } + + public override SpriteSpecifier? GetRequirementTexture(IPrototypeManager protoManager) + { + var indexedGroup = protoManager.Index(Group); + + return !protoManager.TryIndex(indexedGroup.Stacks.FirstOrNull(), out var indexedStack) ? null : indexedStack.Icon; + } +} diff --git a/Content.Shared/_CP14/Workbench/Requirements/StackResource.cs b/Content.Shared/_CP14/Workbench/Requirements/StackResource.cs index 6b63a93556..ce67cff95a 100644 --- a/Content.Shared/_CP14/Workbench/Requirements/StackResource.cs +++ b/Content.Shared/_CP14/Workbench/Requirements/StackResource.cs @@ -44,7 +44,7 @@ public sealed partial class StackResource : CP14WorkbenchCraftRequirement return true; } - public override void PostCraft(EntityManager entManager, + public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager, HashSet placedEntities, EntityUid user) { diff --git a/Content.Shared/_CP14/Workbench/Requirements/TagResource.cs b/Content.Shared/_CP14/Workbench/Requirements/TagResource.cs index 3db65ecf13..549a2e7756 100644 --- a/Content.Shared/_CP14/Workbench/Requirements/TagResource.cs +++ b/Content.Shared/_CP14/Workbench/Requirements/TagResource.cs @@ -50,7 +50,7 @@ public sealed partial class TagResource : CP14WorkbenchCraftRequirement return true; } - public override void PostCraft(EntityManager entManager, HashSet placedEntities, EntityUid user) + public override void PostCraft(EntityManager entManager, IPrototypeManager protoManager, HashSet placedEntities, EntityUid user) { var tagSystem = entManager.System(); diff --git a/Content.Shared/_CP14/Workbench/WorkbenchCraftRequirement.cs b/Content.Shared/_CP14/Workbench/WorkbenchCraftRequirement.cs index 3a5b1b8963..f17d610071 100644 --- a/Content.Shared/_CP14/Workbench/WorkbenchCraftRequirement.cs +++ b/Content.Shared/_CP14/Workbench/WorkbenchCraftRequirement.cs @@ -33,6 +33,7 @@ public abstract partial class CP14WorkbenchCraftRequirement /// An event that is triggered after crafting. This is the place to put important things like removing items, spending stacks or other things. /// public abstract void PostCraft(EntityManager entManager, + IPrototypeManager protoManager, HashSet placedEntities, EntityUid user); diff --git a/Resources/Locale/en-US/_CP14/stack/materials.ftl b/Resources/Locale/en-US/_CP14/stack/materials.ftl index d43a821bd2..6d79da02fb 100644 --- a/Resources/Locale/en-US/_CP14/stack/materials.ftl +++ b/Resources/Locale/en-US/_CP14/stack/materials.ftl @@ -1,7 +1,8 @@ cp14-stack-dirt-block = dirt blocks cp14-stack-stone-block = stone blocks cp14-stack-marble-block = marble rocks -cp14-stack-wood-planks = wooden planks +cp14-stack-wood-planks = oak planks +cp14-stack-wood-planks-birch = birch planks cp14-stack-nails = nails cp14-stack-cloth = rolls of fabric cp14-stack-flora = tufts of grass @@ -22,3 +23,5 @@ cp14-stack-wallpaper = rolls of wallpaper cp14-stack-glass-sheet = glass cp14-stack-ash-pile = pile of ashes + +cp14-stack-group-wooden-planks-any = planks (any) \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/stack/materials.ftl b/Resources/Locale/ru-RU/_CP14/stack/materials.ftl index 6e1f9081d1..16f7cbb2cf 100644 --- a/Resources/Locale/ru-RU/_CP14/stack/materials.ftl +++ b/Resources/Locale/ru-RU/_CP14/stack/materials.ftl @@ -1,7 +1,8 @@ cp14-stack-dirt-block = блоки земли cp14-stack-stone-block = каменные блоки cp14-stack-marble-block = мраморные камни -cp14-stack-wood-planks = деревянные доски +cp14-stack-wood-planks = дубовые доски +cp14-stack-wood-planks-birch = березовые доски cp14-stack-nails = гвозди cp14-stack-cloth = рулоны ткани cp14-stack-flora = пучки травы @@ -22,3 +23,7 @@ cp14-stack-wallpaper = рулон обоев cp14-stack-glass-sheet = стекло cp14-stack-ash-pile = кучка пепла + + + +cp14-stack-group-wooden-planks-any = доски (любые) \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Materials/simple.yml b/Resources/Prototypes/_CP14/Entities/Objects/Materials/simple.yml index 630016edf5..75c4c13109 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Materials/simple.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Materials/simple.yml @@ -1,193 +1,3 @@ -- type: entity - id: CP14WoodLog - parent: BaseItem - name: wooden log - description: A piece of unprocessed wood. Good material for building, or starting a fire. - categories: [ ForkFiltered ] - components: - - type: Item - size: Normal - shape: - - 0,0,1,0 - - type: Sprite - sprite: _CP14/Objects/Materials/wood.rsi - layers: - - state: log - map: ["random"] - - type: RandomSprite - available: - - random: - log: "" - log_2: "" - log_3: "" - - type: Tag - tags: - - CP14FireplaceFuel - - Wooden - - type: Flammable - fireSpread: false - canResistFire: false - alwaysCombustible: true - canExtinguish: true - cP14FireplaceFuel: 30 - damage: - types: - Heat: 1 - - type: Log - spawnedPrototype: CP14WoodenPlanks1 - spawnCount: 3 - - type: Appearance - - type: Damageable - damageContainer: Inorganic - damageModifierSet: Wood - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 25 - behaviors: - - !type:PlaySoundBehavior - sound: - collection: WoodDestroy - - !type:DoActsBehavior - acts: [ "Destruction" ] - -- type: entity - id: CP14WoodenPlanks1 - parent: BaseItem - name: wooden planks - description: Treated and ready-to-use wood. - categories: [ ForkFiltered ] - suffix: 1 - components: - - type: Item - size: Normal - - type: Sprite - sprite: _CP14/Objects/Materials/wood.rsi - layers: - - state: planks - map: ["base"] - - type: Tag - tags: - - CP14FireplaceFuel - - Wooden - - type: Flammable - fireSpread: false - canResistFire: false - alwaysCombustible: true - canExtinguish: true - cP14FireplaceFuel: 12 - damage: - types: - Heat: 1 - - type: Appearance - - type: Stack - stackType: CP14WoodenPlanks - count: 1 - baseLayer: base - layerStates: - - planks - - planks_2 - - planks_3 - - type: Material - - type: PhysicalComposition # точно ли это нужно? - materialComposition: - CP14WoodenPlanks: 100 - - type: Damageable - damageContainer: Inorganic - damageModifierSet: Wood - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 25 - behaviors: - - !type:PlaySoundBehavior - sound: - collection: WoodDestroy - - !type:DoActsBehavior - acts: [ "Destruction" ] - -- type: entity - id: CP14WoodenPlanks10 - parent: CP14WoodenPlanks1 - suffix: 10 - components: - - type: Stack - count: 10 - -- type: entity - id: CP14WoodenPlanks20 - parent: CP14WoodenPlanks1 - suffix: 20 - components: - - type: Stack - count: 20 - -- type: entity - id: CP14LucensWoodLog - parent: CP14WoodLog - name: lucens log - components: - - type: Sprite - sprite: _CP14/Objects/Materials/lucens_wood.rsi - layers: - - state: log - map: ["random"] - - type: RandomSprite - available: - - random: - log: "" - log_2: "" - log_3: "" - - type: Log - spawnedPrototype: CP14LucensWoodenPlanks1 - spawnCount: 3 - -- type: entity - id: CP14LucensWoodenPlanks1 - parent: CP14WoodenPlanks1 - name: lucens planks - suffix: 1 - components: - - type: Sprite - sprite: _CP14/Objects/Materials/lucens_wood.rsi - layers: - - state: planks - map: ["base"] - - type: Stack - stackType: CP14LucensWoodenPlanks - count: 1 - baseLayer: base - layerStates: - - planks - - planks_2 - - planks_3 - - type: FloorTile - placeTileSound: - path: /Audio/Effects/woodenclosetclose.ogg - params: - variation: 0.03 - volume: 2 - outputs: - - CP14FloorLucensWoodPlanks - -- type: entity - id: CP14LucensWoodenPlanks10 - parent: CP14LucensWoodenPlanks1 - suffix: 10 - components: - - type: Stack - count: 10 - -- type: entity - id: CP14LucensWoodenPlanks20 - parent: CP14LucensWoodenPlanks1 - suffix: 20 - components: - - type: Stack - count: 20 - - type: entity id: CP14Nail1 parent: BaseItem diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Materials/wood.yml b/Resources/Prototypes/_CP14/Entities/Objects/Materials/wood.yml new file mode 100644 index 0000000000..cca8f99cc5 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Materials/wood.yml @@ -0,0 +1,241 @@ +- type: entity + id: CP14WoodLog + parent: BaseItem + name: wooden log + description: A piece of unprocessed wood. Good material for building, or starting a fire. + categories: [ ForkFiltered ] + components: + - type: Item + size: Normal + shape: + - 0,0,1,0 + - type: Sprite + sprite: _CP14/Objects/Materials/wood.rsi + layers: + - state: log + map: ["random"] + - type: RandomSprite + available: + - random: + log: "" + log_2: "" + log_3: "" + - type: Tag + tags: + - CP14FireplaceFuel + - Wooden + - type: Flammable + fireSpread: false + canResistFire: false + alwaysCombustible: true + canExtinguish: true + cP14FireplaceFuel: 30 + damage: + types: + Heat: 1 + - type: Log + spawnedPrototype: CP14WoodenPlanks1 + spawnCount: 3 + - type: Appearance + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 25 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:DoActsBehavior + acts: [ "Destruction" ] + +- type: entity + id: CP14WoodenPlanks1 + parent: BaseItem + name: wooden planks + description: Treated and ready-to-use wood. + categories: [ ForkFiltered ] + suffix: 1 + components: + - type: Item + size: Normal + - type: Sprite + sprite: _CP14/Objects/Materials/wood.rsi + layers: + - state: planks + map: ["base"] + - type: Tag + tags: + - CP14FireplaceFuel + - Wooden + - type: Flammable + fireSpread: false + canResistFire: false + alwaysCombustible: true + canExtinguish: true + cP14FireplaceFuel: 12 + damage: + types: + Heat: 1 + - type: Appearance + - type: Stack + stackType: CP14WoodenPlanks + count: 1 + baseLayer: base + layerStates: + - planks + - planks_2 + - planks_3 + - type: Material + - type: PhysicalComposition # точно ли это нужно? + materialComposition: + CP14WoodenPlanks: 100 + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 25 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:DoActsBehavior + acts: [ "Destruction" ] + +- type: entity + id: CP14WoodenPlanks10 + parent: CP14WoodenPlanks1 + suffix: 10 + components: + - type: Stack + count: 10 + +- type: entity + id: CP14WoodenPlanks20 + parent: CP14WoodenPlanks1 + suffix: 20 + components: + - type: Stack + count: 20 + +# Lucen + +- type: entity + id: CP14LucensWoodLog + parent: CP14WoodLog + name: lucens log + components: + - type: Sprite + sprite: _CP14/Objects/Materials/wood_lucens.rsi + layers: + - state: log + map: ["random"] + - type: RandomSprite + available: + - random: + log: "" + log_2: "" + log_3: "" + - type: Log + spawnedPrototype: CP14LucensWoodenPlanks1 + spawnCount: 3 + +- type: entity + id: CP14LucensWoodenPlanks1 + parent: CP14WoodenPlanks1 + name: lucens planks + suffix: 1 + components: + - type: Sprite + sprite: _CP14/Objects/Materials/wood_lucens.rsi + layers: + - state: planks + map: ["base"] + - type: Stack + stackType: CP14LucensWoodenPlanks + count: 1 + baseLayer: base + layerStates: + - planks + - planks_2 + - planks_3 + +- type: entity + id: CP14LucensWoodenPlanks10 + parent: CP14LucensWoodenPlanks1 + suffix: 10 + components: + - type: Stack + count: 10 + +- type: entity + id: CP14LucensWoodenPlanks20 + parent: CP14LucensWoodenPlanks1 + suffix: 20 + components: + - type: Stack + count: 20 + +#Birch + +- type: entity + id: CP14BirchWoodLog + parent: CP14WoodLog + name: birch log + components: + - type: Sprite + sprite: _CP14/Objects/Materials/wood_birch.rsi + layers: + - state: log + map: ["random"] + - type: RandomSprite + available: + - random: + log: "" + log_2: "" + log_3: "" + - type: Log + spawnedPrototype: CP14BirchWoodenPlanks1 + spawnCount: 3 + +- type: entity + id: CP14BirchWoodenPlanks1 + parent: CP14WoodenPlanks1 + name: birch planks + suffix: 1 + components: + - type: Sprite + sprite: _CP14/Objects/Materials/wood_birch.rsi + layers: + - state: planks + map: ["base"] + - type: Stack + stackType: CP14BirchWoodenPlanks + count: 1 + baseLayer: base + layerStates: + - planks + - planks_2 + - planks_3 + +- type: entity + id: CP14BirchWoodenPlanks10 + parent: CP14BirchWoodenPlanks1 + suffix: 10 + components: + - type: Stack + count: 10 + +- type: entity + id: CP14BirchWoodenPlanks20 + parent: CP14BirchWoodenPlanks1 + suffix: 20 + components: + - type: Stack + count: 20 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Misc/tiles.yml b/Resources/Prototypes/_CP14/Entities/Objects/Misc/tiles.yml index 6a2bb0ddc5..32f305b4a0 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Misc/tiles.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Misc/tiles.yml @@ -87,6 +87,11 @@ - type: Sprite state: oak_woodplanks - type: FloorTile + placeTileSound: + path: /Audio/Effects/woodenclosetclose.ogg + params: + variation: 0.03 + volume: 2 outputs: - CP14FloorOakWoodPlanks - type: Stack @@ -196,4 +201,77 @@ outputs: - CP14FloorStonebricksSquareCarved - type: Stack - stackType: CP14FloorTileStonebricksSquareCarved \ No newline at end of file + stackType: CP14FloorTileStonebricksSquareCarved + + +- type: entity + parent: CP14FloorTileBase + id: CP14FloorTileBirchWoodplanks + name: birch woodplanks + components: + - type: Sprite + state: birch_woodplanks + - type: FloorTile + placeTileSound: + path: /Audio/Effects/woodenclosetclose.ogg + params: + variation: 0.03 + volume: 2 + outputs: + - CP14FloorBirchWoodPlanks + - type: Stack + stackType: CP14FloorTileBirchWoodplanks + +- type: entity + parent: CP14FloorTileBase + id: CP14FloorTileBirchWoodplanksBig + name: birch big woodplanks + components: + - type: Sprite + state: birch_woodplanks_big + - type: FloorTile + placeTileSound: + path: /Audio/Effects/woodenclosetclose.ogg + params: + variation: 0.03 + volume: 2 + outputs: + - CP14FloorBirchWoodPlanksBig + - type: Stack + stackType: CP14FloorTileBirchWoodplanksBig + +- type: entity + parent: CP14FloorTileBase + id: CP14FloorTileBirchWoodplanksCruciform + name: birch cruciform woodplanks + components: + - type: Sprite + state: birch_woodplanks_cruciform + - type: FloorTile + placeTileSound: + path: /Audio/Effects/woodenclosetclose.ogg + params: + variation: 0.03 + volume: 2 + outputs: + - CP14FloorBirchWoodPlanksCruciform + - type: Stack + stackType: CP14FloorTileBirchWoodplanksCruciform + +- type: entity + parent: CP14FloorTileBase + id: CP14FloorTileBirchWoodplanksStairs + name: birch stairs woodplanks + components: + - type: Sprite + state: birch_woodplanks_stairways + - type: FloorTile + placeTileSound: + path: /Audio/Effects/woodenclosetclose.ogg + params: + variation: 0.03 + volume: 2 + outputs: + - CP14FloorBirchWoodPlanksStairways + - type: Stack + stackType: CP14FloorTileBirchWoodplanksStairs \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Flora/trees.yml b/Resources/Prototypes/_CP14/Entities/Structures/Flora/trees.yml index ebd1bd037e..640764b0c9 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Flora/trees.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Flora/trees.yml @@ -24,7 +24,7 @@ fix1: shape: !type:PhysShapeAabb - bounds: "-0.35,-0.4,0.35,0.4" + bounds: "-0.2,-0.2,0.2,0.2" density: 1000 layer: - WallLayer @@ -82,15 +82,6 @@ components: - type: Sprite offset: 0,1.55 - - type: Fixtures - fixtures: - fix1: - shape: - !type:PhysShapeAabb - bounds: "-0.18,-0.35,0.18,0.35" - density: 2000 - layer: - - WallLayer - type: Destructible thresholds: - trigger: @@ -148,7 +139,7 @@ id: CP14FloraTreeSnow components: - type: Sprite - sprite: _CP14/Structures/Flora/snow_trees.rsi + sprite: _CP14/Structures/Flora/tree_snow.rsi layers: - state: tree01 map: ["random"] @@ -256,15 +247,6 @@ - random: tree01: "" tree02: "" - - type: Fixtures - fixtures: - fix1: - shape: - !type:PhysShapeAabb - bounds: "-0.18,-0.35,0.18,0.35" - density: 2000 - layer: - - WallLayer - type: Destructible thresholds: - trigger: @@ -297,3 +279,151 @@ CP14LucensWoodLog: min: 3 max: 6 + +- type: entity + parent: CP14BaseTree + id: CP14FloraTreeBirchSmall + suffix: Small + components: + - type: Sprite + offset: 0,1.3 + sprite: _CP14/Structures/Flora/tree_birch_small.rsi + layers: + - state: tree01 + map: ["random"] + - type: RandomSprite + available: + - random: + tree01: "" + tree02: "" + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 75 + behaviors: + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/tree_fell.ogg + params: + volume: 5 + variation: 0.05 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + CP14BirchWoodLog: + min: 1 + max: 2 + +- type: entity + parent: CP14BaseTree + id: CP14FloraTreeBirchMedium + suffix: Medium + components: + - type: Sprite + offset: 0,1.8 + sprite: _CP14/Structures/Flora/tree_birch_medium.rsi + layers: + - state: tree01 + map: ["random"] + - type: RandomSprite + available: + - random: + tree01: "" + tree02: "" + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 75 + behaviors: + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/tree_fell.ogg + params: + volume: 5 + variation: 0.05 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + CP14BirchWoodLog: + min: 2 + max: 4 + +- type: entity + parent: CP14BaseTree + id: CP14FloraTreeBirchLarge + suffix: Large + components: + - type: Sprite + offset: 0,2.6 + sprite: _CP14/Structures/Flora/tree_birch_big.rsi + layers: + - state: tree01 + map: ["random"] + - type: RandomSprite + available: + - random: + tree01: "" + tree02: "" + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 75 + behaviors: + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/tree_fell.ogg + params: + volume: 5 + variation: 0.05 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + CP14BirchWoodLog: + min: 3 + max: 6 + diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/_CP14/Entities/Structures/Walls/walls.yml index 764d73cd4f..ce99d5cc99 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Walls/walls.yml @@ -147,6 +147,18 @@ node: WallWooden - type: CP14WallpaperHolder +- type: entity + id: CP14WallWoodenBirch + parent: CP14WallWooden + components: + - type: Sprite + sprite: _CP14/Structures/Walls/wooden_wall_birch.rsi + - type: Icon + sprite: _CP14/Structures/Walls/wooden_wall_birch.rsi + - type: Construction + graph: CP14WallWood + node: WallWoodenBirch + - type: entity id: CP14WallWoodenPalisade name: palisade diff --git a/Resources/Prototypes/_CP14/Materials/simple.yml b/Resources/Prototypes/_CP14/Materials/simple.yml index d973e54f8b..180c7faed6 100644 --- a/Resources/Prototypes/_CP14/Materials/simple.yml +++ b/Resources/Prototypes/_CP14/Materials/simple.yml @@ -93,7 +93,7 @@ stackEntity: CP14LucensWoodenPlanks1 name: cp14-material-lucens-planks unit: materials-unit-bar - icon: { sprite: _CP14/Objects/Materials/lucens_wood.rsi, state: planks_2 } + icon: { sprite: _CP14/Objects/Materials/wood_lucens.rsi, state: planks_2 } color: "#1a1e22" price: 0 diff --git a/Resources/Prototypes/_CP14/Procedural/grasslands.yml b/Resources/Prototypes/_CP14/Procedural/grasslands.yml index d21b8ea0c3..dbe6bf5ec8 100644 --- a/Resources/Prototypes/_CP14/Procedural/grasslands.yml +++ b/Resources/Prototypes/_CP14/Procedural/grasslands.yml @@ -126,8 +126,12 @@ - CP14FloorGrassLight - CP14FloorGrassTall entities: + - CP14FloraTreeGreen - CP14FloraTreeGreen - CP14FloraTreeGreenLarge + - CP14FloraTreeBirchSmall + - CP14FloraTreeBirchMedium + - CP14FloraTreeBirchLarge - !type:BiomeEntityLayer # More Rocks threshold: 0.7 noise: @@ -174,8 +178,12 @@ - CP14FloorGrassLight - CP14FloorGrassTall entities: + - CP14FloraTreeGreen - CP14FloraTreeGreen - CP14FloraTreeGreenLarge + - CP14FloraTreeBirchSmall + - CP14FloraTreeBirchMedium + - CP14FloraTreeBirchLarge - type: biomeTemplate id: CP14GrasslandHills # Холмы diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/beds.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/beds.yml index de4c5470ac..1e2d89d11d 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/beds.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/beds.yml @@ -8,7 +8,7 @@ edges: - to: CP14WoodenBed steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 - material: CP14Cloth amount: 1 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/cabinets.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/cabinets.yml index 0b302f5400..e58ca892b7 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/cabinets.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/cabinets.yml @@ -8,7 +8,7 @@ completed: - !type:SnapToGrid steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 - material: CP14Nail amount: 2 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/closets.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/closets.yml index fd5a36abd3..d2ef73b335 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/closets.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/closets.yml @@ -8,7 +8,7 @@ completed: - !type:SnapToGrid steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 4 - material: CP14Nail amount: 2 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/curtains.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/curtains.yml index 8a083342ff..e9aef0720a 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/curtains.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/curtains.yml @@ -8,7 +8,7 @@ edges: - to: CP14CurtainsWhite steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 1 doAfter: 2 - material: CP14Nail diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/lighting.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/lighting.yml index c3ecfa6907..d8b02a1b6f 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/lighting.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/lighting.yml @@ -11,7 +11,7 @@ - material: CP14Stone amount: 3 doAfter: 2 - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/mannequin.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/mannequin.yml index 2677e7b5fb..3e451d18ef 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/mannequin.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/mannequin.yml @@ -10,7 +10,7 @@ completed: - !type:SnapToGrid { } steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 5 doAfter: 3 - node: CP14mannequin diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/orders_border.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/orders_border.yml index 37e7467d20..741908c9df 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/orders_border.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/orders_border.yml @@ -8,7 +8,7 @@ edges: - to: CP14WallmountOrdersBorder steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 doAfter: 3 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/seats.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/seats.yml index dd84b37b14..c1f93c953c 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/seats.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/seats.yml @@ -8,7 +8,7 @@ edges: - to: CP14ChairWooden steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 - node: CP14ChairWooden @@ -24,7 +24,7 @@ edges: - to: CP14BenchWood steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 doAfter: 2 - node: CP14BenchWood diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/tables.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/tables.yml index 9d104229c4..e43e5e1132 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/tables.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/tables.yml @@ -8,7 +8,7 @@ edges: - to: CP14TableWooden steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 doAfter: 2 - node: CP14TableWooden @@ -24,7 +24,7 @@ edges: - to: CP14TableWoodenRound steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 doAfter: 2 - node: CP14TableWoodenRound @@ -40,7 +40,7 @@ edges: - to: CP14TableWoodenCounter steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 doAfter: 2 - node: CP14TableWoodenCounter @@ -56,7 +56,7 @@ edges: - to: CP14Workbench steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 doAfter: 2 - node: CP14Workbench @@ -72,7 +72,7 @@ edges: - to: CP14WorkbenchCooking steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 doAfter: 2 - node: CP14WorkbenchCooking @@ -88,7 +88,7 @@ edges: - to: CP14WorkbenchSewing steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 doAfter: 2 - node: CP14WorkbenchSewing diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Misc/pallets.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Misc/pallets.yml index 782dd75b31..f07bb43feb 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Misc/pallets.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Misc/pallets.yml @@ -8,7 +8,7 @@ edges: - to: CP14WoodenPallet steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 - node: CP14WoodenPallet diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Misc/target.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Misc/target.yml index 8afdfa2ff1..cc5d94563b 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Misc/target.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Misc/target.yml @@ -9,7 +9,7 @@ - !type:SnapToGrid southRotation: true steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 @@ -18,16 +18,13 @@ edges: - to: start completed: - - !type:GivePrototype - prototype: CP14WoodenPlanks1 - amount: 2 - !type:DeleteEntity {} steps: - tool: Screwing doAfter: 1 - to: CP14target steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 doAfter: 1 - material: CP14Nail @@ -64,7 +61,7 @@ completed: - !type:SnapToGrid steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 5 - material: CP14Cloth amount: 2 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/barrels.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/barrels.yml index b1ded56d19..699b9ab35d 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/barrels.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/barrels.yml @@ -8,7 +8,7 @@ edges: - to: CP14BaseBarrel steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 5 doAfter: 3 - material: CP14Nail @@ -27,7 +27,7 @@ edges: - to: CP14CraneBarrel steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 5 doAfter: 3 - material: CP14Nail @@ -46,7 +46,7 @@ edges: - to: CP14CraneBarrelSmall steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 doAfter: 3 - material: CP14Nail diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/chests.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/chests.yml index a487fdadb9..f11ba020a8 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/chests.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/chests.yml @@ -8,7 +8,7 @@ edges: - to: CP14WoodenChestFrame steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 @@ -17,7 +17,7 @@ edges: - to: CP14WoodenChest steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 - material: CP14Nail diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/coffins.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/coffins.yml index 56b6707a47..b7a34df729 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/coffins.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/coffins.yml @@ -8,7 +8,7 @@ completed: - !type:SnapToGrid steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 - material: CP14Cloth amount: 2 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/crates.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/crates.yml index a721ca8bf8..611c3c4dca 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/crates.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Storage/crates.yml @@ -8,7 +8,7 @@ completed: - !type:SnapToGrid steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 - material: CP14Nail amount: 1 @@ -26,7 +26,7 @@ completed: - !type:SnapToGrid steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 4 - material: CP14Nail amount: 2 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Doors/wooden_doors.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Doors/wooden_doors.yml index fb3b0cae5d..d94fe351c2 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Doors/wooden_doors.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Doors/wooden_doors.yml @@ -8,7 +8,7 @@ edges: - to: CP14WoodenDoorFrame steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 @@ -30,7 +30,7 @@ doAfter: 1 - to: CP14WoodenDoor steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 - to: CP14WoodenDoorWindowed @@ -47,9 +47,6 @@ edges: - to: start completed: - - !type:SpawnPrototype - prototype: CP14WoodenPlanks1 - amount: 2 - !type:DeleteEntity {} steps: - tool: Prying #TODO - new tool @@ -76,10 +73,6 @@ entity: CP14WoodenDoor edges: - to: CP14WoodenDoorFrame - completed: - - !type:SpawnPrototype - prototype: CP14WoodenPlanks1 - amount: 2 steps: - tool: Prying #TODO - new tool doAfter: 5 @@ -88,10 +81,6 @@ entity: CP14WoodenDoorMirrored edges: - to: CP14WoodenDoorFrameMirrored - completed: - - !type:SpawnPrototype - prototype: CP14WoodenPlanks1 - amount: 2 steps: - tool: Prying #TODO - new tool doAfter: 5 @@ -100,10 +89,6 @@ entity: CP14WoodenDoorWindowed edges: - to: CP14WoodenDoorFrame - completed: - - !type:SpawnPrototype - prototype: CP14WoodenPlanks1 - amount: 2 steps: - tool: Prying #TODO - new tool doAfter: 5 @@ -112,10 +97,6 @@ entity: CP14WoodenDoorWindowedMirrored edges: - to: CP14WoodenDoorFrameMirrored - completed: - - !type:SpawnPrototype - prototype: CP14WoodenPlanks1 - amount: 2 steps: - tool: Prying #TODO - new tool doAfter: 5 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Fence/wooden_fence.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Fence/wooden_fence.yml index a38235a370..0e96e4fdda 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Fence/wooden_fence.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Fence/wooden_fence.yml @@ -8,32 +8,32 @@ edges: - to: CP14FenceWoodSmallStraight steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 - to: CP14FenceWoodSmallCorner steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 - to: CP14FenceWoodSmallGate steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 - to: CP14FenceWoodStraight steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 4 doAfter: 2 - to: CP14FenceWoodCorner steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 4 doAfter: 2 - to: CP14FenceWoodGate steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 4 doAfter: 2 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Roofs/roofs.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Roofs/roofs.yml index dbc7d77cc7..35630f3b2e 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Roofs/roofs.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Roofs/roofs.yml @@ -6,7 +6,7 @@ edges: - to: CP14RoofWooden steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Wallmount/lighting.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Wallmount/lighting.yml index 2293692b79..0cd8ae795b 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Wallmount/lighting.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Wallmount/lighting.yml @@ -8,7 +8,7 @@ edges: - to: CP14WallmountTorch steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 3 doAfter: 3 - material: CP14Cloth diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Wallmount/shelfs.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Wallmount/shelfs.yml index c273b9d16b..0b11dcdcd2 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Wallmount/shelfs.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Wallmount/shelfs.yml @@ -8,7 +8,7 @@ edges: - to: CP14WallmountBarShelfA steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 - node: CP14WallmountBarShelfA @@ -24,7 +24,7 @@ edges: - to: CP14WallmountBarShelfB steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 - node: CP14WallmountBarShelfB diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Walls/WallWood.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Walls/WallWood.yml index d982447f06..8b09764110 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Walls/WallWood.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Walls/WallWood.yml @@ -9,7 +9,7 @@ - !type:SnapToGrid southRotation: true steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 2 doAfter: 2 @@ -35,6 +35,16 @@ doAfter: 1 - tool: CP14Hammering doAfter: 2 + - to: WallWoodenBirch + steps: + - material: CP14BirchWoodenPlanks + amount: 2 + doAfter: 1 + - material: CP14Nail + amount: 2 + doAfter: 1 + - tool: CP14Hammering + doAfter: 2 - to: WindowWooden steps: - material: CP14GlassSheet @@ -49,6 +59,14 @@ - tool: CP14Hammering doAfter: 2 + - node: WallWoodenBirch + entity: CP14WallWoodenBirch + edges: + - to: FrameWooden + steps: + - tool: CP14Hammering + doAfter: 2 + - node: WindowWooden entity: CP14WindowWooden @@ -63,7 +81,7 @@ completed: - !type:SnapToGrid steps: - - material: CP14WoodenPlanks + - stackGroup: WoodenPlanks amount: 4 doAfter: 2 - node: CP14WallWoodenPalisade diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/walls.yml b/Resources/Prototypes/_CP14/Recipes/Construction/walls.yml index 0efaa2c6ed..8c5a41ec46 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/walls.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/walls.yml @@ -16,6 +16,24 @@ conditions: - !type:TileNotBlocked +- type: construction + crystallPunkAllowed: true + name: wooden birch wall + description: Sturdy enough to cover you from threats or cold winds. + id: CP14WoodenWallBirch + graph: CP14WallWood + startNode: start + targetNode: WallWoodenBirch + category: construction-category-structures + icon: + sprite: _CP14/Structures/Walls/wooden_wall_birch.rsi + state: full + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked + - type: construction crystallPunkAllowed: true name: palisade diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/Workbench/misc.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/Workbench/misc.yml index a09bfad224..62dbeb0141 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/Workbench/misc.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/Workbench/misc.yml @@ -3,8 +3,8 @@ tag: CP14RecipeWorkbench craftTime: 2 requirements: - - !type:StackResource - stack: CP14WoodenPlanks + - !type:StackGroupResource + group: WoodenPlanks count: 3 - !type:ProtoIdResource protoId: CP14Rope @@ -16,8 +16,8 @@ tag: CP14RecipeWorkbench craftTime: 3 requirements: - - !type:StackResource - stack: CP14WoodenPlanks + - !type:StackGroupResource + group: WoodenPlanks count: 2 - !type:StackResource stack: CP14Nail @@ -29,8 +29,8 @@ tag: CP14RecipeWorkbench craftTime: 3 requirements: - - !type:StackResource - stack: CP14WoodenPlanks + - !type:StackGroupResource + group: WoodenPlanks count: 2 result: CP14SmokingPipe @@ -39,8 +39,8 @@ tag: CP14RecipeWorkbench craftTime: 3 requirements: - - !type:StackResource - stack: CP14WoodenPlanks + - !type:StackGroupResource + group: WoodenPlanks count: 2 result: CP14Plate @@ -49,8 +49,8 @@ tag: CP14RecipeWorkbench craftTime: 3 requirements: - - !type:StackResource - stack: CP14WoodenPlanks + - !type:StackGroupResource + group: WoodenPlanks count: 2 - !type:StackResource stack: CP14Cloth @@ -115,8 +115,8 @@ tag: CP14RecipeWorkbench craftTime: 2 requirements: - - !type:StackResource - stack: CP14WoodenPlanks + - !type:StackGroupResource + group: WoodenPlanks count: 4 - !type:ProtoIdResource protoId: CP14String @@ -150,8 +150,8 @@ tag: CP14RecipeWorkbench craftTime: 1 requirements: - - !type:StackResource - stack: CP14WoodenPlanks + - !type:StackGroupResource + group: WoodenPlanks - !type:ProtoIdResource protoId: CP14CrystalShardBase result: CP14CrayonWhite diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/Workbench/tile.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/Workbench/tile.yml index a5b6dc8fef..8c472ff808 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/Workbench/tile.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/Workbench/tile.yml @@ -117,4 +117,48 @@ stack: CP14WoodenPlanks count: 1 result: CP14FloorTileOakWoodplanksStairs + resultCount: 4 + +- type: CP14Recipe + id: CP14FloorTileBirchWoodplanks + tag: CP14RecipeWorkbench + craftTime: 1 + requirements: + - !type:StackResource + stack: CP14BirchWoodenPlanks + count: 1 + result: CP14FloorTileBirchWoodplanks + resultCount: 4 + +- type: CP14Recipe + id: CP14FloorTileBirchWoodplanksBig + tag: CP14RecipeWorkbench + craftTime: 1 + requirements: + - !type:StackResource + stack: CP14BirchWoodenPlanks + count: 1 + result: CP14FloorTileBirchWoodplanksBig + resultCount: 4 + +- type: CP14Recipe + id: CP14FloorTileBirchWoodplanksCruciform + tag: CP14RecipeWorkbench + craftTime: 1 + requirements: + - !type:StackResource + stack: CP14BirchWoodenPlanks + count: 1 + result: CP14FloorTileBirchWoodplanksCruciform + resultCount: 4 + +- type: CP14Recipe + id: CP14FloorTileBirchWoodplanksStairs + tag: CP14RecipeWorkbench + craftTime: 1 + requirements: + - !type:StackResource + stack: CP14BirchWoodenPlanks + count: 1 + result: CP14FloorTileBirchWoodplanksStairs resultCount: 4 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Stacks/floor_tile_stacks.yml b/Resources/Prototypes/_CP14/Stacks/floor_tile_stacks.yml index 7e0d19b7e2..043f63fc30 100644 --- a/Resources/Prototypes/_CP14/Stacks/floor_tile_stacks.yml +++ b/Resources/Prototypes/_CP14/Stacks/floor_tile_stacks.yml @@ -73,4 +73,32 @@ name: square carved stonebricks spawn: CP14FloorTileStonebricksSquareCarved icon: { sprite: _CP14/Objects/Tile/tile.rsi, state: stonebrick_square_carved } + maxCount: 30 + +- type: stack + id: CP14FloorTileBirchWoodplanks + name: birch woodplanks + spawn: CP14FloorTileOakWoodplanks + icon: { sprite: _CP14/Objects/Tile/tile.rsi, state: birch_woodplanks } + maxCount: 30 + +- type: stack + id: CP14FloorTileBirchWoodplanksBig + name: birch big woodplanks + spawn: CP14FloorTileBirchWoodplanksBig + icon: { sprite: _CP14/Objects/Tile/tile.rsi, state: birch_woodplanks_big } + maxCount: 30 + +- type: stack + id: CP14FloorTileBirchWoodplanksCruciform + name: birch cruciform woodplanks + spawn: CP14FloorTileBirchWoodplanksCruciform + icon: { sprite: _CP14/Objects/Tile/tile.rsi, state: birch_woodplanks_cruciform } + maxCount: 30 + +- type: stack + id: CP14FloorTileBirchWoodplanksStairs + name: birch stairs woodplanks + spawn: CP14FloorTileBirchWoodplanksStairs + icon: { sprite: _CP14/Objects/Tile/tile.rsi, state: birch_woodplanks_stairways } maxCount: 30 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Stacks/materials.yml b/Resources/Prototypes/_CP14/Stacks/materials.yml index 0ed9e839bb..659eec30bc 100644 --- a/Resources/Prototypes/_CP14/Stacks/materials.yml +++ b/Resources/Prototypes/_CP14/Stacks/materials.yml @@ -26,6 +26,20 @@ icon: { sprite: _CP14/Objects/Materials/wood.rsi, state: planks_2 } maxCount: 20 +- type: stack + id: CP14BirchWoodenPlanks + name: cp14-stack-wood-planks-birch + spawn: CP14BirchWoodenPlanks1 + icon: { sprite: _CP14/Objects/Materials/wood_birch.rsi, state: planks_2 } + maxCount: 20 + +- type: stack + id: CP14LucensWoodenPlanks + name: cp14-material-lucens-planks + spawn: CP14LucensWoodenPlanks1 + icon: { sprite: _CP14/Objects/Materials/wood_lucens.rsi, state: planks_2 } + maxCount: 20 + - type: stack id: CP14Nail name: cp14-stack-nails @@ -68,13 +82,6 @@ icon: { sprite: _CP14/Objects/Materials/mithril_bar.rsi, state: bar_2 } maxCount: 10 -- type: stack - id: CP14LucensWoodenPlanks - name: cp14-material-lucens-planks - spawn: CP14LucensWoodenPlanks1 - icon: { sprite: _CP14/Objects/Materials/lucens_wood.rsi, state: planks_2 } - maxCount: 20 - - type: stack id: CP14GlassSheet name: cp14-stack-glass-sheet diff --git a/Resources/Prototypes/_CP14/Stacks/stack_groups.yml b/Resources/Prototypes/_CP14/Stacks/stack_groups.yml new file mode 100644 index 0000000000..78c8695116 --- /dev/null +++ b/Resources/Prototypes/_CP14/Stacks/stack_groups.yml @@ -0,0 +1,7 @@ +- type: CP14StackGroup + id: WoodenPlanks + name: cp14-stack-group-wooden-planks-any + stacks: + - CP14WoodenPlanks + - CP14BirchWoodenPlanks + - CP14LucensWoodenPlanks \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Tiles/woodplanks.yml b/Resources/Prototypes/_CP14/Tiles/woodplanks.yml index 9a87c98832..3c158bf764 100644 --- a/Resources/Prototypes/_CP14/Tiles/woodplanks.yml +++ b/Resources/Prototypes/_CP14/Tiles/woodplanks.yml @@ -276,7 +276,7 @@ baseTurf: CP14FloorFoundation isSubfloor: false deconstructTools: [ Prying ] - itemDrop: CP14WoodenPlanks1 + itemDrop: CP14FloorTileBirchWoodplanks footstepSounds: collection: FootstepWood heatCapacity: 10000 @@ -307,7 +307,7 @@ baseTurf: CP14FloorFoundation isSubfloor: false deconstructTools: [ Prying ] - itemDrop: CP14WoodenPlanks1 + itemDrop: CP14FloorTileBirchWoodplanksBig footstepSounds: collection: FootstepWood heatCapacity: 10000 @@ -338,7 +338,7 @@ baseTurf: CP14FloorFoundation isSubfloor: false deconstructTools: [ Prying ] - itemDrop: CP14WoodenPlanks1 + itemDrop: CP14FloorTileBirchWoodplanksCruciform footstepSounds: collection: FootstepWood heatCapacity: 10000 @@ -369,7 +369,7 @@ baseTurf: CP14FloorFoundation isSubfloor: false deconstructTools: [ Prying ] - itemDrop: CP14WoodenPlanks1 + itemDrop: CP14FloorTileBirchWoodplanksStairs footstepSounds: collection: FootstepWood heatCapacity: 10000 diff --git a/Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/log.png b/Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/log.png new file mode 100644 index 0000000000000000000000000000000000000000..48a65909c032bd24e199c5cb91ca8c724a5ea0ea GIT binary patch literal 803 zcmV+;1Kj+HP)Px%-AP12R9J=Wm0w6xaTLctmh?8=o&QQV$DMPdmufb22{J;(!5)Vi>{al!$FRTz zksc)?DkyrfSmKivlk`E9Xtd@_B%6Q6+A^o&-DW)m!tKHC#kD&U6Y62#m*2hToZmU$ z-}iU!xllq0B^(3O&mPPFlz`vom7m7ZkDek)Ioe&0JfF>G2Vi(~jP>{z+FgzU6*PNb==z`x z2eQ3=w}eG(K+5c~99_fH<;H3esj033Krk5abh!!6&eQ4cz-F@(i$&EHK+5a^+I>)9 z7`i?vSC{Xp@A}3I%*`)gHW|6n+6ut<{RfQP8ahb6yNh5jsPVB_G_OIe7LmF61qON@ zT)j40P)}0mbh~P}d83bD zU`8|UwASe_b+oehCd|2d0f5Z+Gq~DZR8>_Ii$yUAm3;gZ!yr_udlShN*<6lnE{D@` z5r9VBKARg7ftL}!W`0mxrN15jyfIQ#fkZMzcdr8gPk#>p!N3fyUA?>x1`F7S!V%8a z)#lmECZnoKBAHcfiXy+G=pah3tx(t0jHkbcU|^C&GOKoYBAG&xasVm;#TN=kXmhp@ z3P;pjo9Qh=;Rth!?~m34!N3fj{vOh6D+RtpG6jGjR3J$?mZNJ3dL5hTE!vzdv^iU_ zT12(^icLTTc}`_eToxb;^&joYH>lYE0EUj^U6xRaz#h}7bu&(u4Vvs_H}vp325HsaZxnU;ZvMs h!4gU+p@jbqKLKQPx%yGcYrR9J=Wl}|{MVI0RlnMD`p-f+%pVw*ZEG?*7a{j>Bib-o5gJFT6;UV=WXs^CLMzIg%@6)=Y5{< z=l6a7yiitIWtH{6Yge(3p}t;4ywAD400g6JdEY;IbYB5DH8@;!u2QNjX5QV^iLOQm zz_M>ubSWKn3k~%KnoLG?H997pQ#^D|@5meqBp}QI%;pwO4_`!*G)&yO$wndpz@&4E zhI#{`aAeEaoq*&GXm35DTsnV-l|YbCIKrIUi>Ml)$z%jzB@o;)E*ECIKn0f|dvcTU z5Ess!1z;nQP^)*yGJd~L1r-vY@M|B5wz1oH^MH2eHtgH8cO?2LMw96<+G-7kg9n&> z@sg*{T-Z-qX+3t7<85usxLnw6c9irF(&;qGR0@D(DuuRMLns`fyQ`D^6-kyupBWtJ zr>;gj^4h(4y<`F%c8j{}Mckr_N#_)?_&PRgyV_?qw_rB605Icnso!^Zb@KJ&dn{HH z5MW{UF`;lWFYSulhU|3{OCih}>J1F__u-Ib?%aC-fZy-K@Am=VkYyaQoM!?c5A<-t zSiR+V7fe8;Fz;EyW^K=d0JwHz3`tw18Ve8sJ?~kfrt%vWs|kH$Gjd}y02Zr>#h|xz z0wRSveJ%5zrGnK6jgC*Kcg0E|sKVCiYXQ(_jN_{xiq26m0RfSjOo_$U)kFXS!6=fX zL6S7QU047%k74!+5XN3l0C}KCecv`fE=WcSz|||486BShz%}~{Nn54D2~E2h&l%POm^e?mV2yN?}&_Lyb400000NkvXXu0mjfp?O*U literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/log_3.png b/Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/log_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1049ddfdb8ddf7f2502e97cc5b4960aa06060fcd GIT binary patch literal 796 zcmV+%1LOROP)Px%)=5M`R9J=WlwU|wVHn1LmJpFn=Qfqxn44>siD63KBoZbJ#T$oUd6^R4buB^( z(X|&L5(Hgjk>Qmn6Y@gskAIc}jh1trlc=R`$B{u->FGkxSMy9u3A)*Hb-wrezV~_F z=RACnL=s6P@t=`$)Qba89;yKK*Kg>0G<)mRy|v!{!Gv5#7N8L|c^imCBZMWH#ieBc z+FD!0nb^h#k!XaG(eZ>LjwE33gm#;i#ieDMybYqJi2|tgcnF2&6N*UvTf)~9fw-F8 zW{q37wYCrn%?nb^4S*q^50}%Cuy;ZM?YC~Kzc;bltk`W+!^`Z{NK~XGc4o9qj-j1CqRg(P$9l0IO^3$Sa?9p^y6oB}MK# zbu~q#WtnglyGYA2k$zI;Q}6@dw@X4LI1 zsxDVB{9=r`_d#6Fd?x)fd6m^!D|Wo0I)V(tQQ=_7A2cddDaI zGh%X$9Cm`Wy0$L%4nv$!fCkM4fXBWaJDrX^L3R|PL!;SSr(P^Rt2**d>l{fUi6oNv am-q>@T}D)juC3z$0000Px$C`m*?R9J=Wld)>TP#8v!(4h!Iw?a1~(&D60QIOI_i1-3|hCW5<Mxk)2Ve7V*BOBxq1<>fT-e`Y^&VgYHf^xH`al9+jm6sk8XpGx5|F`8xZlRU z1O&K{)woEU+hF)@yBv>rZTAC#_X;?{xm#^#%@Dk?9M8X?kkzOdI?M6Me$l@>KjS~IuMYH!)c^nh M07*qoM6N<$g0w`Ur~m)} literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/planks_2.png b/Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/planks_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6e4ad918573fa7e8c710788838c5526a83939b2c GIT binary patch literal 527 zcmV+q0`UEbP)Px$$w@>(R9J=Wl)p;?VHn3hK~xBb4nY*5lvIKZb`;zom_sN*LsS2QTmL{~OG~Xa zHP#kE&}PsO6bey8g+&sD5Rn`Rx?DrOZ=Uzd(x&b^y}Wn#e!kE5eVzkfzI^?6_58)5 zOG(wR+dn)lSa`jE0S+nws(KB8<%I-eQzHyTCt!8UXf@H51l+&?4>!-!L@u{M{`^XE zJ4&DxT-9q9Fd*UUYde-Rer3Q3EMTqR?ah5&-|{@YzISH8tzr@L!_70=VhX?l9vuwH zEBcXvb}AOJYm2EbaMc7><6&lI$0=Uiqt_dT=mS>+Zs2CPTg7TTOh_4!*HPHbdnaHA zPHQnj%76p|pQ9zg){2|KPJLh+LjjIPhABP10Fc&V%*>9PVr~a)PUZWZ<`J|_Ag#qH zT$klKyON<&x|5Zh9i4D+SaiH&VbBX~Ye26zD8E$Yx^P{Fy<@T~nIBf1_XG=B9?s8A z8;Qw?1SKXT0FD(8MJK3~?kuTzfgKG9697toA9}qZ_glessk94rH6XNn-Io9W literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/planks_3.png b/Resources/Textures/_CP14/Objects/Materials/wood_birch.rsi/planks_3.png new file mode 100644 index 0000000000000000000000000000000000000000..909993570afc8224e29d855eeffcaabc523b6feb GIT binary patch literal 623 zcmV-#0+9WQP)Px%DM>^@R9J=Wm9a}3VH}2^fP+MYLk@}+lzP-2g3t>Jfe0d{D1t-j;9t=0{S!KM z=+dt3+NIr!Aask+fJ5m)U80gog(`t?nBi`{4)OQ(lDqG_iv-#s?{tKG_q^|WZ*nl! zSpQh1QQc^Fy%J}AzW?>RkufnUux*v;Tt@&rdHj%j5AJfuxeqVi#wHWDZomWvI6t{m zCZ0WiMZ<4qvW9M85Zt+rQeZ&AU%z~BykFr4bcqEv2!8kG6Wwl?)88EcW~RzOdK0+~ zm=a6P=O>p`cQycS!1X?`X%pH8iX@iWb%~2?BGrH{v1pjY0+w@Gn@|R_z?)SUYkE@M zK+^sNrxPblCc%S7l>q@e3$wI-T`91)x|pij1TMOXr8!$YQq{m_)#bQ(fn0CzZP9L> zDfdSQhkV}ma}$f%>dr>W=+d0ciaU?Dx`_YnCqWp+4Zm5M2*QYqt1bXR81;;N{KEF$ zR&LcrHX&eZdQt^C{!mxvO8_;`jn|eP1zKBn08(JxCfcpDR6|+d!7vTKSyDg4n&)P| zOaxqX6G?D?EB)ZU29m0IZagzpCJ1{&dHSfLHX-1ngF}9twzbb#zGni9GXDvkg<0&I zgL#|KC$1a8+6JVByiFt%>vmuQ8x4pF=xsnAM;17%l_KC=1ESsaN^D!bH(3&#wS!^6 zqTIJ(5JuQmnH6_lyMx<+MTHK^CV-KFhcX~0jG%`Cv*S+002ov JPDHLkV1kRu8sPu{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/log.png b/Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/log.png similarity index 100% rename from Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/log.png rename to Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/log.png diff --git a/Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/log_2.png b/Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/log_2.png similarity index 100% rename from Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/log_2.png rename to Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/log_2.png diff --git a/Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/log_3.png b/Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/log_3.png similarity index 100% rename from Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/log_3.png rename to Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/log_3.png diff --git a/Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/meta.json b/Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/meta.json similarity index 100% rename from Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/meta.json rename to Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/meta.json diff --git a/Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/planks.png b/Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/planks.png similarity index 100% rename from Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/planks.png rename to Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/planks.png diff --git a/Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/planks_2.png b/Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/planks_2.png similarity index 100% rename from Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/planks_2.png rename to Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/planks_2.png diff --git a/Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/planks_3.png b/Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/planks_3.png similarity index 100% rename from Resources/Textures/_CP14/Objects/Materials/lucens_wood.rsi/planks_3.png rename to Resources/Textures/_CP14/Objects/Materials/wood_lucens.rsi/planks_3.png diff --git a/Resources/Textures/_CP14/Objects/Tile/tile.rsi/birch_woodplanks.png b/Resources/Textures/_CP14/Objects/Tile/tile.rsi/birch_woodplanks.png new file mode 100644 index 0000000000000000000000000000000000000000..902df17e2afb940e1d9da9bf306ef722064c8bfa GIT binary patch literal 509 zcmVPx$w@E}nR9J=Wl|N6yP!z=vNre_71PlX2!yt(R#KAbYn7A;Rxce>KS#|U?IJ&zj zgC-1OLKqB9Bq@Vwr6vl55@-ueaM1T``D2Te!Pwu@_T~2W-t*4w13WxD{yRP=LFXrj zqcSgIH?sj%H^2oL0HF8Dcm%38M7!Gu0JJ-w*VBtz+x)fx$GPp1lOm_lQhK<4sQ>s4 z#x6-FouC~j;}JC8I#6{3nl_*@(MS+wUPNwh3mm%wRU4x5u7DS0WK)TJ^;tgqbpgB} zo1Vn!K~fU{P$<U_iyC#QNn^^qh?m#?Vg>MmjF!?v zEF7Xq?I1C(DZm97sJdZU-&|h<0Ly-pSTYrbQf+YsiWPz0$HF11hS?irtymGhlyXsl z{hc&4Z2*?_Te>4%ll`7LArjp2fEB9;ZtkBZ-XVT*bqWY%8jcRKs7uWWe-M=b;Oefr z3Px%Gf6~2R9J=Wma%TrP!xtgkQ3kQ%CTJ1p;2IH7!Z+|iV!0M^cff#k$40~9swSL zN1%)hfLe7+1yZu4m9ju1SE}Qrk-}ik#dgx`5(XCki*N4r&H3*+|NW1lLWK(d88^ya zc=K{^kt8z!l&S-eBr`Ma^+)V>Z!?Z!GpAjLaTIfKJmkaIfi=cW+v4jNPZrvBa)Gt$ z5C)zZ7a_rws`KpeJ@y`T7Hbm-1CMbOn=!y-I%hJS=ibYnUdBRXv#~*EyZQF27|Tb< z67W4*TR|E)xg_*Gv!+#z!Rb!`cG^v}s+qM(a%uJ-91m?F>;&HL9|5r0*s%V|$1mTP z=FZM9tb49S;Nkr{KtBB0~<3WudiIL#x327J|jhXxAw%g_S_BKUz8e>8KB++QcNir+F1y&7c*U7owIEo1a5A8Z=*I}pKT)9W~g@IRkgRB{l zS^`GlQu9?Vn7s{3)d_v?-!xD(7)VV<=CVd)Ncib9YgB6!SYNy*htgRAi5v3m_&!0Y6>gQ71G9x-Wzo0*i-VH`SUad_4u=evZ*n(H6PyyfGii00000NkvXXu0mjfUnwA^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Tile/tile.rsi/birch_woodplanks_cruciform.png b/Resources/Textures/_CP14/Objects/Tile/tile.rsi/birch_woodplanks_cruciform.png new file mode 100644 index 0000000000000000000000000000000000000000..f7453be84a970b88cd00931e451dce1980be47c9 GIT binary patch literal 637 zcmV-@0)qXCP)Px%H%UZ6R9J=WmOpRPP!z>~NQn}sI91XFsa89sB1l0ILLI_@#A4Xk7&0<4Gqdpl z_yoYlj>OU|Y^@MOg&L_v=|WH<(cr2HsS_nq7~JdH@t-&m5{u7b`@QFP&%NioYeS3} zG5#}dEL!mT#giGpFXInq#sGlI&L&DK!PjP+-O9FWy^P8A<(p5TF%n^uZ(lu|$$e>S z0|0Y0K}jbuM-zJ+jc)ofM%=fS)&!Q033eraPPKe zksME5Yf77iccCN09rpT-mi2Dq{%p&%i{-k*xNtm;r$(& ztuDKj?ZA>NsRVob$6+DD3FOp_$AmdGLq5A^8!o42$f>x@2*I)}Mc{mJiB?<(+LX37 zXtug^dVK&oy*@^N=rL+BuL5u@e-kB@xRT{!H3B&`gE^W|%&Q)^3-nsq)ttOlX#2hw ziGV;pLVk#HR97Z&ErAzOUTN1NjdR`{PZu_(Py$+U-IhR1HQ#0%2PdvJEpQ&ml?i~? z%@SBLd-~`u=4j%ofRJ=Hs~{}=A*t)tnO`@Hn&FqDPGA#?L;$Ssd8BAQ2n!w~Mht+z X^dAfwNqXJ800000NkvXXu0mjf&D$6d literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Tile/tile.rsi/birch_woodplanks_stairways.png b/Resources/Textures/_CP14/Objects/Tile/tile.rsi/birch_woodplanks_stairways.png new file mode 100644 index 0000000000000000000000000000000000000000..7600eddec5793f8eafc640c82a3d9913584469a8 GIT binary patch literal 548 zcmV+<0^9wGP)Px$-bqA3R9J=WmAy*CP#A_Ep;BuwYSf`(rv?-P4yB+D9jn*iWr!D|ci}F$*hT1| zL+Kz!6yj8{gSBd<#$urkdJajNKh2;+-ld$=lYB2v-tRk*DpjgK)G=(1qkuga0!RY(U`Q^Tk-rVI<)Q;nSe!d(b)NTrZ9o(~J--2v zB!VPJi07gdX`r~WK)q>EDe2Uk7KWY&f+;vnbbI||1~gUS{^12pRVc13U|MZVtL@4} zkb<)EBLe{QGt&Ur?;n7FCWM?+0P0OExdE@1mu7*lOhi$Lqeuf!uWzok{r-WbDw0H{ zq>nu#GLe`-x7U}SAU8GXHu8;GeCs&5_^|-mHSR_tca6D&^(Ac2_x_8-RkQ1k41GF@FY0L_t(oh3%HjZks?9g}=gJupO7U(AtvYMWt@~czu%e{n|}M zkZc#%L6mqfLy`r?1^+?qMZ4fg2r)nR9?qP(Gti<%i+_wabpxjE?F)d_F#s?PQRz=o z1%TY72XnpPu{ORq*Ew}>U;54+Su{rK9-M|ehM8>ci8|C0SSOpx_n>PrBSIgHNVdDA3+Mbi0o1j2ZIvd<4fOhfDvSCtSTmt?i+|H1?1BxO%LJavu+QI>-|j2~(V zG`bHIcY!iat#Q%5Ex}*UorH}DY)RZV8MlwR;@09MBUz%)dqKS>n; za+4m-^@8Wx_~KIM)V<&Kod>dLjy@Ri@$D;CiGWNM>tsU^#(#X8yvJLtaP2-p7&Cr1 z0NB=%xJUpXi{|^cC(jS}7OOmfRyWeGa*TWA&CblGyAmkEHo}W`F(G;}`MC&};@UFL4LX?yM zD!wR`=$ai&Lp$820DvJx9%$$Ghu(&nZ0?CV)Dl=Ho67f~YcV52AB;$LyW_K??Y#ii z-ElL4!ysiPenhz^zWKFz&Xa5bC4VVVm~w1N{3!QCaKRH-6L9T5Lf0^az+0@2JRx*# zuS8KN#->E*8na)~?F0`0+z&$FuNPF7Z^f~h*NH5e<45_KQC_mE36$5eP~yA)^Q000 z`d~yB&2vT4`E3Nkczw3d4?;{s>=Rd&5FnRiwdw!C1LY)TPdvSJP6knygFB3$Y6&#D z4-|KSGS01W(Y`CeUoV}6jR@>WJT@73h`Qu0TC@Q81E0YZ>Sbllod5s;07*qoM6N<$ Ef=oK~8vpL4k=0m)rcUK&&}M!pXM zQG*m^-)j409tSu%8qKBc$jFx{48E2#JdcF*$tc!sYs=9sRkO@Q|8lEx?OQVUjzzUY z#pMx=5!z!Y4{{8OMa1OI%h|liqRLigR0utG8uf6&pdE$C_3KZ6R>Qe71Mg+@Z1rLg z%>kIEH=W=6)SgbfE8YbDDaMa4n!atnxxKF#t9VT}zaJu~FeD{3eS;%6kYsvKW^D0bTg#QKN z(k7C`*lXT_zE$UugYYOa-hRs^_1@tr{=p>g;fNO44rW)WJ4ny{!v}oOr*+3WBGTE? z)zxZL!I%gmd8=oW8F=}$Zu_i*<4HkW6OtwQ@w+eTb& zI-euDez|^{)sEJU>`)NG0DWunZQVxa(?;RKcq!nU@~U@}S!=OkoVKbCijUC&DIL__ z7j-AOxH79zfY7JHRR3-4p04pnvk8YJOF$_=^cuN;YRjR}5|rxCXDuDGET6l6DKPLx zeNK8_ytxC>$%wU7Btd)u((ejUIE;Wv=M5JHs35=Li4;UVp{ zdb}yeA3peX;DUxSW*v>=4+U)!hx~KLSXtd^Qf`q~vA6#?Gs&}Y7fo{mf7a9#*8KLZ zsj>SBoPE3UQz8)DaAK8k>quEL-QufiPf7Lg_aaV8Tvj<5zTfJ6JNe=CYow5r&fUnKfd4$=tcg* znJ6M9(mqHM$&JG@F=bQ9PO&lsq&_8Yyw_;2!AmOwS9#s@-cHV#CoNEjW_9Lb{mr zh!9yZ_&c7o&OZ|>n22r}!5I|AKg-d3$C=|^Cm*Vfug@O9AP~hTul3DIR`_@@TP~2e z2cySUL*FhK!TcQA$KLmL!^tI;f?FF;+cE<|&EnS3J0R{yjw|RLwP8|lbhAse%zfd? zHW~FMVCgfBEeyY18KphE>WIBG;io=EMm5~{t^YN3_$m3Iu+0zOV1pL?v)iX^9T!?K z&L%(8ic%^WK{7s1+6@|@J8_REt{DwpI4_u4{hOO3)2uTD4Qb)v#Qj`cOve_%E}i}T zJ4z%6NpO&Qs>C;@Mxkiu%zP8aU(Ao5>^+A<*@!su)u6F&=5->HSU-ZCpYskg%Y+@x zWy}$QLy|7rrKlA87E0QUUE&34y#GUk0+OI?g>Cx&D)BAY!Gd23Y1niepC@?ftFBi4 z=Bx$sM9v3hs2Tp~dS_ex0YaE3B|rjIv?+s^8g#o3k*prsq1{tkjtBQ z@4*%C`m5L{zLA4LMDox9Qr_sPLq;}=KjG(}fUbrfV6IE|!^~j(dW&S04df=rxW7jl z)h6%iMoXPLosn@=OXEh073z`>B*Z)jgYBl{sYLDh1kv2ub}6uoDK!oDf#3sOg__Y) z594rPI~VFl)z>nYn%!rU563+3^1yOdBMI%a=l@VC*zgd_Zw!LdY686+a{&!yWgX)7 z@Ex+mr5DS-Px(8+D~K9%-uf`dhFTq{46u}rhh-cr6p^{V3PXi9QyWd>&Dka@+e`p! z6LvA?%skvyqISS6n0`6KmrfQ23QimEN3xp9P>l+bXSH$HPU5$TQ(9DDz6@-aFX0}I zisgWBpfS-V%ns7sczvIv^wZ)sP*p^}modmhn_&xLd=dB$hQn(qNv0=|=T z&3u9}1WYJaix>&-03G;KN)|*f{9euUVzkUB?c!bqqG&Ay?765KRRlfSGFYJe>7DV!YPS#gM zs|>Q`NYcBbOH9iIt>FM1R?*p+7+N#ui;-+U964Dt#6v&x{}>Zi6(-$G@U3=)LVBj4 zo;Oog6C8=k>7(*zK2Vc*IVMFsBYBY4-ECKa_PJ=ata|Y=9lSQA`b{H8)hft5O>K&B zSQ=Dh|5o3vb)VvHe5m5&*ylr!-fz7ypG$SREwxL&5n zB@(d{ON;655EzMBGqu50nd|RNuW+=a4|cEtD?FUes%PxBAfc_k9!2O4p-!MP8GQ&4Q-X7XpcQ5sGXHzfqaxy9tK881O{b zO5~hr2e2sRC2~iOqd$85sbp|pxk|nG1WfzkXG;+|xMt(rFL6M5%s7)iQW^mX@d~TP zWZi<8?X38;Eonvgu>FT}zxW?+gz{3?RDr)#C@+567UHJKW2^ zo^}N#Oob6GkdWsLdDxrIaQY}`Z&tb)NmK4yU4#%C3Aku7f6A5_bauwtD5`7^SzW_5 zlt{g1NFyL;T#_!H;&B`PyX8|LK;gGR6SiMqQ{0-EoZQWgTKnxo zu1~CsC%_0oRh273z6Z4q!0+|fqPJyQ!u?G6&4#0&D^SgTJm&eBnwSTuDvJU=l0J^4;a+b>p*lEu=@!HU_Gt%qBRb^pJ;(KjTJI>I@O^a#M?Lx4ln zjkIDCCl$sXm{y9`9w+E2(CO7)#{%gd@)&m53orJtU*)M&F53C4N^x98i|os5(xoqG z;7EjDGa6h17khjxz-8OT^YV(mc3Ms^r%@uXHu?JboIEg9Ah6Lwc`#;l#N24nzt*SCAUg!2nCmSWXGWFU9aUJ>N@Gob_(ix;G&Zn?Yms&B;zR5#QF(jj-S|Zc^HWtj z>u%ray))9w31G_433no?*+B(nx;K2xHnv z6guNr3kflPLW;VJ)V(&JH6R#D7S+QUJmor>qMtct?p{u9nC3ezuM%F)09)cuGlUMB-5;E&YvvxKjiLBA{jYayd|k5bQX z2q#Yqug`CK9knG*0TPar3z8DSU6iD5Fw2+>cElQpZ0eBdEA?amEzIIHUZvueB{Arv zMk~Wb=+}e!srni6SB{Oi#9YB3y!NE3g#M}*!L;hL&RhJ}zwl|?;Zg!;x#RgSdto6L zyz(Nk&uSfDv8_V95stt5<_;<6^&f*F!mqO5F^QFHrvt*69j0)!Y!aQ-%=$NOc+OSc z*Cp)*Y)}VIW>uQ=-=3dA(%%Qb2Fk!)Q@da~!X34?r3vNy1pB|c_jH6P=jJ-`;f)8< z=kDJ3ul)}b(SYWJ$At`*ka4lhu7?fd19GQ0OUw$ZsW~9VP=Zyd!hii}7wIGK%9*}l zZ<*3UUklYi2x}^A=t3L}aVS6Pf%Qjls38rgcpR);!BDTzp=98%EG@!6$6!?{;-PoQ zvea|S3VYUiaP+7Gg%Q>ezuzSB1vMt9m|=1~aq_$(zIqq7orfJ4gl? z7jr+|ZV*M>Jfwqe5KxuyPgN5}0@cL|n#3(6gJ=N@r~8R^CE5b*Ch^-(Hs^~{Y5vLP zY>X~k9==dT13)8&XP1?3hvH&d6~tJ->oCO3j#}*#Bo*c2A=Su@l?AMBCyc4gxB6{K zHEpvfdgoa9Nl|;8{FO`C+G!_X?v!#YAv|G#yS!waP-J#2hIN;i@%E9lp+E|!quR%)t9lq*{rR9dz_kHScy!CXQQX?MC_*;wWdk4%+48h_ z02zu(T8%=Fs7AAV0|gn-{!L-LZ7@*^*S6q@jOy1a^-&#=Al}xgqeyt33e*k;HSo=_ zOfjLysvRO9P6Dv9<#0Pdqt5vTT8!5h0eR4unDW@QYOc3BH3fClOQ9T1>v~ZRz?*n? zC3ISO37)kVY0r=epwE_G3pJ{AXbNyuz8v0|XcwB#AK3g2d8?^ocWT8hyC{8Ya_cR^ zpTpbvB>DZcOtXNkW%w)ZK%eh^f8qN=tEv*?wXl!`huC93+p)}h?FGSf z>N+M{iyx32S>EzKqQdI7y!NfoFHk_e67S_`CmjRm({20fE7RcIjNYv5MQEIfd{>Ek zyEZO!j09HE))xq1=|dvyhs8uG)z$%V>%Ox^;H6|C96%13MDl3zvba$6X)4WBfz{wA zhUl2f#X;oO&uq4V-x1wYi%3%C9;x-}<3B;OmuwzblL!)RT{e%xFKM_mitx>;W?Bdw zqHY@1vqvw}EciX?LxWVr?gIAFZIRiCu%3+pC5r_ZjZVhaHl2*>=pNUF#M^~!!>O^)DQw{F zlNKzB*TXoxQCGJQ!a2u|D^Vo_sip5{RS&lPaQA&)I}~r(I;Np~Jl?kCg%No&%$wBK zl=ap(M`z`F1x)uSF`BwBSet`th&Z_2F{czKTNFx?7`%_5$AI_vE50}GR857uO+H;+cc!+l#}#t2n{ zt1hduDg*Ahbq^^INHTXL>I2HYiRWb@;i?06eKmQ$l=jXtByzb%;og$Nh&3ErWZs|9tz?>C@KN-Ng77&y#s34iwv}2KkZw&31DJc+as@W>MOQc>)iv= zO^ss2>Z60tdZR5;N4-%H_a3D_ zM~Oc6tGcZq1T$V%6x9DqtJdY;pDrQ)h|p-~w|d_nKN&u(RYXtWbl!=CWn6$3)U7W3 z^cO_FU9?}RC!-EUT7%e)MDt|_tLa4ZiNQm?6D{zTcgLG`U*lBX&1*d}vgu%<@tulxvim43A)>v6udihg7RJDj{&5z0qNv>zS$uk8jG zv?})Z4z_98I(x|8zjs*`-XbN#Pr1-OTF;lJY%?vu;@8zM|JV^aZ)2w!lu=zL?ZrO8 zp10-pP)=A~pb`NEM!-516vCz{xI^H%W@GCxd>Pg>;}jFjWn!7WTv-}PpSpbPWKWa* z0Ba|mr%9r0C4%5(<*F9=4|>UYp8=tXM=lU=x#vcTo_k;S>E4|6AvlN#JRo2=MEQ21 zt|Rai$RxK+c-~%#@l6tHdi}jN%NIL#990`3WrERGf~_AR_g$_e?a6(>1Vc$eJ#v}l zRWOWv(QqN<&%mP-oa)p5e;F(KADfv%-98|i8;Mes0Yklhw(Me1+aF9k;G{#RF?F)< zM13bMNmBpJx5LW$<>d>{G7I~ldL4a$<55@Ak2>_O;tH(&M7z5y0=VKjunbLol{rRo zIi(+EoQm*A43-(#=fR7~k^h8m{B?d$1qEnIQe^ZEnq>{8^#M!^H+c&xy9I{X-^;`^ zQmq!1BaA-YqDbn!H~koSzG>ahinkQA_hI2y~;nj(0YY?#b}X;)@gFOJg^ z;sc<`rdsCThKQuSD9iv+|L3;!LTSU^L;13IdUo1S+fab9q^Dv)9C>!M_v^NW+{7Wf z-j-bDc&V-_b@P2x79E>`P8_9yi)U4m`l`AY@1K9bLNEtT2-(f>+~shd6L5+E z3toMn;HV?&exh}V#b{|0=Yu2YI4$#r#9wKBU^gq~ysJ9!8)wbjH516(z)slxeZ{v= zz`!ZDk-J#e;b5*hjM;i8{&oczs&nx4C1<+3ld&uyh7jPenIV)zflmnj0XfBQCN8m# zCP}|&c;x}EGp+3AIKu!fHJnQAuC@wQJz3Bv`fE&S41Oxq`s;JrrH|t)b+ujnHd`a) z5yh~1sbR};c!WfEP?Yef332{#pGHR!F|KF5Kt{6$X9Q_mP=LlRG6jS9HBgtF)zZ?n zh9gr9X>56g54SCM)Lsmhm!fCM=2>N7_=7~NBxqb_fq^10sg!Np;rvQ{)1UejV{Hz; zl8ilG@-D94*}TVPB1$F&M8CZFkG3;hn$2#179srBtQt>KZhbiFqBYxA8>a{wSl+mk z!9~^fZJV(fEoHyUShmhSTdMd>w^#E{pZL;Q{wb7l0qRVz1- zeZvwO{aQ7e_^u!iX=k*aX`RVV-K&d$_X_04g>5Fu6^e;bo>}CIrfdlu7$H2|gKsrb ztc7?1_*FqDEun)})F|FvYehPxenMJUBc0@byM`N6uPVI=ZS6OTr_SdciG(?Rq6Jsj z`gtzZYDad?>=8d6{eBDCa06ZO;|q`>=`QsV?fTQ$%`-aOKJ~(F<~?^7bFEk$ZCR~u zKwptAK3I|W$5Zfwim6D2Zsr4ruLIq$99QqvL$}q?1{bEz-pgY{i%nunuW=4W&%|_@ zpwhoJ4~MqSfa*GYP@*a}i2;b)QK#;7L+;;RLC){dhCnCb3Z<%+tBTpzoAw@9jA~h4 zB-i6cJS%?VIV;!nFX<6h1YcdKV|=-r1K$w%T^Xybo)T%6)MRw;In^XU*S{P?mFzD{GBL6qvT9*$4dnORX^defoQ39RAKJ#2v&IcC-3-X9Mls)MEs z@IG#L*eg*Yb_mdc$}Vu@#p8NO}@Wm=XE6u>cf(R-^a$HmgS4E28}nL+WyA8CysiIXZC?-PGsAAU5{h zA6qc4rDK=jn^~tkoV0*zL21hP=aA!IQXP;u-ww%u z3pGF&C=D~al83~;P|W_d&V+2uoq2R=5ZQJk#{-OL;q_<&l+ zU#HNsDFlqW;K)sc>r5E=`6~T|ZUFryer+t+kS^+SBS8O}8)F(!Q-&>y6bI{&wR~+m ze%Y~mT_&*hi8qlJk0i&{jdV_3FTN%>2wD9m@31cTyS5LoTem-m2bNsFs%=g#iVV|Q z-IiHkpVjQxpulsLF7dq^BD9@nosCFCQyftv$q29o#67pR;?Q3uDlY2g<@tm{vJ0U#3S<|Jt?#Jj%Nk}L~N zzJ#mwcsS@@@MbHCwYa>b*C@cn{Jd@Z;rw7FcoX7!6cdm1RXo(?vNZ%-LLQqN3{?7` z6fVk#0~!ESbhJ-TV{*Tb1#09G{$@hPsK1g}xMdT#`FJhuNkA@VPRs4!XI5S}H|Y8* z24^2YHk6z0ZkC_}0B8WEd2PEc? zvw`z&H-h=rQ!drEPcO$GGQvRLcKTGqf$DmApaz8W+2*FCtc-~`@EGC4yNSu%*zek3 zqkj=rwtPWEyE(44bx&>~;m{>S{{k)=_iv`Xn=!{&!(lV?B@kqDSn;^5Uy$U_+3q1s zd3+|pZ`8g3R0Nkgxh{z@c50vs2%>2iX_djyUD_@kz8xGInSX2=S1<1&DKRx%rJmI~BI)rOyLZP{c_Q&ZhskXjEpp{vpjy2T+Vs{6r5| z-t8~U>%E2QByGwumRtXTrRqCj3&fWG2c`zUaGL9aPIoraBkn1CGFlm{0`75Q1I`do z4k@~2jGtrzRmEUch|SrKQG4Hb&=oFx16FU@n&5!*%6)A+?^zR*cJM$74l|s5?*8N$ z#fdN6{-}-~CLS+M`f140;>ds4?89yA^yehKUymnFN9R^k@%I<-Lcq;L!8)tOw$lO` zFQBx7?kYJ`{ru^ZM(VD*Uf+}oQX3E#v@(Hjji9C-9@TyZq&dFyT9=LI-aPeKl+`Q2G*s`3xYQaKoloVS$s0nAB-`l=;&ka4DVz+eq!b=$D)>&TvHSewIUD%x<4lf;#N2i&Kx) zXM3V2;QzG=#+`-O`E$Km{6+kue{aU%#$oO~A5UDR&k)|rw87^meX+o2K3?lh+#MVK z>y5!pU3|?!*89p%SM9&+I}a1{bR@9NGo6u>dJG2S(&Oy1A!Ur-^IeYDzznG3(y?6?{2*SP>!KkIH6C9o@nQO2MQb>RX$zb>H4tayXK6&{NoL<-64Zb zI1%}pn-b2MXyNrJO=a#=qcOU^zk{@ztJkK`}j?rY{snw zvQ*Cpn}}aGZY9x)nSpwa*Pl)N!=gDn}5C7Y?1F#%DG}ldPDS30W2LC0NMzU4ypM>n_MmeOwrq{z6jUny)yj=(nFnnE&i+`TYt(ReqY?7P47NcTbMSii6X1|vmkw`8 z!en>z(1D{PEwQAAEAlcQp(4~`MQRy0(&EwCR;IB43oM5BA)TMXf_mu7skJ;Sjgl_x zYJj0#wg=Btj9dF-_{lD{mzp{}U5pcyx9yTym^KvSLhJjbG)qAj+s59Wr|Cuz1j;{S z-D`}Vz?8%_Wa<4$aJpkKtw0_oVHkslB{Mnl_q~Mbq@{>XxHV@hKB68EHSRmcvaTdw z2;7>i&%s=((D_WFDOwbd9Y#Z&DaqCf={T`stV5uac)AcT&v|xoz0~#hUM)IT%F=_E=e zE1S%3TnIBpv0x~vtzSRn2A#SB4o!`5ve2uHrKl=4-9<_82TY|{*5ZEYWjMt@GpbR; zK`omuBSQF!lyW96LxcKfNzy>RjU(9eW1B+tq~)NA3Y&tgVit}JLEH;!0hkjIzg{dT zv{atHYAW(}O0T14-8>xRVv!fZ8!oW*Cue%Gyo~FhN(_F=^OwGDwDLga>oO5>B25{r()WS`?`*@_ zxeX!^X(rPcdhf=(=>o%6RA5X27Kp>e=t2O>+!tj(povqNbZ@dHp-uK<0xOfep{1d5 zKi(=R*oxluDKmu%^_6|5Peh`D5vgpPbU5+Hyi(_^NQ zpu(QCj(Q4*i21B4Tp!}D$dGjRP(0i3YmsTct&5%C(`ejWPc*4+Zcp8QpLhb>$mnR% z#U=e`e^vaowtW256Q74OHhdTSqZ|Rn#fhC!u%d_JXL3gwQfe%BF!}?7gsz5f9LDeMTY4Y!oFWT1nbEGU=#Zhw=%(45{iyGEKtdW z4-P2be-dg2f<%FEm0c^9g5ilo?^ID@A)sN1Y$YTp(3+k#ts^KpWNE72o_p|zh>`a_ zC4m!#*qTMsD-3WFY6b6VVl8dEP{jQ^@z96f>N?)-U>AXkg|H{$ShjQ+l8Bd`gyDp$ z4AzJL2@Guz;i4=70t+B601rE3`N3P?SxSG_uli>mVvcP>O?jb+{l7jv9cgELE&OhV zb>-LUuL8uJB`HglsJn0DMucLc{X9jCY$w5cFG*T(hmKTGKziwo6>q8HP2-D!NnnEu zinW5>jo{Y!voAFo{c9uYryZ*&!xFl0#&|^Zo^xYhOwWEP##jbovXGk2kO)6ndw}Iy z5kcGwfH1!Wm#3O`aLaAsg!%1TilK9L)L++$X)9_w_s36EZ z(iKO)EW02&BJ+j#Yd1%&!pU7ZH`ffuO{ZltNC1Kcu8t-#mkUql0KYf~xD~od=3N@t z#qJ{j386P)-7I#h-H%%Oloz_~scA@BBLl+h3` zUg8ULwnrTg5{-34F-YSF3h`o1V7y*3Vl`1(RqXf_L{nm7MHg8$6gBa<| z7%Kbn=p_7uoRRcN&t#LqxKlCzxM|}yM#?3`w@rBiWLA_fq!>#sQ^f7d^CO5abfSdU zd8+|ZZiu5ryMlDhJKVUb(0tx|Se2O2bXM9?`WUz=vHD}o1oBYiq7pTri6xc9BN06^ ztHP^#XfZL)9Ul`wISE%ohxN65)zXH2I@qiL;|wo@!|#P0TMstEXLL0o`6|4I{`1H> zj*rvc9=?G$CbLQ}Ix$lfapKXlm+Cc20cErP{n~Rj32bE2_^}N4wD!ajVn~W{kT~B^ zcmI`~RN(_X)sGqX9JU7li{Wptf)gMuD@jwRb_P`KT#SBsJqK0W2s5tU3 z%_ak}3-!4DD_El!{W$iCDi|WXg-gomkv=yC4j8d~KRL(Kg+8dxLr0uVId*q{&sfUr zK-XEhCA3W9UyUK82wXid7VkDbd#R zuok(wkYQg?q)Qs#_u=2Hos9JTcE!nQBtF>NlV${l(LNitw#DS~OL_9LA?nJ+O( z5@<7fWkFyxEQYCio@Y0i3-Dx7QJ=dMW{#n0_3rW^b)V>kxmp%{ALiq+6o3$zG zhc`EMl5BVLe*c;`r7Xq9^?AwL0rb?H6K~;vFC3_#Z);m z)w6$V60Y%){wvqF@&KjhF$Gt_u?U^t{~4KOgsOyZp-D4r@|21e-8%>HOEZQmaP+@N zNcUb#XuPO%-w!^+O;O?kuk8T~9FiUvEyS||6qgwMh2v#HFNYKsKuoXr=|#vu3irHP z(?gUzsC)g@NAH8oQ}HUj5z_BTQjrm!nct-jHB-|%nL3ysI{-N#U3vERi%p6Qt@y(d zGAHcclq!A3KA>c3!Q<9@_Og^&XzcVgMDtbO{zHe+D^42$hH8n`5rcXb;MtsJAXSX6 zXHp=g45uR$31u4dKN4=!Wvn7XeVjfdTrqTbm^PoJh~G6m9o*g*R)zLR$z)@#XjPx= z@YTLdo>6vlDjXZS3D#~I;XbYmh{;enuJ#IXCQ|YAw@%-++wI; z=;vH7RrejV%>{r~uYQ=LVm9KZa4^^gUtUrKJ))$6(jkF1;{iLgx?s_{Z3u>TJz?G^%HY=sH_LO6U6rcGo0Iup7<6hm6;EDrTt5G zqUqrEm00Tb_l`M-%LGZDpmp^k7h?-_AcI))G#;kTE7VvYT-xjB|05Ol!LgyQ4TYL_ zk-^2{WmfGBLX{|Cl*JSR+4-9ow5awgAYN8h&YGoM-Dg=#-pBrVi~WF-Sk)s08ADt| ztfR2v6j-^cCs{fFq4toJr&YuORntlqQ<~-jx`Ifz-g|5LUbZoKY%({IMK_x3Z&vO_ z_4lFXvY?p^FDm;#cdJ=6@P*&+IkO{RDHK*qKz$IHCmbdQPLLLx7kud|OZ2+|GdLPx zOOKObyMoxpfl(#!I5XUm>RpL*(o6D(L&w>tyu z+!;S#wCnQ40lG@=T#JMKjcjgz70irN+Gy~>F{ICyzIrRtFf+-{rRz$t1lJv)c>Vhq zg^V|MqwsVt&L8!Y^iAYo~3;h%Tn{u4C*D zBW+IF3l3%K#ls|sa*H_JQE8z)A4GMLI+|iG0JE=RRocj7W60Gps z;j-jUHRyT1G;Mp{_=&uj^|>&y1`dhuY7h4C^t|{Lxyu`_&WUC_jTjvIX<7T`b`ror zJ+K8UA1klOpjiWfhs;-A+)09aI<85U@1P@$tOXM#6{94>-LdZ`HPNM=rO2;U`VXtd zoWQfUPWxji({ri~9^XEo8>fc>NEI}#YZxP*eR0ngrWK!`EVS3=6lV=Ll*=*s6IG8r zCKym$3Z<`QIiPk2e>%w_*#rjc^O)JRTz#gv6d$WJJ@zumpbyZZg**+-&DeWe7vxDY zB60#mUQy+*188T&uI3J9?>6{QfUD21r=4}t<3pz@kCS5Zt#XoI{pyl@DZ7{**Ew_1 zV$u9(T_07a@xzobpwEUmCdcb1W~^c~gEr6|+6Ti5keh}z=Q|g|aVo3C6Jc6`W$~#I z!yGt>_kyY$Tv3KYK=Vau6vscZ8QQy(3+P~0;gqHj(QzkGoPn?;ugY}cPuMI#x=6|dwG9|Wv)AZ1l<4d3Cxc$oYh+I-D?-H+SLhN}2 zWb27Oy{4Tjnq0>?F`%?)OpM5>=8D3IE!w;W6Mql)dHbCP=1)CVR(O&q;$Klp zJGuD%Y87v7Qlz+Q5OTbl;)7flQoQ347hEHYR(EhFjvc8~9FNwkB)d*nYDUc}xZI9A z%Vn%=oxTp1YPh?}6rMRPJT=8^(LCL}cUm)31XnMUDtz)_rxGRzRN?@?`)kR7O^)Ea zP)Du5G5jt{hvGkk#E7L)aqjTw9}8qAiP+t@6VR%6x5~qTDgXC}FBTA+6>1t8p_&Lh zBluJhwy7Qe7z*I*U zWUEdaM)2iza-^ga#C+>f$tN@Jq5@@lD)7pUQiHUJAS4m-4Z55WMJAd{x~d^sYJ$@F zz6Vj#gZh5v`ZtvZ>w<-!Eoab z0|338a zfGT3}x%l=6VT2(-8%Ji;>ZHrBP5abD#M<#0axy}DpJ&IszorqiN=e&$@=v_k=7EC@ zBSipqGC^rNp~8V^U=MzlD8_m5KPG-gx7@=G zFK3LBY9Ub_7eBBtDr`DBM`&;NL9YGJZAIufV_fY5D&Xehca%5BfG*i+o);(Gd&T4T z*^-Yflhm{9$L?PriAAoM>3eh~1O;!@AC@-J^5>5Bb4__h?Sx(|ad2*n;F`C=pKUW5 zqSeGcqsQSU*t)c{*Vk=QHyDE8GFP|bJmgu# z{k3n{I?gjEj#%s24E&v4Tt!*TmbYk7SY=#N)U+*SpK@hLlD9cL7PXd_jJM{+t=cza2Q&lig&P&FMKsH2eM|@5t_m_r*}=3eb!d z`LbEa;3JR-i?loylv-+P%oQEu<9X-)Mc!1`DT%}*&A&%G6zD%q+x4=sus1AIeT>e> zMno;1%g!n&s!C`LrWW#~B-Em+uI>A{N(IA{(i^^K*yoH1if_d$F&yE_kVqeS~)IUs4myosAN&FLKvpZlu`+B|G9?YNc&Ir%x6 z@^Ud7rkU#DU%?BwU*HXzS?+O|se^RknzrhKy}2*SXm?Eh=s~C9=@4O{cKVrN#m&1W zBM;F0$~CCNh!SYrtsAU;T}TW1z;BPJExRLp7PY?A9<#nTarCt3URp2p%j$C4Aaayz z>QX>5)>(Q}JF>-6f%|5#RA!>gD%=w^b{|24t|-#jJ&eMxRA*mO`Y`ub0?S(y&u!6{7^IU;bcJ-SxImwIdgR zyYe5S%lV1N{zWiNVI0#D0+rrgRmcTv$3uNi#J}Sjx$)fZhg5B}LoSG7ozB9he&SZ2 zxaiS~MsjmACnfMb6SnO3tO9}QfjoWO%4xA(DZ1$;vS8lwmQl4_*5!+w5V-3PX@J6k z??bMT9Et2=ZFwa;wKZ80p&<>r-w`lhBrxKXB&wj0r;r5)OkY^x=KNzyn9UM7E0SSj zjuDXsWKf~%kE?IXYy@;(6rAIF$+&0nXoNraTJ(%^UlY^EH8qc#@%s0r`0AFus{UDu znR?_VS=kM7z0LWeE<{Wpj8!XDl*U}hTM7$-%b04!3JQvw>oQz=SQW~K`Y+!~y$mbc z)KZnB4&KJ%#6ciV@SrBlKpIfB0^bTOow;wGt(wZru#~NxcH&gn99-j3$~Y6d)4Mpz zWWN>QtP{0L2}lxz&7Tu*Fe;kIMQyNp{~Z?*d4aCzW0VH3O(JNqw10lOj)-#>W?aov z(wLvFAYU#b>UMk4m{HC#Qgc(uY_!8#m=(leZXVd?5St*MJHZCpY+f3kAQDdejy`5N zSF*!YG|kdYS}L3l2pbu1+*>t~A3*t#zTjxxG}% zITK&K;>L{aTv0TO+Orf^n%8Lz!Bp>8$ zMH^U@;L#8wuXfKZ`}5zA@|3y#0_ab#Co3V+079{p6+45e;qg-TU!KgI6>TF=oDCgu z#b3=X4F>#F=goP)%d?8PXoE^xFP4w3<2Y}OMwseHUzVUdZH?N}4?sJHQYW-WUM{he zHf(zCP3Yf$#y0j^Tiqd4;v)vv+dq>(>P3^&$%*fy%r0EtVux4Jj8i<6*?L?hN5HscX6?i#%@x znUG|c&Y?UJ#8I8IJcz+Wa*t1LFfckx6jgWM`)aCw*Xz#Fqhqxrz=i9ym9KUY$v*jq zA~L_d{uKY4hLTS>KQDz#WF!U+Pz)CyW@B5$s^qRpNHAH6RbFr~%i_gyPqc_tkrbcA9$yUb1fL+)62rQ&-0_rKA~6Bw@!jkz?woacOy z=3r{xscJq)G1K}ek$rQL6QL>jCRqOQ$G@7}TEoF7ZvAy}wUu9?xKjDl0C{_|53R_~iWpp!sqD2Kl_b6sEQGmO-Bd zx~daO8`aEn03V7ZrDx=jk_^EXtr!+B2GfaJ^ic%7SV zH9!6fJQ>;R7JSm5?TdO*QZHubahvJ_*!0o`o<@I)tNK8T_MSQP=nz+G?=#!}Pk6^3 zV-FcXBuu?isXiO#t%(wZo@}(+|0gjRrY?f)ejHzWK%Vst`0s<)y!Q1$V;#m_73W^P zP3TTUVWUX`^Jq;?0Xy6Vu^KlLe{W8J3nU67(5j}^eI_K%5(#!Hg!b_d4o_6QK0Qhe zPeAQL;5B7;0FcDa8&Q?hH^4oMJwHOS$zw{PYtbYY`ltcV91#j?IeYahk^N06;uM(&acUz@t2y9dgM#qttIp%85iul^>KKxjZ?|GTcK=9kXRyV@kVkz%NF!| zsC7iX2B1&uVjX1(_QysU46-@b+)$ra2E`^(HsIN)g5^1=$T65idz;kIL0~V_U%792Rn!JWdlM z5$N*45fnoBCc^J_j4w4^HLPVyt)>zetp`d-3o@Pvj(Pa?&*nF?g*6T}A#$P17mKNc z?-pAlC)dzeAC;Lt0cch@{P}4{eVrgq%ARzfrCC>r`wy50pw=7stvz-sb2fh_js9C) z!VPY+E#EkqHN8hypX};via@h1@AGe^`RPsP6AHi%u!($F=`1zKJD#;86PGz&#iH9h zPkTFh_-^h+lja7Xn(xj~DoH6Fb(jT!sXB|JDQYV9}&3#CdMc z^dwhDtSA!sOsS2Bw_XK_YzDmKmUB&EhMXvTn2{frLB?qQOGP*7@jXCd#>?@=+%_jO z#}@|i;Ged!8L9zy0kHRo6`0vPc% z8*TL&3B4KI1g&!_cxPq9=fK`d#_8a6!gBF)ODrSXezZI|Zq zY-#p#98uo0!ZVjyRX-G2i#b6?0=qiTgW5Jf$ zvOZuL7dNJ7SgHSu#R9Ec8AvS&ss@^TSnm0>|6%IPXGi_NLSmLF{@-%J-M9Ch(za_A z(nV)TY(Ejkwv(V`_TR45iMb* X*Xvc+FC5^fB#@%4noO0Hap3;|QZ+fW literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Flora/tree_birch_medium.rsi/meta.json b/Resources/Textures/_CP14/Structures/Flora/tree_birch_medium.rsi/meta.json new file mode 100644 index 0000000000..aa435515e9 --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Flora/tree_birch_medium.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Created by TheShuEd and Omsoyk", + "size": { + "x": 64, + "y": 156 + }, + "states": [ + { + "name": "tree01" + }, + { + "name": "tree02" + } + ] +} diff --git a/Resources/Textures/_CP14/Structures/Flora/tree_birch_medium.rsi/tree01.png b/Resources/Textures/_CP14/Structures/Flora/tree_birch_medium.rsi/tree01.png new file mode 100644 index 0000000000000000000000000000000000000000..11ae9e809b2a90ea9ba0d62a95b1d87c5f1d5ce8 GIT binary patch literal 5359 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Flora/tree_birch_medium.rsi/tree02.png b/Resources/Textures/_CP14/Structures/Flora/tree_birch_medium.rsi/tree02.png new file mode 100644 index 0000000000000000000000000000000000000000..2f00b8932fe82ec3b9883c892b05f43534c1e5e3 GIT binary patch literal 5414 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 IwoT;!0Lhj*h5!Hn literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Flora/tree_birch_small.rsi/meta.json b/Resources/Textures/_CP14/Structures/Flora/tree_birch_small.rsi/meta.json new file mode 100644 index 0000000000..c01f06b8f9 --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Flora/tree_birch_small.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Created by TheShuEd and Omsoyk", + "size": { + "x": 64, + "y": 124 + }, + "states": [ + { + "name": "tree01" + }, + { + "name": "tree02" + } + ] +} diff --git a/Resources/Textures/_CP14/Structures/Flora/tree_birch_small.rsi/tree01.png b/Resources/Textures/_CP14/Structures/Flora/tree_birch_small.rsi/tree01.png new file mode 100644 index 0000000000000000000000000000000000000000..d1071ed4007c9279f9fbed67613d5f5b5d0586e0 GIT binary patch literal 4102 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 C5WWro literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Flora/tree_birch_small.rsi/tree02.png b/Resources/Textures/_CP14/Structures/Flora/tree_birch_small.rsi/tree02.png new file mode 100644 index 0000000000000000000000000000000000000000..6feab7c1f41ad999bd6a59706075559572f460ae GIT binary patch literal 3955 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/meta.json b/Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/meta.json similarity index 100% rename from Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/meta.json rename to Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/meta.json diff --git a/Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/tree01.png b/Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/tree01.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/tree01.png rename to Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/tree01.png diff --git a/Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/tree02.png b/Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/tree02.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/tree02.png rename to Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/tree02.png diff --git a/Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/tree03.png b/Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/tree03.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/tree03.png rename to Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/tree03.png diff --git a/Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/tree04.png b/Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/tree04.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/tree04.png rename to Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/tree04.png diff --git a/Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/tree05.png b/Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/tree05.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/tree05.png rename to Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/tree05.png diff --git a/Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/tree06.png b/Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/tree06.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Flora/snow_trees.rsi/tree06.png rename to Resources/Textures/_CP14/Structures/Flora/tree_snow.rsi/tree06.png diff --git a/Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/full.png b/Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/full.png new file mode 100644 index 0000000000000000000000000000000000000000..ac81c2f432594ed2d34858bc20bf7ceedc4ebeec GIT binary patch literal 910 zcmV;919AL`P)Px&NJ&INRA_niYO9)g%UJJz8mV+RLQiwUt&hFlwh)!F!%c0?-x2sXsSf}qlfT;ges3^yfI}*6hMO3w*s0vM zm&=lIdX`Rj^noJIi&||B4|k8o`}IcM2!dlWi8aSO+QbpQcqP^g`R0V`UMJ3x^ByhM z8+8m-jDBx`_Sc^PfZdnjQVh2{D$%#K9ibU+CP5n<0DxcpTQvMKP)f$G+0Z}?)@&zAhDmaP)!pq3Ow6YV0H{^wYAjqTNGBF z0oe%?2Nvyw%Yp~Y3BmhzQQ&RA-y5vH1TxdsV^}nJ(_484hAK9X;Zx$t9H1;%IdFD* zvNA_JKp(^Q4|X(xv>DJQV}qQyjN6b{DF;!Pp*$lT?LC%)V@EVn)!@X%3_=sA*b7Qb!Pxt8lF;j-i4Q}-zM~%kw63|C-L@MOQ(u~kP zn>-Ja>{Whz`=tFe`~2m5s-geI#}CKa+T-d$4;_%XVFObw=TbhxK+VDI(wg^bu_(oW6g)s6Pf z17p%g%rdwTY}B>AYNV6YlR_?~ zQW21!wDKF*WstDlQO;)MBB#x`bk-Jt<^U<-^_Ja{zvq3S-BH@UEZ%T?Mh0vgaBb#) zqkG-SsO4LAoL_Xcb*?@@u%%T#XK_iwa6ld#*X5E%R-40_9FR_A)iCV}x1D|2Uo;1J zyCkKq{}1Kq2ezycC(bXrn!Vf{$m;iUU)~;(IAEJvB*_-JEx9~J%=a6OhzzUIto~u( zJL_hf7f6SVJ7M4(yr8vFf_HD`lcVbn0PGpC^#fTJ>0p(6Lqbx4ixV=XSx1%D+@3KH klqgZ6M2Qk5N~{|H0QRc2?`;KK-v9sr07*qoM6N<$f(E6nY5)KL literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/meta.json b/Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/meta.json new file mode 100644 index 0000000000..f032108316 --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/meta.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 64 + }, + "license": "All right reserved", + "copyright": "Created by jaraten (Discord/Github), recolor by omsoyk", + "states": [ + { + "name": "wood0", + "directions": 4 + }, + { + "name": "wood1", + "directions": 4 + }, + { + "name": "wood2", + "directions": 4 + }, + { + "name": "wood3", + "directions": 4 + }, + { + "name": "wood4", + "directions": 4 + }, + { + "name": "wood5", + "directions": 4 + }, + { + "name": "wood6", + "directions": 4 + }, + { + "name": "wood7", + "directions": 4 + }, + { + "name": "full" + } + ] +} diff --git a/Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood0.png b/Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood0.png new file mode 100644 index 0000000000000000000000000000000000000000..90eda1c543fb3c701cfc664120e62a0d47270333 GIT binary patch literal 1378 zcmV-o1)chdP)Px)97#k$RCt{2oH1(~NfgKbIbske*)jroqb3k8ftWPr48ir)>HIx{i{t~Owu_MF zifePEy53TG%93a2zcX*% zJk5JI5SX2<&3`%HfAai~8=UXoLV&ZAb1b%-IF83SIvk+? z@-G0ugS%1bZHo|q^5JNRcI!vPdy~@J`l0j|a^hn?Uj;EE;Ns%z^!4~`g7I1TPahB@ zfKC7KQ)O+5nF65@A;4n0iAH0=i)U995dwrni~vPFL0^b4g2vBpG!`mvTg(Uu1#2(; zjokbBovlr*Z>&z8o)3Q?vG?;_DjxyI@i^i1gyz~$fnWki83pWBU}tO7$9)8YEx`K5 z>fCS@jrf!m-nt5<`2qHtF17Q3Cjs*M@X|UDco2Zb@3KFeyzWLHxy`d-3-I#SR{(&{ zQo1icI=ys!2E$~KBOX-~^vJ@S4KSTFLYQlt-b!ownu-w$wgB(me=hX-r;i^cu6N(Q zKAu4z&=UTi>CM@FaTnFca6 zUId^|J*~r|({se5NhLpc#>jnF)e(3yvE?&+G8`4gKnq#x{g!s|n zfZIG9ugB%P(eli(S^Lazh@7B#utxyR`CV)`GtUlRT!c%Ia={kh?$2wvKN}x>oQe}F zS(?HYVE6Yw=YFQY9|O2NPjvfE58Y@vSe_uIvatBcINnmAd#0Fs_Qpd+Aq0Zgfk5alvlR4#xN56}>FFAiMB z6HGb1Mq|O$6e#j9Sbb0%5c&o}bL|BXQALJQq$WW@dohCu0qiBwjxhrMYlu=r2wPx&ZAnByRCt{2oH1+LKorMcN&^NvPB6r(mOw}Xg)E_;px?o3>1XheFVMLjvUl#7 zr9;QgB~Zu`njxjMi=zZY;@DuwkPhV>NtP|U@2vl8{Qpfp>*Uk@_1?XAXPs6AOsCy? z(42pGbiATD|GDO5A8c)hvKeelt#cjSj6N6Dofo(O$qwD!4rDmIpQ)}d-~!y;4*t3B zG_hs{F2L@q18Dnj0X~2H1Z^KKz?YLB(Dt7}TQ>mQ0)BO`pzW)Y2v4XIAyM{W>0N*V zpf3Oo1wdZ_nxz-OM;L^LF)d4P0Tcjz0cg~7flj-nI{)zKSbGU7)Bx1Wi1VA7sz&KZM{0R{&jRSTI5VFcB1e)9d=?k5!Tipk7YY+q4Odh1PFHaB-ojy zp0=gMpcVkVrl*BrQ2PV(E@}pinuv(Jee+t|v=`I@9K3vyDtE8?5;kk8a+WCWOR%%2 zZQ2WJ0UGscZaMD#{TF9{HyAr-Ujljm?nCaevhflIU1uj9ONunDE&?wCWbb;`Djacd zFmj0~?n`ts?jB{M7U1k6O8LA<`Yvb3fGB<}y8#i2T7V)yZq%!}W*^1E6 z?6F3@DrXl_;W=gDbqq+7z3WL!2%EK(DG`FJwAjlS5cdXSoynTN6UCDMi!5L^nEc*};3h;*ehlbd^>gEY(5R(4Z7E0aY5{rq zKweY`n>90oqPILCZycC3I67;v;0mR$2_~`R3WN|s2qAc+N}q-Mz9%d$hWWG z=iN{If4@&q1Uox45eAW&p$Q8R!A+4(SO79Cnh*eq2?3Cqp$P$yPyqA=h+xxW69S0f z(ql6MpfDu>A|o^<00I-KuuFpx`G6@4u(VP{2qABIm literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood2.png b/Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood2.png new file mode 100644 index 0000000000000000000000000000000000000000..90eda1c543fb3c701cfc664120e62a0d47270333 GIT binary patch literal 1378 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood7.png b/Resources/Textures/_CP14/Structures/Walls/wooden_wall_birch.rsi/wood7.png new file mode 100644 index 0000000000000000000000000000000000000000..d5cbf40e2b7603a2b75b09b44791d8765e9fc319 GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^4nW+%!3HFEH|A#nDaPU;cPEB*=VV?2IY&KR978JR zyuD+{)nFjP>iGEY`!&7hKUzZPyln12s@A%0aXIh#^(P+||M+lTc!691E-Za_sr<{@ zx>w)x8yLPe%)*X=_JKje-5UJ>yFa`vE7-5#!k2dcIQ*Z*o9PO377h$Et!y`At|v>a SwhxaiNXXOG&t;ucLK6VY`d-Qa literal 0 HcmV?d00001