From 3492a7892a46a26ae746992c315a2a9b29af1037 Mon Sep 17 00:00:00 2001 From: Nim <128169402+Nimfar11@users.noreply.github.com> Date: Fri, 21 Jun 2024 23:17:49 +0300 Subject: [PATCH] Mannequin (#253) * mannequin * fix * fix2 * Update mannequin.yml --------- Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com> --- .../_CP14/_PROTO/entities/structures.ftl | 2 + .../Structures/Decorations/mannequin.yml | 120 ++++++++++++++++++ .../mannequin_inventory_template.yml | 96 ++++++++++++++ .../Graphs/Furniture/mannequin.yml | 26 ++++ .../_CP14/Recipes/Construction/furniture.yml | 21 ++- .../Decoration/mannequin.rsi/mannequin.png | Bin 0 -> 2010 bytes .../Decoration/mannequin.rsi/meta.json | 15 +++ 7 files changed, 279 insertions(+), 1 deletion(-) create mode 100644 Resources/Prototypes/_CP14/Entities/Structures/Decorations/mannequin.yml create mode 100644 Resources/Prototypes/_CP14/InventoryTemplates/mannequin_inventory_template.yml create mode 100644 Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/mannequin.yml create mode 100644 Resources/Textures/_CP14/Structures/Decoration/mannequin.rsi/mannequin.png create mode 100644 Resources/Textures/_CP14/Structures/Decoration/mannequin.rsi/meta.json diff --git a/Resources/Locale/ru-RU/_CP14/_PROTO/entities/structures.ftl b/Resources/Locale/ru-RU/_CP14/_PROTO/entities/structures.ftl index efb5680807..a59d09df03 100644 --- a/Resources/Locale/ru-RU/_CP14/_PROTO/entities/structures.ftl +++ b/Resources/Locale/ru-RU/_CP14/_PROTO/entities/structures.ftl @@ -5,6 +5,8 @@ ent-CP14WallmountWeb = паутина .desc = Паутина, прилипшая к темным углам, в которой сидят крошечные паучки. ent-CP14WallmountWoodenBoards = доски .desc = Прибиты к стене. Зачем? не совсем ясно. +ent-CP14Mannequin = манекен + .desc = Удобная подставка для одежды или доспехов. # Doors ent-CP14BaseWoodDoor = деревянная дверь diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Decorations/mannequin.yml b/Resources/Prototypes/_CP14/Entities/Structures/Decorations/mannequin.yml new file mode 100644 index 0000000000..62b4ef0d25 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Decorations/mannequin.yml @@ -0,0 +1,120 @@ +- type: entity + id: CP14Mannequin + parent: Mannequin + name: mannequin + description: A handy stand for clothing or armour. + components: + - type: Appearance + - type: Sprite + sprite: _CP14/Structures/Decoration/mannequin.rsi + state: mannequin + noRot: true + layers: + - map: [ "mannequin" ] + sprite: _CP14/Structures/Decoration/mannequin.rsi + state: mannequin + - map: [ "shirt" ] + - map: [ "pants" ] + - map: [ "gloves" ] + - map: [ "shoes" ] + - map: [ "cloak" ] + - map: [ "eyes" ] + - map: [ "belt1" ] + - map: [ "belt2" ] + - map: [ "neck" ] + - map: [ "back" ] + - map: [ "mask" ] + - map: [ "head" ] + - type: Rotatable + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 200 + mask: + - MachineMask + layer: + - MidImpassable + - BulletImpassable + - type: InteractionOutline + - type: Construction + graph: CP14Mannequin + node: CP14mannequin + - type: Damageable + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:EmptyAllContainersBehaviour + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: ContainerContainer + containers: + shirt: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + pants: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + gloves: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + shoes: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + cloak: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + eyes: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + belt1: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + belt2: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + neck: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + back: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + mask: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + head: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + keys: !type:ContainerSlot + showEnts: False + occludes: False + ent: null + - type: Inventory + templateId: CP14mannequin + - type: InventorySlots + - type: Strippable + - type: UserInterface + interfaces: + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/InventoryTemplates/mannequin_inventory_template.yml b/Resources/Prototypes/_CP14/InventoryTemplates/mannequin_inventory_template.yml new file mode 100644 index 0000000000..835b71d4d3 --- /dev/null +++ b/Resources/Prototypes/_CP14/InventoryTemplates/mannequin_inventory_template.yml @@ -0,0 +1,96 @@ +- type: inventoryTemplate + id: CP14mannequin + slots: + # Left hotbar + # 0, y + - name: neck + slotTexture: neck + slotFlags: NECK + uiWindowPos: 0,2 + strippingWindowPos: 1,2 + displayName: Neck + - name: eyes + slotTexture: eyes + slotFlags: EYES + uiWindowPos: 0,3 + strippingWindowPos: 0,1 + displayName: Eyes + # 1, y + - name: shoes + slotTexture: shoes + slotFlags: FEET + uiWindowPos: 1,0 + strippingWindowPos: 1,5 + displayName: Shoes + - name: pants + slotTexture: pants + slotFlags: PANTS + uiWindowPos: 1,1 + strippingWindowPos: 1,4 + displayName: Pants + - name: shirt + slotTexture: shirt + slotFlags: SHIRT + uiWindowPos: 1,2 + strippingWindowPos: 1,3 + displayName: Shirt + - name: head + slotTexture: head + slotFlags: HEAD + uiWindowPos: 1,3 + strippingWindowPos: 1,1 + displayName: Head + # 2, y + - name: gloves + slotTexture: gloves + slotFlags: GLOVES + uiWindowPos: 2,0 + strippingWindowPos: 0,2 + displayName: Gloves + - name: cloak + slotTexture: cloak + slotFlags: CLOAK + uiWindowPos: 2,2 + strippingWindowPos: 2,2 + displayName: Cloak + - name: mask + slotTexture: mask + slotFlags: MASK + uiWindowPos: 2,3 + strippingWindowPos: 2,1 + displayName: Mask + # Main hotbar + - name: belt1 + slotTexture: belt + slotFlags: BELT + slotGroup: SecondHotbar + uiWindowPos: 0,0 + strippingWindowPos: 0,4 + dependsOn: pants + displayName: Belt + - name: keys + slotTexture: keys + slotFlags: KEYS + slotGroup: SecondHotbar + uiWindowPos: 0,0 + strippingWindowPos: 2,5 + dependsOn: pants + displayName: Keys + stripHidden: true + - name: back + slotTexture: back + slotFlags: BACK + slotGroup: SecondHotbar + uiWindowPos: 0,0 + strippingWindowPos: 0,5 + displayName: Back + # Right hand + # Left hand + - name: belt2 + slotTexture: belt + slotFlags: BELT + slotGroup: MainHotbar + uiWindowPos: 2,0 + strippingWindowPos: 2,4 + dependsOn: pants + displayName: Belt diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/mannequin.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/mannequin.yml new file mode 100644 index 0000000000..d65bb53bf0 --- /dev/null +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/mannequin.yml @@ -0,0 +1,26 @@ +- type: constructionGraph + id: CP14Mannequin + start: start + graph: + - node: start + actions: + - !type:DestroyEntity {} + edges: + - to: CP14mannequin + completed: + - !type:SnapToGrid { } + steps: + - material: CP14WoodenPlanks + amount: 5 + doAfter: 3 + - node: CP14mannequin + entity: CP14Mannequin + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: CP14WoodenPlanks1 + amount: 5 + steps: + - tool: CP14Hammering + doAfter: 3 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml b/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml index b57d98581f..3800bba5d7 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml @@ -88,4 +88,23 @@ placementMode: SnapgridCenter canBuildInImpassable: false conditions: - - !type:TileNotBlocked \ No newline at end of file + - !type:TileNotBlocked + +- type: construction + crystallPunkAllowed: true + id: CP14Mannequin + name: mannequin + description: Wooden mannequin designed for clothing displaying. + graph: CP14Mannequin + startNode: start + targetNode: CP14mannequin + category: construction-category-furniture + icon: + sprite: _CP14/Structures/Decoration/mannequin.rsi + state: mannequin + objectType: Structure + placementMode: SnapgridCenter + canRotate: true + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked diff --git a/Resources/Textures/_CP14/Structures/Decoration/mannequin.rsi/mannequin.png b/Resources/Textures/_CP14/Structures/Decoration/mannequin.rsi/mannequin.png new file mode 100644 index 0000000000000000000000000000000000000000..68555598efc12c9280a56f3493a745ba80b1cab0 GIT binary patch literal 2010 zcmV<02POE4P)Px+lu1NERCt{2ThD9TSP=faL{($AcIpsA-5OG`p^&y4h!4h>&`ZdrklcDKIri9p zqPHIRSb8i=p*@B|DZPXo9LP2f6s)oVHwxI;wdB~YYO~sdJTFhOZ0pIEyFdC}tVnwL z=8b0FjOI;%|2aZ_20eRt-*ldP^76f}XZ>h?;X%(H-Z!HQ5)!E>J69>|&>P*ED1rE6 zi}UQ9R_plY7aG7%J`%qS0H}XyLJmtaQNl2Oz`qiH5fvhlio$4j+23+lV&`Xp*y6k^ zKW`Btm=n1xi|xNTj0B z8?{O1Z9^gzMXUbJ;^#Q|W59YbiT?dw`A05-q@G;QYQL{Vv?{Mm93znPgEKc%@vrRnN^fc5r^N)vj+ zat*KiV-;YuyHJj5%%8Mc$L5Cwt=0ixt-#9B^vvIAcSriO(;A<=d>?X)62ssr4=`HB zSYqe>)65QwN|PPCWqU@uYdc?5nx6T`DnJfPSji>v^g-TKwI1|F*EJ2+8(pYc4^JQD z&6Qlz6S)`2VF`)&95yqnW+Fa^r5jfUxB+14#ueLrUNKSur1?r&2R|ut1Ag@-tmKmH zZ~o2s0gcbE-(=?!sVIv&0GJ$nVn+9S;UB3gRqMg%hqX7aPXJivtpli@s_Z^FA~QF6 z^ZEo^+skbHBzRsZgjB6(0>EzRFtmCrXCCjXSji;58Cc0BQ93&r5PE|7U&z2gj>xwBpFf7t zaUC-XW1YqMFfzTj2VeWwR?YR>;gMseg-X2#po2=i*SD@V03aEgLn8iH|GF4_*8`HV zIot23s4z|B*KZyck-9=V^f{+64q^}Om z#I#z6eGUf+;-|^d?=ZQ>K}Z2brHMo;YKz4{KL)3w6NkNVsMLF?o}OEww(swidJikP zB&w(9vsnX1<>Iq|Q~Bf0kAr8Y*~wK&1jIj|0JbyyBfks**m?x`GMNZ`*8_OW zsutknb1Tn_Vrm~l{{$t_-h>E*6!7Hb`_NvYZX^1UZooHbP=iL`O;WTspw&79rRlc^ zUqv4$jJF402b4~$zn^aq;YDy`?HX%Fp#3^vc6m6Jz3H2Ps!-7d2^(wIuv-#)o{$3U zO_I7zfIEONxnFFoU1P`88AdWadwAazaRXmrFcQCvME^LEx>$fj$^F2sVS{9XkE+x} zVeoigW$VB!6Cs+s(eAR15x?-P06zb&e`!KFsv&)E3BW}pC@M|iii`+0GplA%X|e%2AK;upKY|eY}Xp_rwq>upm;BbB~(w(kkSYo|FLFNMV zY~oTrRsmQ&ip~xZukh@!RuM95=3#Gw008BvhN998yj7Ou*uh}gon+c8)P>{_asf&; zD`g$8-c_)*y$m@bBYk&KWf6WxRSBg17&3+ij9r(@=Kh`Haf@*?*&T0Uqvta*QY#69FiMHluQWNBp sA)q2mI4!7J53k-;Y%=`p4e)`#0sp07*qoM6N<$f+