Pumpkin + Cabbage (#417)
* seeds * import Omsoyk plant sprites * cabbage slicing * sliceable pumpkin * some tweaks * seedbed clean fix, remove shitcode systems * seed crafting, knife fix * utencil * Update base.yml * cabbage rebalance * abstract seed
@@ -1,21 +0,0 @@
|
||||
using Content.Shared._CP14.SpawnOnTileTool;
|
||||
|
||||
namespace Content.Server._CP14.SpawnOnTileTool;
|
||||
|
||||
public sealed partial class CP14SpawnOnTileToolSystem : SharedCP14SpawnOnTileToolSystem
|
||||
{
|
||||
public override void Initialize()
|
||||
{
|
||||
SubscribeLocalEvent<CP14SpawnOnTileToolComponent, SpawnOnTileToolAfterEvent>(AfterDoAfter);
|
||||
}
|
||||
|
||||
private void AfterDoAfter(Entity<CP14SpawnOnTileToolComponent> ent, ref SpawnOnTileToolAfterEvent args)
|
||||
{
|
||||
if (args.Handled || args.Cancelled)
|
||||
return;
|
||||
|
||||
SpawnAtPosition(args.Spawn, GetCoordinates(args.Coordinates));
|
||||
|
||||
args.Handled = true;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
using Content.Shared.Tools;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.DestroyedByTool;
|
||||
|
||||
/// <summary>
|
||||
/// abstract ability to destroy objects by using the right kind of tool on them
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(CP14DestroyedByToolSystem))]
|
||||
public sealed partial class CP14DestroyedByToolComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
public ProtoId<ToolQualityPrototype>? Tool;
|
||||
|
||||
[DataField]
|
||||
public TimeSpan RemoveTime = TimeSpan.FromSeconds(1f);
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Tools.Components;
|
||||
using Content.Shared.Tools.Systems;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.DestroyedByTool;
|
||||
|
||||
public sealed partial class CP14DestroyedByToolSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly SharedToolSystem _tool = default!;
|
||||
[Dependency] private readonly SharedDoAfterSystem _doAfter = default!;
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<CP14DestroyedByToolComponent, CP14DestroyedByToolDoAfterEvent>(OnDestroyDoAfter);
|
||||
SubscribeLocalEvent<CP14DestroyedByToolComponent, InteractUsingEvent>(OnInteractUsing);
|
||||
}
|
||||
|
||||
private void OnInteractUsing(Entity<CP14DestroyedByToolComponent> ent, ref InteractUsingEvent args)
|
||||
{
|
||||
if (args.Handled)
|
||||
return;
|
||||
|
||||
if (ent.Comp.Tool == null || !_tool.HasQuality(args.Used, ent.Comp.Tool))
|
||||
return;
|
||||
|
||||
if (TryComp<ToolComponent>(args.Used, out var tool))
|
||||
{
|
||||
_tool.PlayToolSound(args.Used, tool, args.User);
|
||||
}
|
||||
|
||||
var doAfterArgs =
|
||||
new DoAfterArgs(EntityManager, args.User, ent.Comp.RemoveTime, new CP14DestroyedByToolDoAfterEvent(), args.Target)
|
||||
{
|
||||
BreakOnDamage = true,
|
||||
BlockDuplicate = true,
|
||||
BreakOnMove = true,
|
||||
BreakOnHandChange = true,
|
||||
};
|
||||
_doAfter.TryStartDoAfter(doAfterArgs);
|
||||
}
|
||||
|
||||
private void OnDestroyDoAfter(Entity<CP14DestroyedByToolComponent> ent, ref CP14DestroyedByToolDoAfterEvent args)
|
||||
{
|
||||
if (args.Cancelled || args.Handled)
|
||||
return;
|
||||
|
||||
QueueDel(ent);
|
||||
|
||||
args.Handled = true;
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed partial class CP14DestroyedByToolDoAfterEvent : SimpleDoAfterEvent
|
||||
{
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Maps;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared._CP14.SpawnOnTileTool;
|
||||
|
||||
/// <summary>
|
||||
/// Allows using an item on a certain type of tile to spawn entities on it.
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(SharedCP14SpawnOnTileToolSystem))]
|
||||
public sealed partial class CP14SpawnOnTileToolComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
public Dictionary<ProtoId<ContentTileDefinition>, EntProtoId> Spawns = new();
|
||||
|
||||
[DataField]
|
||||
public bool NeedEmptySpace = true;
|
||||
|
||||
[DataField]
|
||||
public TimeSpan DoAfter = TimeSpan.FromSeconds(1f);
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed partial class SpawnOnTileToolAfterEvent : DoAfterEvent
|
||||
{
|
||||
public override DoAfterEvent Clone() => this;
|
||||
public readonly NetCoordinates Coordinates;
|
||||
public readonly EntProtoId Spawn;
|
||||
|
||||
public SpawnOnTileToolAfterEvent(IEntityManager entManager, EntityCoordinates coord, EntProtoId spawn)
|
||||
{
|
||||
Spawn = spawn;
|
||||
Coordinates = entManager.GetNetCoordinates(coord);
|
||||
}
|
||||
|
||||
public SpawnOnTileToolAfterEvent(NetCoordinates coord, EntProtoId spawn)
|
||||
{
|
||||
Spawn = spawn;
|
||||
Coordinates = coord;
|
||||
}
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
using System.Linq;
|
||||
using Content.Shared._CP14.Farming;
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Maps;
|
||||
using Content.Shared.Popups;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Map.Components;
|
||||
|
||||
namespace Content.Shared._CP14.SpawnOnTileTool;
|
||||
|
||||
public partial class SharedCP14SpawnOnTileToolSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly SharedMapSystem _map = default!;
|
||||
[Dependency] private readonly SharedTransformSystem _transform = default!;
|
||||
[Dependency] private readonly ITileDefinitionManager _tileDef = default!;
|
||||
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||
[Dependency] private readonly SharedDoAfterSystem _doAfter = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
SubscribeLocalEvent<CP14SpawnOnTileToolComponent, AfterInteractEvent>(OnAfterInteract);
|
||||
}
|
||||
|
||||
private void OnAfterInteract(Entity<CP14SpawnOnTileToolComponent> tool, ref AfterInteractEvent args)
|
||||
{
|
||||
var grid = _transform.GetGrid(args.ClickLocation);
|
||||
|
||||
if (grid == null || !TryComp<MapGridComponent>(grid, out var gridComp))
|
||||
return;
|
||||
|
||||
var tile = _map.GetTileRef(grid.Value, gridComp, args.ClickLocation);
|
||||
var tileDef = (ContentTileDefinition) _tileDef[tile.Tile.TypeId];
|
||||
|
||||
if (tool.Comp.NeedEmptySpace && _map.GetAnchoredEntities(grid.Value, gridComp, args.ClickLocation).Count() > 0)
|
||||
{
|
||||
_popup.PopupClient(Loc.GetString("cp14-insufficient-space"), args.ClickLocation, args.User);
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var pair in tool.Comp.Spawns)
|
||||
{
|
||||
if (tileDef.ID != pair.Key)
|
||||
continue;
|
||||
|
||||
var doAfterArgs =
|
||||
new DoAfterArgs(EntityManager, args.User, tool.Comp.DoAfter, new SpawnOnTileToolAfterEvent(EntityManager, args.ClickLocation, pair.Value), tool)
|
||||
{
|
||||
BreakOnDamage = true,
|
||||
BlockDuplicate = true,
|
||||
BreakOnMove = true,
|
||||
BreakOnHandChange = true
|
||||
};
|
||||
_doAfter.TryStartDoAfter(doAfterArgs);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,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
|
||||
@@ -0,0 +1,130 @@
|
||||
- type: entity
|
||||
id: CP14FoodCabbage
|
||||
parent: FoodInjectableBase
|
||||
name: cabbage
|
||||
description: Green edible ball.
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: FlavorProfile
|
||||
flavors:
|
||||
- cabbage
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Specific/Farming/Produce/cabbage.rsi
|
||||
layers:
|
||||
- state: base1
|
||||
map: [ "random" ]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
base1: ""
|
||||
base2: ""
|
||||
base3: ""
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 12
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 10
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 1
|
||||
- type: SliceableFood
|
||||
count: 4
|
||||
sliceTime: 1.5
|
||||
slice: CP14FoodCabbageSlice
|
||||
|
||||
- type: entity
|
||||
id: CP14FoodCabbageSlice
|
||||
parent: CP14FoodCabbage
|
||||
name: cabbage leaf
|
||||
description: Time to make green salads
|
||||
components:
|
||||
- type: Item
|
||||
size: Tiny
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: slice1
|
||||
map: [ "random" ]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
slice1: ""
|
||||
slice2: ""
|
||||
slice3: ""
|
||||
slice4: ""
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 3 # 1/4 cabbage
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 2.5
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 0.25
|
||||
|
||||
- type: entity
|
||||
id: CP14FoodPumpkin
|
||||
parent: FoodInjectableBase
|
||||
name: pumpkin
|
||||
description: Big, cool pumpkin.
|
||||
components:
|
||||
- type: Item
|
||||
size: Normal
|
||||
- type: FlavorProfile
|
||||
flavors:
|
||||
- pumpkin
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Specific/Farming/Produce/pumpkin.rsi
|
||||
layers:
|
||||
- state: base1
|
||||
map: [ "random" ]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
base1: ""
|
||||
base2: ""
|
||||
base3: ""
|
||||
base4: ""
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 25
|
||||
reagents:
|
||||
- ReagentId: PumpkinFlesh
|
||||
Quantity: 20
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 5
|
||||
- type: SliceableFood
|
||||
count: 5
|
||||
sliceTime: 2
|
||||
slice: CP14FoodPumpkinSlice
|
||||
|
||||
- type: entity
|
||||
id: CP14FoodPumpkinSlice
|
||||
parent: CP14FoodPumpkin
|
||||
name: pumpkin slice
|
||||
description: Pumpkin! # TODO
|
||||
components:
|
||||
- type: Item
|
||||
size: Tiny
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: slice1
|
||||
map: [ "random" ]
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
slice1: ""
|
||||
slice2: ""
|
||||
slice3: ""
|
||||
slice4: ""
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 5 # 1/5 pumpkin
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 4
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 1
|
||||
@@ -0,0 +1,61 @@
|
||||
- type: entity
|
||||
id: CP14BaseSeed
|
||||
parent: BaseItem
|
||||
abstract: true
|
||||
components:
|
||||
- type: Item
|
||||
size: Tiny
|
||||
- type: Sprite
|
||||
sprite: _CP14/Objects/Specific/Farming/seeds.rsi
|
||||
|
||||
- type: entity
|
||||
id: CP14SeedWheat
|
||||
name: wheat seeds
|
||||
description: Small wheat seeds. What will you do with them? Grind them into flour, or plant them again?
|
||||
parent: CP14BaseSeed
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: bag
|
||||
- state: wheat
|
||||
- type: CP14Seed
|
||||
plantProto: CP14PlantWheat
|
||||
|
||||
- type: entity
|
||||
id: CP14SeedPumpkin
|
||||
name: pumpkin seeds
|
||||
description: Pumpkin seeds. Some pumpkin seems to have been gutted and butchered.
|
||||
parent: CP14BaseSeed
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: bag
|
||||
- state: pumpkin
|
||||
- type: CP14Seed
|
||||
plantProto: CP14PlantPumpkin
|
||||
|
||||
- type: entity
|
||||
id: CP14SeedCabbage
|
||||
name: cabbage seeds
|
||||
description: Oh, no, my cabbage!
|
||||
parent: CP14BaseSeed
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: bag
|
||||
- state: cabbage
|
||||
- type: CP14Seed
|
||||
plantProto: CP14PlantCabbage
|
||||
|
||||
- type: entity
|
||||
id: CP14SeedTomato
|
||||
name: tomato seeds
|
||||
description: It looks like powder! They're so small, these seeds.
|
||||
parent: CP14BaseSeed
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: bag
|
||||
- state: tomato
|
||||
#- type: CP14Seed
|
||||
# plantProto: CP14PlantWheat
|
||||
@@ -21,7 +21,4 @@
|
||||
collection: MetalThud
|
||||
- type: Item
|
||||
size: Normal
|
||||
sprite: _CP14/Objects/Weapons/Melee/Hoe/hoe.rsi
|
||||
- type: CP14SpawnOnTileTool
|
||||
spawns:
|
||||
CP14FloorDirt: CP14PloughedGround
|
||||
sprite: _CP14/Objects/Weapons/Melee/Hoe/hoe.rsi
|
||||
@@ -69,6 +69,14 @@
|
||||
- type: CP14Sharpened
|
||||
- type: CP14SharpeningStone
|
||||
- type: UseDelay
|
||||
- type: Tool
|
||||
qualities:
|
||||
- Slicing
|
||||
useSound:
|
||||
path: /Audio/Items/Culinary/chop.ogg
|
||||
- type: Utensil
|
||||
types:
|
||||
- Knife
|
||||
|
||||
- type: entity
|
||||
id: CP14BaseWeaponDestructible
|
||||
|
||||
@@ -120,4 +120,6 @@
|
||||
- CP14FoodDoughLarge
|
||||
- CP14FoodDoughMediumFlat
|
||||
- CP14FoodDoughMedium
|
||||
- CP14FoodMeatLamb
|
||||
- CP14FoodMeatLamb
|
||||
- CP14SeedPumpkin
|
||||
- CP14SeedWheat
|
||||
@@ -10,8 +10,6 @@
|
||||
- type: Physics
|
||||
canCollide: false
|
||||
bodyType: Static
|
||||
- type: CP14DestroyedByTool
|
||||
tool: CP14Digging
|
||||
- type: CP14PlantAutoRoot
|
||||
- type: Damageable
|
||||
damageContainer: Biological
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
- type: entity
|
||||
id: CP14PlantCabbage
|
||||
parent: CP14GatherablePlantBase
|
||||
name: cabbage
|
||||
description: OOO # TODO
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Structures/Specific/Farming/Herbals/cabbage.rsi
|
||||
layers:
|
||||
- state: grow-1
|
||||
map: ["enum.PlantVisualLayers.Base"]
|
||||
- type: CP14PlantMetabolizer
|
||||
metabolizerId: Base
|
||||
- type: CP14PlantEnergyFromLight
|
||||
energy: 1
|
||||
daytime: true
|
||||
- type: CP14PlantVisuals
|
||||
growthSteps: 6
|
||||
- type: CP14PlantGrowing
|
||||
energyCost: 1
|
||||
resourceCost: 1
|
||||
growthPerUpdate: 0.1 # 10 minute to full grow
|
||||
- type: CP14PlantFading
|
||||
resourcePerMinute: 0.25 #20 minute from water
|
||||
- type: CP14PlantGatherable
|
||||
deleteAfterHarvest: true
|
||||
loot:
|
||||
All: CP14GatherCabbage
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 25
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTypeTrigger
|
||||
damageType: Cellular
|
||||
damage: 1
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
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
|
||||
@@ -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
|
||||
@@ -31,39 +31,12 @@
|
||||
anchored: true
|
||||
- type: CP14Soil
|
||||
solution: soil
|
||||
- type: CP14DestroyedByTool
|
||||
tool: CP14Digging
|
||||
|
||||
- type: entity
|
||||
name: ploughed ground
|
||||
id: CP14SeedbedWooden
|
||||
parent: CP14BaseFarmingSoil
|
||||
id: CP14PloughedGround
|
||||
components:
|
||||
- type: Sprite
|
||||
drawdepth: FloorTiles
|
||||
sprite: _CP14/Structures/Specific/Farming/soil.rsi
|
||||
layers:
|
||||
- state: soil1
|
||||
map: ["random"]
|
||||
- state: liq-1 #Resprite this shit
|
||||
map: ["enum.SolutionContainerLayers.Fill"]
|
||||
visible: false
|
||||
snapCardinals: true
|
||||
- type: SolutionContainerVisuals
|
||||
maxFillLevels: 4
|
||||
fillBaseName: liq-
|
||||
- type: RandomSprite
|
||||
available:
|
||||
- random:
|
||||
soil1: ""
|
||||
soil2: ""
|
||||
soil3: ""
|
||||
soil4: ""
|
||||
|
||||
- type: entity
|
||||
name: seedbed
|
||||
id: CP14SeedbedDefault
|
||||
parent: CP14BaseFarmingSoil
|
||||
description: A wooden tub with a pile of earth adapted for growing plants.
|
||||
components:
|
||||
- type: Icon
|
||||
sprite: _CP14/Structures/Specific/Farming/seedbed.rsi
|
||||
@@ -85,4 +58,6 @@
|
||||
state: seedbed_default_north
|
||||
- map: [ "enum.EdgeLayer.West" ]
|
||||
state: seedbed_default_west
|
||||
# snapCardinals: true (when you flip it over, you get a swastika)
|
||||
- type: Construction
|
||||
graph: CP14Seedbed
|
||||
node: CP14SeedbedWooden
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
- type: entity
|
||||
id: CP14WallDirt
|
||||
name: earth cliffs
|
||||
name: earth wall
|
||||
parent: CP14BaseWall
|
||||
description: A tall pile of dirt. Can a house be built from it?
|
||||
components:
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
- type: constructionGraph
|
||||
id: CP14Seedbed
|
||||
start: start
|
||||
graph:
|
||||
- node: start
|
||||
actions:
|
||||
- !type:DestroyEntity {}
|
||||
edges:
|
||||
- to: CP14SeedbedWooden
|
||||
steps:
|
||||
- material: CP14Dirt
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
- material: CP14WoodenPlanks
|
||||
amount: 2
|
||||
doAfter: 2
|
||||
|
||||
- node: CP14SeedbedWooden
|
||||
entity: CP14SeedbedWooden
|
||||
edges:
|
||||
- to: start
|
||||
steps:
|
||||
- tool: CP14Digging
|
||||
doAfter: 1
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14WoodenPlanks1
|
||||
amount: 2
|
||||
- !type:SpawnPrototype
|
||||
prototype: CP14DirtBlock1
|
||||
amount: 2
|
||||
- !type:DeleteEntity {}
|
||||
20
Resources/Prototypes/_CP14/Recipes/Construction/farming.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
- type: construction
|
||||
crystallPunkAllowed: true
|
||||
name: Seedbed
|
||||
description: A wooden tub with a pile of earth adapted for growing plants.
|
||||
id: CP14SeedbedWooden
|
||||
graph: CP14Seedbed
|
||||
startNode: start
|
||||
targetNode: CP14SeedbedWooden
|
||||
category: construction-category-furniture
|
||||
icon:
|
||||
sprite: _CP14/Structures/Specific/Farming/seedbed.rsi
|
||||
state: seedbed_default
|
||||
objectType: Structure
|
||||
placementMode: SnapgridCenter
|
||||
canBuildInImpassable: false
|
||||
conditions:
|
||||
- !type:TileNotBlocked
|
||||
- !type:TileType
|
||||
targets:
|
||||
- CP14FloorDirt
|
||||
@@ -29,4 +29,18 @@
|
||||
entities:
|
||||
CP14FoodDoughMedium: 1
|
||||
result: CP14FoodDoughMediumFlat
|
||||
tryMergeSolutions: true
|
||||
tryMergeSolutions: true
|
||||
|
||||
- type: CP14Recipe
|
||||
id: CP14SeedPumpkin
|
||||
craftTime: 1
|
||||
entities:
|
||||
CP14FoodPumpkinSlice: 1
|
||||
result: CP14SeedPumpkin
|
||||
|
||||
- type: CP14Recipe
|
||||
id: CP14SeedWheat
|
||||
craftTime: 1
|
||||
entities:
|
||||
CP14Wheat: 1
|
||||
result: CP14SeedWheat
|
||||
|
After Width: | Height: | Size: 535 B |
|
After Width: | Height: | Size: 588 B |
|
After Width: | Height: | Size: 555 B |
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by omsoyk (Discord)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "base1"
|
||||
},
|
||||
{
|
||||
"name": "base2"
|
||||
},
|
||||
{
|
||||
"name": "base3"
|
||||
},
|
||||
{
|
||||
"name": "slice1"
|
||||
},
|
||||
{
|
||||
"name": "slice2"
|
||||
},
|
||||
{
|
||||
"name": "slice3"
|
||||
},
|
||||
{
|
||||
"name": "slice4"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 307 B |
|
After Width: | Height: | Size: 295 B |
|
After Width: | Height: | Size: 319 B |
|
After Width: | Height: | Size: 286 B |
|
After Width: | Height: | Size: 377 B |
|
After Width: | Height: | Size: 529 B |
|
After Width: | Height: | Size: 461 B |
|
After Width: | Height: | Size: 431 B |
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by omsoyk (Discord)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "base1"
|
||||
},
|
||||
{
|
||||
"name": "base2"
|
||||
},
|
||||
{
|
||||
"name": "base3"
|
||||
},
|
||||
{
|
||||
"name": "base4"
|
||||
},
|
||||
{
|
||||
"name": "slice1"
|
||||
},
|
||||
{
|
||||
"name": "slice2"
|
||||
},
|
||||
{
|
||||
"name": "slice3"
|
||||
},
|
||||
{
|
||||
"name": "slice4"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 261 B |
|
After Width: | Height: | Size: 260 B |
|
After Width: | Height: | Size: 248 B |
|
After Width: | Height: | Size: 250 B |
|
After Width: | Height: | Size: 292 B |
|
After Width: | Height: | Size: 183 B |
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"version": 1,
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by TheShuEd (Github) for CrystallPunk14",
|
||||
"states": [
|
||||
{
|
||||
"name": "bag"
|
||||
},
|
||||
{
|
||||
"name": "cabbage"
|
||||
},
|
||||
{
|
||||
"name": "pumpkin"
|
||||
},
|
||||
{
|
||||
"name": "tomato"
|
||||
},
|
||||
{
|
||||
"name": "wheat"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 171 B |
|
After Width: | Height: | Size: 142 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 422 B |
|
After Width: | Height: | Size: 923 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by omsoyk (Discord)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "grow-1"
|
||||
},
|
||||
{
|
||||
"name": "grow-2"
|
||||
},
|
||||
{
|
||||
"name": "grow-3"
|
||||
},
|
||||
{
|
||||
"name": "grow-4"
|
||||
},
|
||||
{
|
||||
"name": "grow-5"
|
||||
},
|
||||
{
|
||||
"name": "grow-6"
|
||||
},
|
||||
{
|
||||
"name": "death"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 885 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "All rights reserved for the CrystallPunk14 project only",
|
||||
"copyright": "Created by omsoyk (Discord)",
|
||||
"size": {
|
||||
"x": 48,
|
||||
"y": 48
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "grow-1"
|
||||
},
|
||||
{
|
||||
"name": "grow-2"
|
||||
},
|
||||
{
|
||||
"name": "grow-3"
|
||||
},
|
||||
{
|
||||
"name": "grow-4"
|
||||
},
|
||||
{
|
||||
"name": "grow-5"
|
||||
},
|
||||
{
|
||||
"name": "grow-6"
|
||||
},
|
||||
{
|
||||
"name": "death"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -33,6 +33,10 @@ CP14Shovel: CP14BaseShovel
|
||||
CP14Hoe: CP14BaseHoe
|
||||
CP14WallStoneSilverOre: CP14WallStoneGoldOre
|
||||
|
||||
# 2024-08-22
|
||||
CP14PloughedGround: CP14SeedbedWooden
|
||||
CP14SeedbedDefault: CP14SeedbedWooden
|
||||
|
||||
# <---> CrystallPunk migration zone end
|
||||
|
||||
|
||||
|
||||