diff --git a/Content.Server/_CP14/SpawnOnTileTool/CP14SpawnOnTileSystem.cs b/Content.Server/_CP14/SpawnOnTileTool/CP14SpawnOnTileSystem.cs deleted file mode 100644 index 33cb3dfd58..0000000000 --- a/Content.Server/_CP14/SpawnOnTileTool/CP14SpawnOnTileSystem.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Content.Shared._CP14.SpawnOnTileTool; - -namespace Content.Server._CP14.SpawnOnTileTool; - -public sealed partial class CP14SpawnOnTileToolSystem : SharedCP14SpawnOnTileToolSystem -{ - public override void Initialize() - { - SubscribeLocalEvent(AfterDoAfter); - } - - private void AfterDoAfter(Entity ent, ref SpawnOnTileToolAfterEvent args) - { - if (args.Handled || args.Cancelled) - return; - - SpawnAtPosition(args.Spawn, GetCoordinates(args.Coordinates)); - - args.Handled = true; - } -} diff --git a/Content.Shared/_CP14/DestroyedByTool/CP14DestroyedByToolComponent.cs b/Content.Shared/_CP14/DestroyedByTool/CP14DestroyedByToolComponent.cs deleted file mode 100644 index 8b42e08637..0000000000 --- a/Content.Shared/_CP14/DestroyedByTool/CP14DestroyedByToolComponent.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Content.Shared.Tools; -using Robust.Shared.Prototypes; - -namespace Content.Shared._CP14.DestroyedByTool; - -/// -/// abstract ability to destroy objects by using the right kind of tool on them -/// -[RegisterComponent, Access(typeof(CP14DestroyedByToolSystem))] -public sealed partial class CP14DestroyedByToolComponent : Component -{ - [DataField] - public ProtoId? Tool; - - [DataField] - public TimeSpan RemoveTime = TimeSpan.FromSeconds(1f); -} diff --git a/Content.Shared/_CP14/DestroyedByTool/CP14DestroyedByToolSystem.cs b/Content.Shared/_CP14/DestroyedByTool/CP14DestroyedByToolSystem.cs deleted file mode 100644 index 57067c3d4b..0000000000 --- a/Content.Shared/_CP14/DestroyedByTool/CP14DestroyedByToolSystem.cs +++ /dev/null @@ -1,59 +0,0 @@ -using Content.Shared.DoAfter; -using Content.Shared.Interaction; -using Content.Shared.Tools.Components; -using Content.Shared.Tools.Systems; -using Robust.Shared.Serialization; - -namespace Content.Shared._CP14.DestroyedByTool; - -public sealed partial class CP14DestroyedByToolSystem : EntitySystem -{ - [Dependency] private readonly SharedToolSystem _tool = default!; - [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnDestroyDoAfter); - SubscribeLocalEvent(OnInteractUsing); - } - - private void OnInteractUsing(Entity ent, ref InteractUsingEvent args) - { - if (args.Handled) - return; - - if (ent.Comp.Tool == null || !_tool.HasQuality(args.Used, ent.Comp.Tool)) - return; - - if (TryComp(args.Used, out var tool)) - { - _tool.PlayToolSound(args.Used, tool, args.User); - } - - var doAfterArgs = - new DoAfterArgs(EntityManager, args.User, ent.Comp.RemoveTime, new CP14DestroyedByToolDoAfterEvent(), args.Target) - { - BreakOnDamage = true, - BlockDuplicate = true, - BreakOnMove = true, - BreakOnHandChange = true, - }; - _doAfter.TryStartDoAfter(doAfterArgs); - } - - private void OnDestroyDoAfter(Entity ent, ref CP14DestroyedByToolDoAfterEvent args) - { - if (args.Cancelled || args.Handled) - return; - - QueueDel(ent); - - args.Handled = true; - } -} - -[Serializable, NetSerializable] -public sealed partial class CP14DestroyedByToolDoAfterEvent : SimpleDoAfterEvent -{ -} diff --git a/Content.Shared/_CP14/SpawnOnTileTool/CP14SpawnOnTileToolComponent.cs b/Content.Shared/_CP14/SpawnOnTileTool/CP14SpawnOnTileToolComponent.cs deleted file mode 100644 index 9bdd921e2a..0000000000 --- a/Content.Shared/_CP14/SpawnOnTileTool/CP14SpawnOnTileToolComponent.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Content.Shared.DoAfter; -using Content.Shared.Maps; -using Robust.Shared.Map; -using Robust.Shared.Prototypes; -using Robust.Shared.Serialization; - -namespace Content.Shared._CP14.SpawnOnTileTool; - -/// -/// Allows using an item on a certain type of tile to spawn entities on it. -/// -[RegisterComponent, Access(typeof(SharedCP14SpawnOnTileToolSystem))] -public sealed partial class CP14SpawnOnTileToolComponent : Component -{ - [DataField] - public Dictionary, EntProtoId> Spawns = new(); - - [DataField] - public bool NeedEmptySpace = true; - - [DataField] - public TimeSpan DoAfter = TimeSpan.FromSeconds(1f); -} - -[Serializable, NetSerializable] -public sealed partial class SpawnOnTileToolAfterEvent : DoAfterEvent -{ - public override DoAfterEvent Clone() => this; - public readonly NetCoordinates Coordinates; - public readonly EntProtoId Spawn; - - public SpawnOnTileToolAfterEvent(IEntityManager entManager, EntityCoordinates coord, EntProtoId spawn) - { - Spawn = spawn; - Coordinates = entManager.GetNetCoordinates(coord); - } - - public SpawnOnTileToolAfterEvent(NetCoordinates coord, EntProtoId spawn) - { - Spawn = spawn; - Coordinates = coord; - } -} diff --git a/Content.Shared/_CP14/SpawnOnTileTool/SharedCP14SpawnOnTileToolSystem.cs b/Content.Shared/_CP14/SpawnOnTileTool/SharedCP14SpawnOnTileToolSystem.cs deleted file mode 100644 index 1236aed50c..0000000000 --- a/Content.Shared/_CP14/SpawnOnTileTool/SharedCP14SpawnOnTileToolSystem.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System.Linq; -using Content.Shared._CP14.Farming; -using Content.Shared.DoAfter; -using Content.Shared.Interaction; -using Content.Shared.Maps; -using Content.Shared.Popups; -using Robust.Shared.Map; -using Robust.Shared.Map.Components; - -namespace Content.Shared._CP14.SpawnOnTileTool; - -public partial class SharedCP14SpawnOnTileToolSystem : EntitySystem -{ - [Dependency] private readonly SharedMapSystem _map = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; - [Dependency] private readonly ITileDefinitionManager _tileDef = default!; - [Dependency] private readonly SharedPopupSystem _popup = default!; - [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; - - public override void Initialize() - { - SubscribeLocalEvent(OnAfterInteract); - } - - private void OnAfterInteract(Entity tool, ref AfterInteractEvent args) - { - var grid = _transform.GetGrid(args.ClickLocation); - - if (grid == null || !TryComp(grid, out var gridComp)) - return; - - var tile = _map.GetTileRef(grid.Value, gridComp, args.ClickLocation); - var tileDef = (ContentTileDefinition) _tileDef[tile.Tile.TypeId]; - - if (tool.Comp.NeedEmptySpace && _map.GetAnchoredEntities(grid.Value, gridComp, args.ClickLocation).Count() > 0) - { - _popup.PopupClient(Loc.GetString("cp14-insufficient-space"), args.ClickLocation, args.User); - return; - } - - foreach (var pair in tool.Comp.Spawns) - { - if (tileDef.ID != pair.Key) - continue; - - var doAfterArgs = - new DoAfterArgs(EntityManager, args.User, tool.Comp.DoAfter, new SpawnOnTileToolAfterEvent(EntityManager, args.ClickLocation, pair.Value), tool) - { - BreakOnDamage = true, - BlockDuplicate = true, - BreakOnMove = true, - BreakOnHandChange = true - }; - _doAfter.TryStartDoAfter(doAfterArgs); - break; - } - } -} diff --git a/Resources/Prototypes/_CP14/Entities/FARMINGTEST.yml b/Resources/Prototypes/_CP14/Entities/FARMINGTEST.yml deleted file mode 100644 index 6a83f97a5d..0000000000 --- a/Resources/Prototypes/_CP14/Entities/FARMINGTEST.yml +++ /dev/null @@ -1,10 +0,0 @@ -- type: entity - id: CP14SeedTest - name: FUCK test SEED - parent: BaseItem - components: - - type: Sprite - sprite: Objects/Specific/Hydroponics/seeds.rsi - state: seed - - type: CP14Seed - plantProto: CP14PlantWheat \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/produce.yml b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/produce.yml new file mode 100644 index 0000000000..4bdf0c6a9d --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/produce.yml @@ -0,0 +1,130 @@ +- type: entity + id: CP14FoodCabbage + parent: FoodInjectableBase + name: cabbage + description: Green edible ball. + components: + - type: Item + size: Normal + - type: FlavorProfile + flavors: + - cabbage + - type: Sprite + sprite: _CP14/Objects/Specific/Farming/Produce/cabbage.rsi + layers: + - state: base1 + map: [ "random" ] + - type: RandomSprite + available: + - random: + base1: "" + base2: "" + base3: "" + - type: SolutionContainerManager + solutions: + food: + maxVol: 12 + reagents: + - ReagentId: Nutriment + Quantity: 10 + - ReagentId: Vitamin + Quantity: 1 + - type: SliceableFood + count: 4 + sliceTime: 1.5 + slice: CP14FoodCabbageSlice + +- type: entity + id: CP14FoodCabbageSlice + parent: CP14FoodCabbage + name: cabbage leaf + description: Time to make green salads + components: + - type: Item + size: Tiny + - type: Sprite + layers: + - state: slice1 + map: [ "random" ] + - type: RandomSprite + available: + - random: + slice1: "" + slice2: "" + slice3: "" + slice4: "" + - type: SolutionContainerManager + solutions: + food: + maxVol: 3 # 1/4 cabbage + reagents: + - ReagentId: Nutriment + Quantity: 2.5 + - ReagentId: Vitamin + Quantity: 0.25 + +- type: entity + id: CP14FoodPumpkin + parent: FoodInjectableBase + name: pumpkin + description: Big, cool pumpkin. + components: + - type: Item + size: Normal + - type: FlavorProfile + flavors: + - pumpkin + - type: Sprite + sprite: _CP14/Objects/Specific/Farming/Produce/pumpkin.rsi + layers: + - state: base1 + map: [ "random" ] + - type: RandomSprite + available: + - random: + base1: "" + base2: "" + base3: "" + base4: "" + - type: SolutionContainerManager + solutions: + food: + maxVol: 25 + reagents: + - ReagentId: PumpkinFlesh + Quantity: 20 + - ReagentId: Vitamin + Quantity: 5 + - type: SliceableFood + count: 5 + sliceTime: 2 + slice: CP14FoodPumpkinSlice + +- type: entity + id: CP14FoodPumpkinSlice + parent: CP14FoodPumpkin + name: pumpkin slice + description: Pumpkin! # TODO + components: + - type: Item + size: Tiny + - type: Sprite + layers: + - state: slice1 + map: [ "random" ] + - type: RandomSprite + available: + - random: + slice1: "" + slice2: "" + slice3: "" + slice4: "" + - type: SolutionContainerManager + solutions: + food: + maxVol: 5 # 1/5 pumpkin + reagents: + - ReagentId: Nutriment + Quantity: 4 + - ReagentId: Vitamin + Quantity: 1 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Farming/seeds.yml b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Farming/seeds.yml new file mode 100644 index 0000000000..b02f08a035 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Farming/seeds.yml @@ -0,0 +1,61 @@ +- type: entity + id: CP14BaseSeed + parent: BaseItem + abstract: true + components: + - type: Item + size: Tiny + - type: Sprite + sprite: _CP14/Objects/Specific/Farming/seeds.rsi + +- type: entity + id: CP14SeedWheat + name: wheat seeds + description: Small wheat seeds. What will you do with them? Grind them into flour, or plant them again? + parent: CP14BaseSeed + components: + - type: Sprite + layers: + - state: bag + - state: wheat + - type: CP14Seed + plantProto: CP14PlantWheat + +- type: entity + id: CP14SeedPumpkin + name: pumpkin seeds + description: Pumpkin seeds. Some pumpkin seems to have been gutted and butchered. + parent: CP14BaseSeed + components: + - type: Sprite + layers: + - state: bag + - state: pumpkin + - type: CP14Seed + plantProto: CP14PlantPumpkin + +- type: entity + id: CP14SeedCabbage + name: cabbage seeds + description: Oh, no, my cabbage! + parent: CP14BaseSeed + components: + - type: Sprite + layers: + - state: bag + - state: cabbage + - type: CP14Seed + plantProto: CP14PlantCabbage + +- type: entity + id: CP14SeedTomato + name: tomato seeds + description: It looks like powder! They're so small, these seeds. + parent: CP14BaseSeed + components: + - type: Sprite + layers: + - state: bag + - state: tomato + #- type: CP14Seed + # plantProto: CP14PlantWheat \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/Tools/hoe.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/Tools/hoe.yml index 64d082fd4f..c88f40d547 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/Tools/hoe.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/Tools/hoe.yml @@ -21,7 +21,4 @@ collection: MetalThud - type: Item size: Normal - sprite: _CP14/Objects/Weapons/Melee/Hoe/hoe.rsi - - type: CP14SpawnOnTileTool - spawns: - CP14FloorDirt: CP14PloughedGround \ No newline at end of file + sprite: _CP14/Objects/Weapons/Melee/Hoe/hoe.rsi \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/base.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/base.yml index a3c776ce12..44d023e53b 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/base.yml @@ -69,6 +69,14 @@ - type: CP14Sharpened - type: CP14SharpeningStone - type: UseDelay + - type: Tool + qualities: + - Slicing + useSound: + path: /Audio/Items/Culinary/chop.ogg + - type: Utensil + types: + - Knife - type: entity id: CP14BaseWeaponDestructible diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/workbenchs.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/workbenchs.yml index 03fa7504a5..1690c134b9 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/workbenchs.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/workbenchs.yml @@ -120,4 +120,6 @@ - CP14FoodDoughLarge - CP14FoodDoughMediumFlat - CP14FoodDoughMedium - - CP14FoodMeatLamb \ No newline at end of file + - CP14FoodMeatLamb + - CP14SeedPumpkin + - CP14SeedWheat \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/base.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/base.yml index e82e467a26..8b39043273 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/base.yml @@ -10,8 +10,6 @@ - type: Physics canCollide: false bodyType: Static - - type: CP14DestroyedByTool - tool: CP14Digging - type: CP14PlantAutoRoot - type: Damageable damageContainer: Biological diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/domesticated/cabbage.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/domesticated/cabbage.yml new file mode 100644 index 0000000000..e52b390785 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/domesticated/cabbage.yml @@ -0,0 +1,69 @@ +- type: entity + id: CP14PlantCabbage + parent: CP14GatherablePlantBase + name: cabbage + description: OOO # TODO + components: + - type: Sprite + sprite: _CP14/Structures/Specific/Farming/Herbals/cabbage.rsi + layers: + - state: grow-1 + map: ["enum.PlantVisualLayers.Base"] + - type: CP14PlantMetabolizer + metabolizerId: Base + - type: CP14PlantEnergyFromLight + energy: 1 + daytime: true + - type: CP14PlantVisuals + growthSteps: 6 + - type: CP14PlantGrowing + energyCost: 1 + resourceCost: 1 + growthPerUpdate: 0.1 # 10 minute to full grow + - type: CP14PlantFading + resourcePerMinute: 0.25 #20 minute from water + - type: CP14PlantGatherable + deleteAfterHarvest: true + loot: + All: CP14GatherCabbage + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 25 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTypeTrigger + damageType: Cellular + damage: 1 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + CP14PlantWheatDeath: + min: 1 + max: 1 + +- type: entity + id: CP14PlantCabbageDeath + name: dead cabbage + description: The sad spectacle of wasted food. + parent: CP14GatherableBase + components: + - type: Sprite + sprite: _CP14/Structures/Specific/Farming/Herbals/cabbage.rsi + state: death + - type: Gatherable + toolWhitelist: + tags: + - CP14HerbalGathering + +- type: entityLootTable + id: CP14GatherCabbage + entries: + - id: CP14FoodCabbage + amount: 3 + maxAmount: 4 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/domesticated/pumpkin.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/domesticated/pumpkin.yml new file mode 100644 index 0000000000..208a7babea --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/domesticated/pumpkin.yml @@ -0,0 +1,69 @@ +- type: entity + id: CP14PlantPumpkin + parent: CP14GatherablePlantBase + name: pumpkin + description: OOO # TODO + components: + - type: Sprite + sprite: _CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi + layers: + - state: grow-1 + map: ["enum.PlantVisualLayers.Base"] + - type: CP14PlantMetabolizer + metabolizerId: Base + - type: CP14PlantEnergyFromLight + energy: 1 + daytime: true + - type: CP14PlantVisuals + growthSteps: 6 + - type: CP14PlantGrowing + energyCost: 1 + resourceCost: 1 + growthPerUpdate: 0.1 # 10 minute to full grow + - type: CP14PlantFading + resourcePerMinute: 0.25 #20 minute from water + - type: CP14PlantGatherable + deleteAfterHarvest: true + loot: + All: CP14GatherPumpkin + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 25 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTypeTrigger + damageType: Cellular + damage: 1 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + CP14PlantWheatDeath: + min: 1 + max: 1 + +- type: entity + id: CP14PlantPumpkinDeath + name: dead pumpkin + description: The sad spectacle of wasted food. + parent: CP14GatherableBase + components: + - type: Sprite + sprite: _CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi + state: death + - type: Gatherable + toolWhitelist: + tags: + - CP14HerbalGathering + +- type: entityLootTable + id: CP14GatherPumpkin + entries: + - id: CP14FoodPumpkin + amount: 1 + maxAmount: 2 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/domesticated.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/domesticated/wheat.yml similarity index 100% rename from Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/domesticated.yml rename to Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/Herbals/domesticated/wheat.yml diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/soil.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/soil.yml index ef711610ef..5b9f4af05a 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/soil.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/soil.yml @@ -31,39 +31,12 @@ anchored: true - type: CP14Soil solution: soil - - type: CP14DestroyedByTool - tool: CP14Digging - type: entity - name: ploughed ground + id: CP14SeedbedWooden parent: CP14BaseFarmingSoil - id: CP14PloughedGround - components: - - type: Sprite - drawdepth: FloorTiles - sprite: _CP14/Structures/Specific/Farming/soil.rsi - layers: - - state: soil1 - map: ["random"] - - state: liq-1 #Resprite this shit - map: ["enum.SolutionContainerLayers.Fill"] - visible: false - snapCardinals: true - - type: SolutionContainerVisuals - maxFillLevels: 4 - fillBaseName: liq- - - type: RandomSprite - available: - - random: - soil1: "" - soil2: "" - soil3: "" - soil4: "" - -- type: entity name: seedbed - id: CP14SeedbedDefault - parent: CP14BaseFarmingSoil + description: A wooden tub with a pile of earth adapted for growing plants. components: - type: Icon sprite: _CP14/Structures/Specific/Farming/seedbed.rsi @@ -85,4 +58,6 @@ state: seedbed_default_north - map: [ "enum.EdgeLayer.West" ] state: seedbed_default_west -# snapCardinals: true (when you flip it over, you get a swastika) + - type: Construction + graph: CP14Seedbed + node: CP14SeedbedWooden diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Walls/natural.yml b/Resources/Prototypes/_CP14/Entities/Structures/Walls/natural.yml index 06578f2648..dc4ea6dab1 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Walls/natural.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Walls/natural.yml @@ -34,7 +34,7 @@ - type: entity id: CP14WallDirt - name: earth cliffs + name: earth wall parent: CP14BaseWall description: A tall pile of dirt. Can a house be built from it? components: diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Farming/seedbed.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Farming/seedbed.yml new file mode 100644 index 0000000000..2d674ec1bc --- /dev/null +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Farming/seedbed.yml @@ -0,0 +1,32 @@ +- type: constructionGraph + id: CP14Seedbed + start: start + graph: + - node: start + actions: + - !type:DestroyEntity {} + edges: + - to: CP14SeedbedWooden + steps: + - material: CP14Dirt + amount: 2 + doAfter: 2 + - material: CP14WoodenPlanks + amount: 2 + doAfter: 2 + + - node: CP14SeedbedWooden + entity: CP14SeedbedWooden + edges: + - to: start + steps: + - tool: CP14Digging + doAfter: 1 + completed: + - !type:SpawnPrototype + prototype: CP14WoodenPlanks1 + amount: 2 + - !type:SpawnPrototype + prototype: CP14DirtBlock1 + amount: 2 + - !type:DeleteEntity {} \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/farming.yml b/Resources/Prototypes/_CP14/Recipes/Construction/farming.yml new file mode 100644 index 0000000000..e794023f54 --- /dev/null +++ b/Resources/Prototypes/_CP14/Recipes/Construction/farming.yml @@ -0,0 +1,20 @@ +- type: construction + crystallPunkAllowed: true + name: Seedbed + description: A wooden tub with a pile of earth adapted for growing plants. + id: CP14SeedbedWooden + graph: CP14Seedbed + startNode: start + targetNode: CP14SeedbedWooden + category: construction-category-furniture + icon: + sprite: _CP14/Structures/Specific/Farming/seedbed.rsi + state: seedbed_default + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked + - !type:TileType + targets: + - CP14FloorDirt \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/cooking_table.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/cooking_table.yml index df3bfef3be..d686816628 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/cooking_table.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/cooking_table.yml @@ -29,4 +29,18 @@ entities: CP14FoodDoughMedium: 1 result: CP14FoodDoughMediumFlat - tryMergeSolutions: true \ No newline at end of file + tryMergeSolutions: true + +- type: CP14Recipe + id: CP14SeedPumpkin + craftTime: 1 + entities: + CP14FoodPumpkinSlice: 1 + result: CP14SeedPumpkin + +- type: CP14Recipe + id: CP14SeedWheat + craftTime: 1 + entities: + CP14Wheat: 1 + result: CP14SeedWheat \ No newline at end of file diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/base1.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/base1.png new file mode 100644 index 0000000000..836c717c3b Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/base1.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/base2.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/base2.png new file mode 100644 index 0000000000..37a305c8da Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/base2.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/base3.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/base3.png new file mode 100644 index 0000000000..86648aa2dc Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/base3.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/meta.json b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/meta.json new file mode 100644 index 0000000000..951fc11d1a --- /dev/null +++ b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "license": "All rights reserved for the CrystallPunk14 project only", + "copyright": "Created by omsoyk (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base1" + }, + { + "name": "base2" + }, + { + "name": "base3" + }, + { + "name": "slice1" + }, + { + "name": "slice2" + }, + { + "name": "slice3" + }, + { + "name": "slice4" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/slice1.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/slice1.png new file mode 100644 index 0000000000..d2cb6aded3 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/slice1.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/slice2.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/slice2.png new file mode 100644 index 0000000000..53ca652001 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/slice2.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/slice3.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/slice3.png new file mode 100644 index 0000000000..4177b48192 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/slice3.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/slice4.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/slice4.png new file mode 100644 index 0000000000..bbe12c3e26 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/cabbage.rsi/slice4.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/base1.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/base1.png new file mode 100644 index 0000000000..9fa4d3cea1 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/base1.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/base2.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/base2.png new file mode 100644 index 0000000000..c97412b668 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/base2.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/base3.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/base3.png new file mode 100644 index 0000000000..9d22e44978 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/base3.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/base4.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/base4.png new file mode 100644 index 0000000000..68eba0d09b Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/base4.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/meta.json b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/meta.json new file mode 100644 index 0000000000..0d939a3753 --- /dev/null +++ b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/meta.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "license": "All rights reserved for the CrystallPunk14 project only", + "copyright": "Created by omsoyk (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base1" + }, + { + "name": "base2" + }, + { + "name": "base3" + }, + { + "name": "base4" + }, + { + "name": "slice1" + }, + { + "name": "slice2" + }, + { + "name": "slice3" + }, + { + "name": "slice4" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/slice1.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/slice1.png new file mode 100644 index 0000000000..6992c12f9e Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/slice1.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/slice2.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/slice2.png new file mode 100644 index 0000000000..39deb92eaf Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/slice2.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/slice3.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/slice3.png new file mode 100644 index 0000000000..ffc7003491 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/slice3.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/slice4.png b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/slice4.png new file mode 100644 index 0000000000..3923b64294 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/Produce/pumpkin.rsi/slice4.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/bag.png b/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/bag.png new file mode 100644 index 0000000000..05e46b5f19 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/bag.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/cabbage.png b/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/cabbage.png new file mode 100644 index 0000000000..373e236de9 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/cabbage.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/meta.json b/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/meta.json new file mode 100644 index 0000000000..1dc8f3fd51 --- /dev/null +++ b/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "All rights reserved for the CrystallPunk14 project only", + "copyright": "Created by TheShuEd (Github) for CrystallPunk14", + "states": [ + { + "name": "bag" + }, + { + "name": "cabbage" + }, + { + "name": "pumpkin" + }, + { + "name": "tomato" + }, + { + "name": "wheat" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/pumpkin.png b/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/pumpkin.png new file mode 100644 index 0000000000..f83471b2df Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/pumpkin.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/tomato.png b/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/tomato.png new file mode 100644 index 0000000000..07b4f3a2d3 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/tomato.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/wheat.png b/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/wheat.png new file mode 100644 index 0000000000..e0b3613c15 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Farming/seeds.rsi/wheat.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/death.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/death.png new file mode 100644 index 0000000000..f62b735371 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/death.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-1.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-1.png new file mode 100644 index 0000000000..8f87b0bce7 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-1.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-2.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-2.png new file mode 100644 index 0000000000..37ad343f29 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-2.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-3.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-3.png new file mode 100644 index 0000000000..1b1788c41d Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-3.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-4.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-4.png new file mode 100644 index 0000000000..616aeddaec Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-4.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-5.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-5.png new file mode 100644 index 0000000000..2d0067bad0 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-5.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-6.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-6.png new file mode 100644 index 0000000000..67c89c34fb Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/grow-6.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/meta.json b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/meta.json new file mode 100644 index 0000000000..8a7376ec6a --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/cabbage.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "license": "All rights reserved for the CrystallPunk14 project only", + "copyright": "Created by omsoyk (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "grow-1" + }, + { + "name": "grow-2" + }, + { + "name": "grow-3" + }, + { + "name": "grow-4" + }, + { + "name": "grow-5" + }, + { + "name": "grow-6" + }, + { + "name": "death" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/death.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/death.png new file mode 100644 index 0000000000..e2d4f0a8a3 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/death.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-1.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-1.png new file mode 100644 index 0000000000..73f6e2e7a2 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-1.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-2.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-2.png new file mode 100644 index 0000000000..06c0d180a3 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-2.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-3.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-3.png new file mode 100644 index 0000000000..72970b507f Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-3.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-4.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-4.png new file mode 100644 index 0000000000..609301a833 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-4.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-5.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-5.png new file mode 100644 index 0000000000..b224814f92 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-5.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-6.png b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-6.png new file mode 100644 index 0000000000..3d23415b64 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/grow-6.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/meta.json b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/meta.json new file mode 100644 index 0000000000..8c898592a4 --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Specific/Farming/Herbals/pumpkin.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "license": "All rights reserved for the CrystallPunk14 project only", + "copyright": "Created by omsoyk (Discord)", + "size": { + "x": 48, + "y": 48 + }, + "states": [ + { + "name": "grow-1" + }, + { + "name": "grow-2" + }, + { + "name": "grow-3" + }, + { + "name": "grow-4" + }, + { + "name": "grow-5" + }, + { + "name": "grow-6" + }, + { + "name": "death" + } + ] +} \ No newline at end of file diff --git a/Resources/migration.yml b/Resources/migration.yml index c37210b1f1..c076bf9791 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -33,6 +33,10 @@ CP14Shovel: CP14BaseShovel CP14Hoe: CP14BaseHoe CP14WallStoneSilverOre: CP14WallStoneGoldOre +# 2024-08-22 +CP14PloughedGround: CP14SeedbedWooden +CP14SeedbedDefault: CP14SeedbedWooden + # <---> CrystallPunk migration zone end