extends Reference const NAME = "ready" var ctx = null func _init(): pass func enter_from(state): assert(ctx.item_to_craft != null) for item_slot in ctx.item_slots: item_slot.add_enabled = true item_slot.remove_enabled = true ctx.item_dump.enabled = false ctx.coin_machine.enabled = true ctx.progress_text.text = "Ready!" ctx.status_light.prime() func exit_to(state): pass func update(delta): pass func on_coin_machine_coin_requirement_met(player): assert(ctx.item_to_craft != null) ctx.change_state(ctx.States[ctx.EState.WORKING].new() ) func on_gen_timer_timeout(): assert(false, "gen timer shouldn't trigger while ready") func on_slot_item_changed(item): if ctx.items_in_slots.size() < 2: ctx.change_state(ctx.States[ctx.EState.IDLE].new()) elif ctx.item_to_craft == null: ctx.change_state(ctx.States[ctx.EState.BLOCKED].new()) func on_item_dump_item_dump_completed(): assert(false, "shouldn't trigger while ready") func on_damage_taken(): if ctx.current_hp <= 0: ctx.change_state(ctx.States[ctx.EState.BROKEN].new())