extend("fiskheroes:hero_basic");
loadTextures({
    "layer1": "skarredheroes:bat/arkham_layer1",
    "layer2": "skarredheroes:bat/arkham_layer2",
    "cape": "skarredheroes:bat/arkham_cape",
    "cape2": "skarredheroes:bat/arkham_cape2"
});

var capes = implement("fiskheroes:external/capes");

var cape;

function initEffects(renderer) {
    var physics = renderer.createResource("CAPE_PHYSICS", null);
    physics.maxFlare = 0.4;
    physics.flareDegree = 1.5;
    physics.flareFactor = 1.2;
    physics.flareElasticity = 5;

    cape = capes.createGlider(renderer, 24, "fiskheroes:cape_batman.mesh.json", physics);
    cape.effect.texture.set("cape");

    renderer.bindProperty("fiskheroes:equipment_wheel").color.set(0x000000);
    renderer.bindProperty("fiskheroes:equipped_item").setItems([
        { "anchor": "body", "scale": 0.7, "offset": [-4.5, 10.5, 0.4], "rotation": [110.0, 5.0, 0.0] }
    ]);
}

function render(entity, renderLayer, isFirstPersonArm) {
    if (!isFirstPersonArm && renderLayer == "CHESTPLATE") {
        cape.render(entity, entity.getInterpolatedData("fiskheroes:wing_animation_timer"));
	if (entity.getData('fiskheroes:gliding')) {
		cape.effect.texture.set("cape2");
	} else {
		cape.effect.texture.set("cape");
	}
    }
}
