layer = require "layers" game = require "game" state = require "global" graph = require "graph" import Layer from layer ui = require "ui" mod = ... mod.setup_level = () -> state.current_level = 10 --ret = am.group! state.move_out_done = false state.clear_layers! flayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png") elayer = Layer("electric","electric wire",10,"data/layer_electric.png") hlayer = Layer("high voltage","high volt cabel",30,"data/layer_hv.png") state.add_layer(flayer) state.add_layer(elayer) state.add_layer(hlayer) --state.money = 500 state.money = 1460 state.ship("position").x = 800 state.ship\action(coroutine.create(game.ship_move_in_co)) state.ship("sprite").source = "data/level_12.png" t1 = flayer\mark_square(9,12,"liquid fuel tank") t2 = flayer\mark_square(24,6,"generator") t3 = elayer\mark_square(24,6,"generator") t4 = flayer\mark_square(26,6,"liquid fuel thruster") t5 = flayer\mark_square(26,8,"liquid fuel thruster") t6 = flayer\mark_square(26,10,"liquid fuel thruster") t7 = elayer\mark_square(24,4,"ion thruster") t8 = elayer\mark_square(20,3,"ion thruster") t9 = elayer\mark_square(15,3,"ion thruster") t10 = elayer\mark_square(19,9,"ion thruster") t11 = elayer\mark_square(19,12,"battery") t12 = hlayer\mark_square(16,8,"high volt source") t13 = hlayer\mark_square(8,5,"laser beam") elayer.node.hidden = true hlayer.node.hidden = true state.selected_layer = flayer state.update = () -> ftiles = flayer\flat_tiles! etiles = elayer\flat_tiles! --Mege the etiles into the ftiles layer so we can check --that hv cabels are not next to normal cables htiles = hlayer\flat_tiles! for _,t in pairs etiles table.insert(htiles,t) --table.merge(htiles,etiles) --table.merge(htiles,hlayer\flat_tiles!) print("htiles before path finding:",htiles) paths,paths2 = nil,nil pass,err = pcall(() -> paths = layer.check_paths{ {t10,t11,etiles}, {t7,t3,etiles}, {t8,t3,etiles}, {t9,t3,etiles}, {t2,t1,ftiles}, {t4,t1,ftiles}, {t5,t1,ftiles}, {t6,t1,ftiles}, } paths2 = layer.check_hv_paths{ {t12,t13,htiles}, } print("paths:",paths) print("paths2 is",paths2) return (paths and paths2) ) print("pass:",pass,"err:",err) if pass and err state.ship\action(coroutine.create(game.ship_move_out_co)) ui.reload_ui_layers! mod