Stray - 1.13.0.34
<<
back to
entity list
View
Entity Version History >>
Resource Packs
Last Updated
The Stray entity last updated in Minecraft Version oldWhat's Changed:
Changes since stable release 1.12.0.28
Behavior Packs- New Value:
"format_version": "1.13.0"
Previous Value:"format_version": "1.8.0"
- New Value:
"minecraft:environment_sensor": {
"triggers": {
"filters": {
"test": "in_water",
"subject": "self",
"operator": "==",
"value": false
},
"event": "minecraft:ranged_mode"
}
}Previous Value:"minecraft:environment_sensor": {
"on_environment": {
"filters": {
"test": "in_water",
"subject": "self",
"operator": "==",
"value": false
},
"event": "minecraft:ranged_mode"
}
} - New Value:
"minecraft:environment_sensor": {
"triggers": {
"filters": {
"test": "is_underwater",
"subject": "self",
"operator": "==",
"value": true
},
"event": "minecraft:melee_mode"
}
}Previous Value:"minecraft:environment_sensor": {
"on_environment": {
"filters": {
"test": "is_underwater",
"subject": "self",
"operator": "==",
"value": true
},
"event": "minecraft:melee_mode"
}
} - New Value:
"minecraft:breathable": {
"total_supply": 15,
"suffocate_time": 0,
"breathes_water": true
}Previous Value:"minecraft:breathable": {
"totalSupply": 15,
"suffocateTime": 0,
"breathesWater": true
} - New Value:
"minecraft:collision_box": {
"width": 0.6,
"height": 1.9
}Previous Value:"minecraft:collision_box": {
"width": 0.6,
"height": 1.95
} - New Value:
"minecraft:environment_sensor": {
"triggers": {
"filters": {
"test": "is_underwater",
"subject": "self",
"operator": "==",
"value": true
},
"event": "minecraft:melee_mode"
}
}Previous Value:"minecraft:environment_sensor": {
"on_environment": {
"filters": {
"test": "is_underwater",
"subject": "self",
"operator": "==",
"value": true
},
"event": "minecraft:melee_mode"
}
} - New Value:
"minecraft:experience_reward": {
"on_death": "query.last_hit_by_player ? 5 + (query.equipment_count * Math.Random(1,3)) : 0"
} - New Value:
"minecraft:hurt_on_condition": {
"damage_conditions": [
{
"filters": {
"test": "in_lava",
"subject": "self",
"operator": "==",
"value": true
},
"cause": "lava",
"damage_per_tick": 4
}
]
} - New Value:
"minecraft:pushable": {
"is_pushable": true,
"is_pushable_by_piston": true
} - New Value:
"minecraft:shooter": {
"type": "Arrow",
"def": "minecraft:arrow",
"aux_val": 19
}Previous Value:"minecraft:shooter": {
"type": "Arrow",
"def": "minecraft:arrow",
"auxVal": 19
} - New Value:
"minecraft:type_family": {
"family": [
"stray",
"skeleton",
"monster",
"mob",
"undead"
]
}Previous Value:"minecraft:type_family": {
"family": [
"stray",
"skeleton",
"monster",
"undead"
]
} - New Value:
"minecraft:shooter": {
"type": "Arrow",
"def": "minecraft:arrow",
"aux_val": 19
}Previous Value:"minecraft:shooter": {
"type": "Arrow",
"def": "minecraft:arrow",
"auxVal": 19
}
- New Value:
"body": {
"rotation": [
0,
"math.sin(math.sqrt(variable.attack_time) * 360) * 11.46 - this",
0
]
}Previous Value:"body": {
"rotation": [
0,
"variable.attack_body_rot_y - this",
0
]
} - New Value:
"head": {
"scale": 1.4
}Previous Value:"head": {
"scale": 1.399999976158142
} - New Value:
"head": {
"relative_to": {
"rotation": "entity"
},
"rotation": [
"query.target_x_rotation",
"query.target_y_rotation",
0
]
}Previous Value:"head": {
"rotation": [
"query.target_x_rotation",
"query.target_y_rotation",
0
]
} - The leftarm component was changed in the bones subsection of the animation.humanoid.swimming sectionNew Value:
"leftarm": {
"rotation": {
"0.7": {
"post": [
"math.lerp(this, 11.25 * math.mod(query.modified_distance_moved, 26.0), variable.leftarmswim_amount)",
"math.lerp(this, 180.0, variable.leftarmswim_amount)",
"math.lerp(this, 72.77 + 13.4 * math.mod(query.modified_distance_moved, 26.0), variable.leftarmswim_amount)"
],
"pre": [
"math.lerp(this, 0.0, variable.leftarmswim_amount)",
"math.lerp(this, 180.0, variable.leftarmswim_amount)",
"math.lerp(this, 180.0 - 0.01877 * (-65.0 * math.mod(query.modified_distance_moved, 26.0) + math.mod(query.modified_distance_moved, 26.0) * math.mod(query.modified_distance_moved, 26.0)), variable.leftarmswim_amount)"
]
},
"1.1": [
"math.lerp(this, 11.25 * math.mod(query.modified_distance_moved, 26.0), variable.leftarmswim_amount)",
"math.lerp(this, 180.0, variable.leftarmswim_amount)",
"math.lerp(this, 72.77 + 13.4 * math.mod(query.modified_distance_moved, 26.0), variable.leftarmswim_amount)"
],
"1.3": {
"post": [
"math.lerp(this, 90.0 - (22.5 * math.mod(query.modified_distance_moved, 26.0)), variable.leftarmswim_amount)",
"math.lerp(this, 180.0, variable.leftarmswim_amount)",
"math.lerp(this, 180.0, variable.leftarmswim_amount)"
],
"pre": [
"math.lerp(this, 11.25 * math.mod(query.modified_distance_moved, 26.0), variable.leftarmswim_amount)",
"math.lerp(this, 180.0, variable.leftarmswim_amount)",
"math.lerp(this, 72.77 + 13.4 * math.mod(query.modified_distance_moved, 26.0), variable.leftarmswim_amount)"
]
}
}
}Previous Value:"leftarm": {
"rotation": {
"0.7": {
"post": [
"math.lerp(this, 11.25 * variable.internal_swim_pos, variable.leftarmswim_amount)",
"math.lerp(this, 180.0, variable.leftarmswim_amount)",
"math.lerp(this, 72.77 + 13.4 * variable.internal_swim_pos, variable.leftarmswim_amount)"
],
"pre": [
"math.lerp(this, 0.0, variable.leftarmswim_amount)",
"math.lerp(this, 180.0, variable.leftarmswim_amount)",
"math.lerp(this, 180.0 - 0.01877 * (-65.0 * variable.internal_swim_pos + variable.internal_swim_pos * variable.internal_swim_pos), variable.leftarmswim_amount)"
]
},
"1.1": [
"math.lerp(this, 11.25 * variable.internal_swim_pos, variable.leftarmswim_amount)",
"math.lerp(this, 180.0, variable.leftarmswim_amount)",
"math.lerp(this, 72.77 + 13.4 * variable.internal_swim_pos, variable.leftarmswim_amount)"
],
"1.3": {
"post": [
"math.lerp(this, 90.0 - (22.5 * variable.internal_swim_pos), variable.leftarmswim_amount)",
"math.lerp(this, 180.0, variable.leftarmswim_amount)",
"math.lerp(this, 180.0, variable.leftarmswim_amount)"
],
"pre": [
"math.lerp(this, 11.25 * variable.internal_swim_pos, variable.leftarmswim_amount)",
"math.lerp(this, 180.0, variable.leftarmswim_amount)",
"math.lerp(this, 72.77 + 13.4 * variable.internal_swim_pos, variable.leftarmswim_amount)"
]
}
}
} - New Value:
"rightarm": {
"rotation": [
"variable.use_item_startup_progress * -60.0 + variable.use_item_interval_progress * 11.25",
"variable.use_item_startup_progress * -22.5 + variable.use_item_interval_progress * 11.25",
"variable.use_item_startup_progress * -5.625 + variable.use_item_interval_progress * 11.25"
]
}Previous Value:"rightarm": {
"rotation": [
"variable.useitemstartupprogress * -60.0 + variable.useitemintervalprogress * 11.25",
"variable.useitemstartupprogress * -22.5 + variable.useitemintervalprogress * 11.25",
"variable.useitemstartupprogress * -5.625 + variable.useitemintervalprogress * 11.25"
]
} - New Value:
"animation.humanoid.celebrating": {
"loop": true,
"bones": {
"leftarm": {
"rotation": [
"(math.cos(query.life_time * 800.0) * 2.865)",
180,
-135
]
},
"rightarm": {
"rotation": [
"(math.cos(query.life_time * 800.0) * 2.865)",
180,
153
]
}
}
} - New Value:
"animation_length": 1.3
Previous Value:"animation_length": 1.299999952316284
- New Value:
"rightarm": {
"rotation": [
"math.sin(1.0 - math.pow(1.0 - variable.attack_time, 3.0) * 180.0) * (variable.is_brandishing_spear ? -1.0 : 1.0 )",
"variable.is_brandishing_spear ? 0.0 : (math.sin(math.sqrt(variable.attack_time) * 360) * 11.46) * 2.0",
0
]
}Previous Value:"rightarm": {
"rotation": [
"math.sin(1.0 - math.pow(1.0 - variable.attack_time, 3.0) * 180.0) * (variable.is_brandishing_spear ? -1.0 : 1.0 )",
"variable.is_brandishing_spear ? 0.0 : variable.attack_body_rot_y * 2.0",
0
]
} - New Value:
"leftarm": {
"rotation": [
"math.sin(math.sqrt(variable.attack_time) * 360) * 11.46",
0,
0
]
}Previous Value:"leftarm": {
"rotation": [
"variable.attack_body_rot_y",
0,
0
]
} - New Value:
"leftleg": {
"rotation": [
"variable.tcos0 * -1.4",
0,
0
]
}Previous Value:"leftleg": {
"rotation": [
"variable.tcos1 * 1.4",
0,
0
]
} - Previous Value:
"leftleg": {
"rotation": [
"-math.sin(query.life_time * 76.8) * 2.865",
0,
0
]
} - New Value:
"rightarm": {
"rotation": [
"-variable.tcos0",
0,
0
]
}Previous Value:"rightarm": {
"rotation": [
"variable.tcos1",
0,
0
]
} - New Value:
"rightarm": {
"rotation": {
"0.7": {
"post": [
"math.lerp(this, 11.25 * math.mod(query.modified_distance_moved, 26.0), variable.rightarmswim_amount)",
"math.lerp(this, 180.0, variable.rightarmswim_amount)",
"math.lerp(this, 72.77 + 13.4 * math.mod(query.modified_distance_moved, 26.0), variable.rightarmswim_amount)"
],
"pre": [
"math.lerp(this, 0.0, variable.rightarmswim_amount)",
"math.lerp(this, 180.0, variable.rightarmswim_amount)",
"math.lerp(this, -0.1019 * (-65.0 * math.mod(query.modified_distance_moved, 26.0) + math.mod(query.modified_distance_moved, 26.0) * math.mod(query.modified_distance_moved, 26.0)), variable.rightarmswim_amount)"
]
},
"1.1": [
"math.lerp(this, 11.25 * math.mod(query.modified_distance_moved, 26.0), variable.rightarmswim_amount)",
"math.lerp(this, 180.0, variable.rightarmswim_amount)",
"math.lerp(this, 72.77 + 13.4 * math.mod(query.modified_distance_moved, 26.0), variable.rightarmswim_amount)"
],
"1.3": {
"post": [
"math.lerp(this, 90.0 - (22.5 * math.mod(query.modified_distance_moved, 26.0)), variable.rightarmswim_amount)",
"math.lerp(this, 180.0, variable.rightarmswim_amount)",
"math.lerp(this, 180.0, variable.rightarmswim_amount)"
],
"pre": [
"math.lerp(this, 11.25 * math.mod(query.modified_distance_moved, 26.0), variable.rightarmswim_amount)",
"math.lerp(this, 180.0, variable.rightarmswim_amount)",
"math.lerp(this, 72.77 + 13.4 * math.mod(query.modified_distance_moved, 26.0), variable.rightarmswim_amount)"
]
}
}
}Previous Value:"rightarm": {
"rotation": {
"0.7": {
"post": [
"math.lerp(this, 11.25 * variable.internal_swim_pos, variable.rightarmswim_amount)",
"math.lerp(this, 180.0, variable.rightarmswim_amount)",
"math.lerp(this, 72.77 + 13.4 * variable.internal_swim_pos, variable.rightarmswim_amount)"
],
"pre": [
"math.lerp(this, 0.0, variable.rightarmswim_amount)",
"math.lerp(this, 180.0, variable.rightarmswim_amount)",
"math.lerp(this, -0.1019 * (-65.0 * variable.internal_swim_pos + variable.internal_swim_pos * variable.internal_swim_pos), variable.rightarmswim_amount)"
]
},
"1.1": [
"math.lerp(this, 11.25 * variable.internal_swim_pos, variable.rightarmswim_amount)",
"math.lerp(this, 180.0, variable.rightarmswim_amount)",
"math.lerp(this, 72.77 + 13.4 * variable.internal_swim_pos, variable.rightarmswim_amount)"
],
"1.3": {
"post": [
"math.lerp(this, 90.0 - (22.5 * variable.internal_swim_pos), variable.rightarmswim_amount)",
"math.lerp(this, 180.0, variable.rightarmswim_amount)",
"math.lerp(this, 180.0, variable.rightarmswim_amount)"
],
"pre": [
"math.lerp(this, 11.25 * variable.internal_swim_pos, variable.rightarmswim_amount)",
"math.lerp(this, 180.0, variable.rightarmswim_amount)",
"math.lerp(this, 72.77 + 13.4 * variable.internal_swim_pos, variable.rightarmswim_amount)"
]
}
}
}
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"initial_state": "default"
- New Value:
"attacking": {
"animations": [
"attack.rotations"
],
"transitions": [
{
"default": "variable.attack_time > 0.0"
}
]
}Previous Value:"attacking": {
"animations": [
{
"attack.rotations": []
}
],
"transitions": [
{
"default": "variable.attack_time > 0.0"
}
]
} - New Value:
"baby": {
"animations": [
"humanoid_big_head"
],
"transitions": [
{
"default": "!query.is_baby"
}
]
}Previous Value:"baby": {
"animations": [
{
"humanoid_big_head": []
}
],
"transitions": [
{
"default": "!query.is_baby"
}
]
} - New Value:
"default": {
"animations": [
"humanoid_base_pose"
]
}Previous Value:"default": {
"animations": [
{
"humanoid_base_pose": []
}
]
} - New Value:
"default": {
"animations": [
"bob"
]
}Previous Value:"default": {
"animations": [
{
"bob": []
}
]
} - New Value:
"bow_and_arrow": {
"animations": [
"bow_and_arrow"
],
"transitions": [
{
"default": "!query.has_target"
}
]
}Previous Value:"bow_and_arrow": {
"animations": [
{
"bow_and_arrow": []
}
],
"transitions": [
{
"default": "!query.has_target"
}
]
} - New Value:
"brandish_spear": {
"animations": [
"brandish_spear"
],
"transitions": [
{
"default": "!variable.is_brandishing_spear"
}
]
}Previous Value:"brandish_spear": {
"animations": [
{
"brandish_spear": []
}
],
"transitions": [
{
"default": "!variable.is_brandishing_spear"
}
]
} - New Value:
"charging": {
"animations": [
"charging"
],
"transitions": [
{
"default": "!query.is_charging"
}
]
}Previous Value:"charging": {
"animations": [
{
"charging": []
}
],
"transitions": [
{
"default": "!query.is_charging"
}
]
} - New Value:
"damage_nearby_mobs": {
"animations": [
"damage_nearby_mobs"
],
"transitions": [
{
"default": "!variable.damage_nearby_mobs"
}
]
}Previous Value:"damage_nearby_mobs": {
"animations": [
{
"damage_nearby_mobs": []
}
],
"transitions": [
{
"default": "!variable.damage_nearby_mobs"
}
]
} - New Value:
"default": {
"animations": [
"holding"
]
}Previous Value:"default": {
"animations": [
{
"holding": []
}
]
} - New Value:
"default": {
"animations": [
"look_at_target_default"
],
"transitions": [
{
"gliding": "query.is_gliding"
},
{
"swimming": "query.is_swimming"
}
]
}Previous Value:"default": {
"animations": [
{
"look_at_target_default": []
}
],
"transitions": [
{
"gliding": "query.is_gliding"
},
{
"swimming": "query.is_swimming"
}
]
} - New Value:
"default": {
"animations": [
"move"
]
}Previous Value:"default": {
"animations": [
{
"move": []
}
]
} - New Value:
"swimming": {
"animations": [
"look_at_target_swimming"
],
"transitions": [
{
"gliding": "query.is_gliding"
},
{
"default": "!query.is_swimming"
}
]
}Previous Value:"swimming": {
"animations": [
{
"look_at_target_swimming": []
}
],
"transitions": [
{
"gliding": "query.is_gliding"
},
{
"default": "!query.is_swimming"
}
]
} - New Value:
"format_version": "1.10.0"
Previous Value:"format_version": "1.8.0"
- New Value:
"gliding": {
"animations": [
"look_at_target_gliding"
],
"transitions": [
{
"swimming": "query.is_swimming"
},
{
"default": "!query.is_gliding"
}
]
}Previous Value:"gliding": {
"animations": [
{
"look_at_target_gliding": []
}
],
"transitions": [
{
"swimming": "query.is_swimming"
},
{
"default": "!query.is_gliding"
}
]
} - New Value:
"riding": {
"animations": [
"riding.arms",
"riding.legs"
],
"transitions": [
{
"default": "!query.is_riding"
}
]
}Previous Value:"riding": {
"animations": [
{
"riding.arms": []
},
{
"riding.legs": []
}
],
"transitions": [
{
"default": "!query.is_riding"
}
]
} - New Value:
"sneaking": {
"animations": [
"sneaking"
],
"transitions": [
{
"default": "!query.is_sneaking"
}
]
}Previous Value:"sneaking": {
"animations": [
{
"sneaking": []
}
],
"transitions": [
{
"default": "!query.is_sneaking"
}
]
} - New Value:
"swimming": {
"animations": [
"swimming"
],
"transitions": [
{
"default": "variable.swim_amount >= 0.0"
}
]
}Previous Value:"swimming": {
"animations": [
{
"swimming": []
}
],
"transitions": [
{
"default": "variable.swim_amount >= 0.0"
}
]
} - New Value:
"use_item_progress": {
"animations": [
"use_item_progress"
],
"transitions": [
{
"default": "( variable.use_item_interval_progress >= 0.0 ) && ( variable.use_item_startup_progress >= 0.0 )"
}
]
}Previous Value:"use_item_progress": {
"animations": [
{
"use_item_progress": []
}
],
"transitions": [
{
"default": "( variable.use_item_interval_progress >= 0.0 ) && ( variable.use_item_startup_progress >= 0.0 )"
}
]
}
- New Value:
"scripts": {
"pre_animation": [
"variable.tcos0 = (Math.cos(query.modified_distance_moved * 38.17) * query.modified_move_speed / variable.gliding_speed_value) * 57.3;"
]
}Previous Value:"scripts": {
"pre_animation": [
"variable.tcos0 = (Math.cos(query.modified_distance_moved * 38.17) * query.modified_move_speed / variable.gliding_speed_value) * 57.3;",
"variable.tcos1 = -variable.tcos0;",
"variable.attack_body_rot_y = Math.sin(Math.sqrt(variable.attack_time) * 360.0) * 11.46;",
"variable.cos_attack_body_rot_y = Math.cos(variable.attack_body_rot_y);",
"variable.sin_attack_body_rot_y = Math.sin(variable.attack_body_rot_y);",
"variable.internal_swim_pos = Math.mod(query.modified_distance_moved, 26.0);",
"variable.attack = Math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3;",
"variable.attack2 = Math.sin(variable.attack_time * 180.0) * 57.3;"
]
}
Statistics:
Health
[20]
Loot / Barter Loot / Additional Drops
- Chainmail Helmet
- Diamond Helmet
- Golden Helmet
- Iron Helmet
- Leather Helmet
- Bow
- Arrow
- Bone
Attack Damage
- Melee Attack: 3
Families
- Default: Mob, Monster, Skeleton, Stray, Undead
Movement Speed
- Default: 0.25
Shoots Projectiles
- Default: Arrow
- Ranged Attack: Arrow
Other Attributes
- Burns in Daylight
- Can be Renamed
- Can Breath in Water
- Can Climb
- Can Jump
- Has Collisions
- Has Gravity
- Pushable
- Pushable by Pistons
Associated Files:
Behavior File
- behavior_packs/vanilla/entities/stray.json
Animations
- resource_packs/vanilla/animations/humanoid.animation.json
Animation Controllers
- resource_packs/vanilla/animation_controllers/humanoid.animation_controllers.json
Entity
- resource_packs/vanilla/entity/stray.entity.json
Geometry
- resource_packs/vanilla/models/entity/stray.geo.json
- resource_packs/vanilla/models/entity/stray_armor.geo.json
Loot Tables
- behavior_packs/vanilla/loot_tables/entities/armor_set_chain.json
- behavior_packs/vanilla/loot_tables/entities/armor_set_diamond.json
- behavior_packs/vanilla/loot_tables/entities/armor_set_gold.json
- behavior_packs/vanilla/loot_tables/entities/armor_set_iron.json
- behavior_packs/vanilla/loot_tables/entities/armor_set_leather.json
- behavior_packs/vanilla/loot_tables/entities/skeleton_gear.json
- behavior_packs/vanilla/loot_tables/entities/stray.json
Render Controllers
- resource_packs/vanilla/render_controllers/stray.render_controllers.json
- resource_packs/vanilla/render_controllers/stray_clothes.render_controllers.json
Sounds
- resource_packs/vanilla/sounds/mob/stray/death1.fsb
- resource_packs/vanilla/sounds/mob/stray/death2.fsb
- resource_packs/vanilla/sounds/mob/stray/hurt1.fsb
- resource_packs/vanilla/sounds/mob/stray/hurt2.fsb
- resource_packs/vanilla/sounds/mob/stray/hurt3.fsb
- resource_packs/vanilla/sounds/mob/stray/hurt4.fsb
- resource_packs/vanilla/sounds/mob/stray/idle1.fsb
- resource_packs/vanilla/sounds/mob/stray/idle2.fsb
- resource_packs/vanilla/sounds/mob/stray/idle3.fsb
- resource_packs/vanilla/sounds/mob/stray/idle4.fsb
- resource_packs/vanilla/sounds/mob/stray/step1.fsb
- resource_packs/vanilla/sounds/mob/stray/step2.fsb
- resource_packs/vanilla/sounds/mob/stray/step3.fsb
- resource_packs/vanilla/sounds/mob/stray/step4.fsb
Spawn Rules
- behavior_packs/vanilla/spawn_rules/stray.json
Textures
- resource_packs/vanilla/textures/entity/skeleton/stray.png
- resource_packs/vanilla/textures/entity/skeleton/stray_overlay.png
Material Info:
Material: Stray
{
"vertexShader": "shaders/entity.vertex",
"vrGeometryShader": "shaders/entity.geometry",
"fragmentShader": "shaders/entity.fragment",
"vertexFields": [
{
"field": "Position"
},
{
"field": "Normal"
},
{
"field": "UV0"
}
],
"variants": [
{
"skinning": {
"+defines": [
"USE_SKINNING"
],
"vertexFields": [
{
"field": "Position"
},
{
"field": "BoneId0"
},
{
"field": "Normal"
},
{
"field": "UV0"
}
]
}
},
{
"skinning_color": {
"+defines": [
"USE_SKINNING",
"USE_OVERLAY"
],
"+states": [
"Blending"
],
"vertexFields": [
{
"field": "Position"
},
{
"field": "BoneId0"
},
{
"field": "Color"
},
{
"field": "Normal"
},
{
"field": "UV0"
}
]
}
}
],
"msaaSupport": [
"Both"
],
"+samplerStates": {
"samplerIndex": 1,
"textureWrap": "Repeat"
},
"+defines": [
"USE_OVERLAY",
"ALPHA_TEST"
],
"+states": [
"DisableCulling"
]
}
Material: Stray Clothes
{
"vertexShader": "shaders/entity.vertex",
"vrGeometryShader": "shaders/entity.geometry",
"fragmentShader": "shaders/entity.fragment",
"vertexFields": [
{
"field": "Position"
},
{
"field": "Normal"
},
{
"field": "UV0"
}
],
"variants": [
{
"skinning": {
"+defines": [
"USE_SKINNING"
],
"vertexFields": [
{
"field": "Position"
},
{
"field": "BoneId0"
},
{
"field": "Normal"
},
{
"field": "UV0"
}
]
}
},
{
"skinning_color": {
"+defines": [
"USE_SKINNING",
"USE_OVERLAY"
],
"+states": [
"Blending"
],
"vertexFields": [
{
"field": "Position"
},
{
"field": "BoneId0"
},
{
"field": "Color"
},
{
"field": "Normal"
},
{
"field": "UV0"
}
]
}
}
],
"msaaSupport": [
"Both"
],
"+samplerStates": {
"samplerIndex": 1,
"textureWrap": "Repeat"
},
"+defines": [
"USE_OVERLAY",
"ALPHA_TEST"
],
"+states": [
"DisableCulling"
]
}