Implement female uniform masking.
This commit is contained in:
@@ -91,6 +91,7 @@
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/uniform_clown.rsi
|
||||
femaleMask: UniformTop
|
||||
|
||||
- type: entity
|
||||
parent: UniformBase
|
||||
@@ -141,4 +142,4 @@
|
||||
state: captain
|
||||
|
||||
- type: Clothing
|
||||
sprite: Clothing/captain_uniform.rsi
|
||||
sprite: Clothing/captain_uniform.rsi
|
||||
|
||||
@@ -17,7 +17,14 @@
|
||||
description: A bright red toolbox, stocked with emergency tools
|
||||
components:
|
||||
- type: Sprite
|
||||
texture: Objects/Tools/toolbox_r.png
|
||||
layers:
|
||||
- shader: stencilClear
|
||||
- texture: Objects/Tools/wrench.png
|
||||
shader: stencilMask
|
||||
|
||||
- texture: Objects/Tools/toolbox_r.png
|
||||
shader: stencilDraw
|
||||
|
||||
- type: Icon
|
||||
texture: Objects/Tools/toolbox_r.png
|
||||
|
||||
|
||||
@@ -58,7 +58,18 @@
|
||||
sprite: Mob/human.rsi
|
||||
state: human_l_leg
|
||||
|
||||
- shader: stencilClear
|
||||
sprite: Mob/human.rsi
|
||||
state: human_l_leg
|
||||
- shader: stencilMask
|
||||
map: ["enum.HumanoidVisualLayers.StencilMask"]
|
||||
sprite: Mob/masking_helpers.rsi
|
||||
state: female_full
|
||||
visible: false
|
||||
|
||||
- map: ["enum.Slots.INNERCLOTHING"]
|
||||
shader: stencilDraw
|
||||
|
||||
- map: ["enum.Slots.IDCARD"]
|
||||
- map: ["enum.Slots.GLOVES"]
|
||||
- map: ["enum.Slots.SHOES"]
|
||||
@@ -174,7 +185,16 @@
|
||||
sprite: Mob/human.rsi
|
||||
state: human_l_leg
|
||||
|
||||
- shader: stencilClear
|
||||
- shader: stencilMask
|
||||
map: ["enum.HumanoidVisualLayers.StencilMask"]
|
||||
sprite: Mob/masking_helpers.rsi
|
||||
state: female_full
|
||||
visible: false
|
||||
|
||||
- map: ["enum.Slots.INNERCLOTHING"]
|
||||
shader: stencilDraw
|
||||
|
||||
- map: ["enum.Slots.IDCARD"]
|
||||
- map: ["enum.Slots.GLOVES"]
|
||||
- map: ["enum.Slots.SHOES"]
|
||||
|
||||
25
Resources/Prototypes/Shaders/Stencils.yml
Normal file
25
Resources/Prototypes/Shaders/Stencils.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
- type: shader
|
||||
id: stencilClear
|
||||
kind: source
|
||||
path: "/Shaders/stencilclear.swsl"
|
||||
stencil:
|
||||
ref: 0
|
||||
op: Replace
|
||||
func: Always
|
||||
|
||||
- type: shader
|
||||
id: stencilMask
|
||||
kind: source
|
||||
path: "/Shaders/stencilmask.swsl"
|
||||
stencil:
|
||||
ref: 1
|
||||
op: Replace
|
||||
func: Always
|
||||
|
||||
- type: shader
|
||||
id: stencilDraw
|
||||
kind: canvas
|
||||
stencil:
|
||||
ref: 1
|
||||
op: Keep
|
||||
func: NotEqual
|
||||
3
Resources/Shaders/stencilclear.swsl
Normal file
3
Resources/Shaders/stencilclear.swsl
Normal file
@@ -0,0 +1,3 @@
|
||||
void fragment() {
|
||||
COLOR = vec4(0);
|
||||
}
|
||||
7
Resources/Shaders/stencilmask.swsl
Normal file
7
Resources/Shaders/stencilmask.swsl
Normal file
@@ -0,0 +1,7 @@
|
||||
void fragment() {
|
||||
if (texture(TEXTURE, UV).a == 0) {
|
||||
discard; // Discard if no alpha so that there's a hole in the stencil buffer.
|
||||
}
|
||||
|
||||
COLOR = vec4(0);
|
||||
}
|
||||
BIN
Resources/Textures/Mob/masking_helpers.rsi/female_full.png
Normal file
BIN
Resources/Textures/Mob/masking_helpers.rsi/female_full.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 134 B |
BIN
Resources/Textures/Mob/masking_helpers.rsi/female_none.png
Normal file
BIN
Resources/Textures/Mob/masking_helpers.rsi/female_none.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 83 B |
BIN
Resources/Textures/Mob/masking_helpers.rsi/female_top.png
Normal file
BIN
Resources/Textures/Mob/masking_helpers.rsi/female_top.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 130 B |
1
Resources/Textures/Mob/masking_helpers.rsi/meta.json
Normal file
1
Resources/Textures/Mob/masking_helpers.rsi/meta.json
Normal file
@@ -0,0 +1 @@
|
||||
{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "female_full", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "female_top", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}]}
|
||||
Reference in New Issue
Block a user