(
    {
        // 
        // Ambient
        //
        Campfire: (
            files: [
                "voxygen.audio.sfx.ambient.fire",
            ],
            threshold: 0.5,
        ),
        Embers: (
            files: [
                "voxygen.audio.sfx.ambient.embers",
            ],
            threshold: 0.5,
        ),
        Birdcall: (
            files: [
                "voxygen.audio.sfx.ambient.birdcall_1",
                "voxygen.audio.sfx.ambient.birdcall_2",
            ],
            threshold: 10.0,
        ),
        Owl: (
            files: [
                "voxygen.audio.sfx.ambient.owl_1",
            ],
            threshold: 14.0,
        ),
        Cricket: (
            files: [
                "voxygen.audio.sfx.ambient.crickets_1",
            ],
            threshold: 3.0,
        ),
        Frog: (
            files: [
                "voxygen.audio.sfx.ambient.frog_croak_1",
            ],
            threshold: 4.0,
        ),
        Bees: (
            files: [
                "voxygen.audio.sfx.ambient.bees_1",
            ],
            threshold: 15.0,
        ),
        RunningWater: (
            files: [
                "voxygen.audio.sfx.ambient.running_water_1",
            ],
            threshold: 7.0,
        ),
        //
        // Character States
        //
        Swim: (
            files: [
                "voxygen.audio.sfx.footsteps.water_splash_1",
                "voxygen.audio.sfx.footsteps.water_splash_2",
                "voxygen.audio.sfx.footsteps.water_splash_3",
                "voxygen.audio.sfx.footsteps.water_splash_4",
            ],
            threshold: 0.25,
        ),
        Run: (
            files: [
                "voxygen.audio.sfx.footsteps.stepgrass_1",
                "voxygen.audio.sfx.footsteps.stepgrass_2",
                "voxygen.audio.sfx.footsteps.stepgrass_3",
                "voxygen.audio.sfx.footsteps.stepgrass_4",
                "voxygen.audio.sfx.footsteps.stepgrass_5",
                "voxygen.audio.sfx.footsteps.stepgrass_6",
            ],
            threshold: 0.25,
        ),
        QuadRun: (
            files: [
                "voxygen.audio.sfx.footsteps.stepgrass_1",
                "voxygen.audio.sfx.footsteps.stepgrass_2",
                "voxygen.audio.sfx.footsteps.stepgrass_3",
                "voxygen.audio.sfx.footsteps.stepgrass_4",
                "voxygen.audio.sfx.footsteps.stepgrass_5",
                "voxygen.audio.sfx.footsteps.stepgrass_6",
            ],
            threshold: 0.12,
        ),
        SnowRun: (
            files: [
                "voxygen.audio.sfx.footsteps.snow_step_1",
                "voxygen.audio.sfx.footsteps.snow_step_2",
                "voxygen.audio.sfx.footsteps.snow_step_3",
            ],
            threshold: 0.25,
        ),
        QuadSnowRun: (
            files: [
                "voxygen.audio.sfx.footsteps.snow_step_1",
                "voxygen.audio.sfx.footsteps.snow_step_2",
                "voxygen.audio.sfx.footsteps.snow_step_3",
            ],
            threshold: 0.12,
        ),
        //ExperienceGained: (
        //    files: [
        //        "voxygen.audio.sfx.character.experience_gained_1",
        //        "voxygen.audio.sfx.character.experience_gained_2",
        //        "voxygen.audio.sfx.character.experience_gained_3",
        //    ],
        //    threshold: 0.5,
        //),
        LevelUp:(
            files: [
                "voxygen.audio.sfx.character.level_up_sound_-_shorter_wind_up",
            ],
            threshold: 0.5,
        ),
        //Jump: (
        //    files: [
        //        // Event not implemented?
        //    ],
        //    threshold: 0.25,
        //),
        //Fall: (
        //    files: [
        //        // Event not implemented?
        //    ],
        //    threshold: 0.25,
        //),
        Roll: (
            files: [
                "voxygen.audio.sfx.character.dive_roll_1",
                "voxygen.audio.sfx.character.dive_roll_2",
            ],
            threshold: 0.25,
        ),
        //Climb: (
        //    files: [
        //         TODO: sync with animation
        //        "voxygen.audio.sfx.footsteps.stepgrass_1",
        //        "voxygen.audio.sfx.footsteps.stepgrass_2",
        //        "voxygen.audio.sfx.footsteps.stepgrass_3",
        //        "voxygen.audio.sfx.footsteps.stepgrass_4",
        //        "voxygen.audio.sfx.footsteps.stepgrass_5",
        //        "voxygen.audio.sfx.footsteps.stepgrass_6",
        //    ],
        //    threshold: 0.25,
        //),
        GliderOpen: (
            files: [
                "voxygen.audio.sfx.glider_open",
            ],
            threshold: 0.5,
        ),
        //Glide: ( 
        //    files: [
        //        // Event Missing or not implemented?
        //    ],
        //    threshold: 0.5,
        //),
        GliderClose: (
            files: [
                "voxygen.audio.sfx.glider_close",
            ],
            threshold: 0.5,
        ),

        //
        // Sword
        //
        Wield(Sword): (
            files: [
                "voxygen.audio.sfx.weapon.sword_out",
            ],
            threshold: 0.5,
        ),
        Unwield(Sword): (
            files: [
                "voxygen.audio.sfx.weapon.sword_in",
            ],
            threshold: 0.5,
        ),
        Attack(ComboMelee(Swing, 1), Sword): (
            files: [
                "voxygen.audio.sfx.abilities.swing_sword",
            ],
            threshold: 0.7,
        ),
        Attack(ComboMelee(Swing, 2), Sword): (
            files: [
                "voxygen.audio.sfx.abilities.separated_second_swing",
            ],
            threshold: 0.7,
        ),
        Attack(ComboMelee(Swing, 3), Sword): (
            files: [
                "voxygen.audio.sfx.abilities.separated_third_swing",
            ],
            threshold: 0.7,
        ),
        Attack(DashMelee(Swing), Sword): (
            files: [
                "voxygen.audio.sfx.abilities.sword_dash",
            ],
            threshold: 0.8,
        ),
        Attack(SpinMelee(Swing), Sword): (
            files: [
                "voxygen.audio.sfx.abilities.swing_sword",
            ],
            threshold: 0.7,
        ),
        Inventory(CollectedTool(Sword)): (
            files: [
                "voxygen.audio.sfx.inventory.pickup_sword",
            ],
            threshold: 0.3,
        ),

        //
        // Hammer
        //
        Wield(Hammer): (
            files: [
                "voxygen.audio.sfx.weapon.sword_out",
            ],
            threshold: 0.5,
        ),
        Unwield(Hammer): (
            files: [
                "voxygen.audio.sfx.weapon.sword_in",
            ],
            threshold: 0.5,
        ),
        Attack(ComboMelee(Swing, 1), Hammer): (
            files: [
                "voxygen.audio.sfx.abilities.swing",
            ],
            threshold: 0.7,
        ),
        Attack(ChargedMelee(Swing), Hammer): (
            files: [
                "voxygen.audio.sfx.abilities.swing",
            ],
            threshold: 0.7,
        ),
        Attack(LeapMelee(Swing), Hammer): (
            files: [
                "voxygen.audio.sfx.abilities.swing",
            ],
            threshold: 0.8,
        ),
        Inventory(CollectedTool(Hammer)): (
            files: [
                "voxygen.audio.sfx.inventory.pickup_sword",
            ],
            threshold: 0.3,
        ),

        //
        // Axe
        //
        Wield(Axe): (
            files: [
                "voxygen.audio.sfx.weapon.sword_out",
            ],
            threshold: 0.5,
        ),
        Unwield(Axe): (
            files: [
                "voxygen.audio.sfx.weapon.sword_in",
            ],
            threshold: 0.5,
        ),
        Attack(ComboMelee(Swing, 1), Axe): (
            files: [
                "voxygen.audio.sfx.abilities.swing",
            ],
            threshold: 0.7,
        ),
        Attack(ComboMelee(Swing, 2), Axe): (
            files: [
                "voxygen.audio.sfx.abilities.swing",
            ],
            threshold: 0.7,
        ),
        Attack(SpinMelee(Swing), Axe): (
            files: [
                "voxygen.audio.sfx.abilities.swing",
            ],
            threshold: 0.8,
        ),
        Attack(LeapMelee(Swing), Axe): (
            files: [
                "voxygen.audio.sfx.abilities.swing",
            ],
            threshold: 0.8,
        ),
        Inventory(CollectedTool(Axe)): (
            files: [
                "voxygen.audio.sfx.inventory.pickup_sword",
            ],
            threshold: 0.3,
        ),

        //
        // Fire Staff
        //
        Wield(Staff): (
            files: [
                "voxygen.audio.sfx.weapon.sword_out",
            ],
            threshold: 0.5,
        ),
        Unwield(Staff): (
            files: [
                "voxygen.audio.sfx.weapon.sword_in",
            ],
            threshold: 0.5,
        ),
        Attack(BasicBeam, Staff): (
            files: [
                "voxygen.audio.sfx.abilities.flame_thrower",
            ],
            threshold: 0.2,
        ),
        //Attack(BasicRanged, Staff): (
        //    files: [
        //        "voxygen.audio.sfx.abilities.staff_channeling",
        //    ],
        //    threshold: 0.8,
        //),
        Inventory(CollectedTool(Staff)): (
            files: [
                "voxygen.audio.sfx.inventory.pickup_staff",
            ],
            threshold: 0.3,
        ),

        //
        // Bow
        //
        Wield(Bow): (
            files: [
                "voxygen.audio.sfx.weapon.sword_out",
            ],
            threshold: 0.5,
        ),
        Unwield(Bow): (
            files: [
                "voxygen.audio.sfx.weapon.sword_in",
            ],
            threshold: 0.5,
        ),
        //Attack(BasicRanged, Bow): (
        //    files: [
        //        // channeling sound.
        //    ],
        //    threshold: 0.8,
        //),
        Inventory(CollectedTool(Bow)): (
            files: [
                "voxygen.audio.sfx.inventory.add_item",
            ],
            threshold: 0.3,
        ),

        //
        // Sceptre
        //
        Wield(Sceptre): (
            files: [
                "voxygen.audio.sfx.weapon.sword_out",
            ],
            threshold: 0.5,
        ),
        Unwield(Sceptre): (
            files: [
                "voxygen.audio.sfx.weapon.sword_in",
            ],
            threshold: 0.5,
        ),

        //
        // Dagger
        //
        Wield(Dagger): (
            files: [
                "voxygen.audio.sfx.weapon.dagger_out",
            ],
            threshold: 0.5,
        ),
        Unwield(Dagger): (
            files: [
                "voxygen.audio.sfx.weapon.dagger_in",
            ],
            threshold: 0.5,
        ),
        Attack(BasicMelee, Dagger): (
            files: [
                "voxygen.audio.sfx.abilities.swing_sword",
            ],
            threshold: 0.8,
        ),
        Attack(DashMelee(Swing), Dagger): (
            files: [
                "voxygen.audio.sfx.abilities.sword_dash",
            ],
            threshold: 0.8,
        ),
        Inventory(CollectedTool(Dagger)): (
            files: [
                "voxygen.audio.sfx.inventory.pickup_sword",
            ],
            threshold: 0.3,
        ),

        //
        // Shield
        //
        Wield(Shield): (
            files: [
                "voxygen.audio.sfx.weapon.shield_out",
            ],
            threshold: 0.5,
        ),
        Unwield(Shield): (
            files: [
                "voxygen.audio.sfx.weapon.sword_in",
            ],
            threshold: 0.5,
        ),
        Attack(BasicMelee, Shield): (
            files: [
                "voxygen.audio.sfx.abilities.swing",
            ],
            threshold: 0.8,
        ),
        Inventory(CollectedTool(Shield)): (
            files: [
                "voxygen.audio.sfx.inventory.pickup_sword",
            ],
            threshold: 0.3,
        ),

        //
        // Inventory
        //
        Inventory(Collected): (
            files: [
                "voxygen.audio.sfx.inventory.add_item",
            ],
            threshold: 0.3,
        ),
        Inventory(CollectedItem("ShinyGem")): (
            files: [
                "voxygen.audio.sfx.weapon.staff_out",
            ],
            threshold: 0.3,
        ),
        Inventory(CollectFailed): (
            files: [
                "voxygen.audio.sfx.inventory.add_failed",
            ],
            threshold: 0.3,
        ),
        Inventory(Swapped): (
            files: [
                "voxygen.audio.sfx.inventory.add_item",
            ],
            threshold: 0.3,
        ),
        Inventory(Given): (
            files: [
                "voxygen.audio.sfx.inventory.add_item",
            ],
            threshold: 0.3,
        ),
        Inventory(Dropped): (
            files: [
                "voxygen.audio.sfx.inventory.drop_item",
            ],
            threshold: 0.3,
        ),

        //
        // Consumables
        //
        Inventory(Consumed("Potion")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.liquid",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("PotionMinor")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.liquid",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("PotionMed")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.liquid",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("PotionLarge")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.liquid",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("PotionExp")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.liquid",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("SunflowerTea")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.liquid",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("Apple")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.apple",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("Mushroom")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.food",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("Cheese")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.food",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("AppleShroomCurry")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.food",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("AppleStick")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.food",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("Coconut")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.food",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("MushroomStick")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.food",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("Velorite")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.food",
            ],
            threshold: 0.3,
        ),
        Inventory(Consumed("VeloriteFrag")): (
            files: [
                "voxygen.audio.sfx.inventory.consumable.food",
            ],
            threshold: 0.3,
        ),
        //Explosion: (
        //    files: [
        //        // in code
        //    ],
        //    threshold: 0.2,
        //),
        //ProjectileShot: (
        //    files: [
        //        // in code
        //    ],
        //    threshold: 0.5,
        //),
    }
)
