1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
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 = 800
state.ship("position").x = 800
state.ship\action(coroutine.create(game.ship_move_in_co))
state.ship("sprite").source = "data/level_11.png"
t1 = elayer\mark_square(20,6,"ion thruster")
t2 = elayer\mark_square(20,9,"ion thruster")
--flayer\mark_square(8,4,"")
t3 = hlayer\mark_square(10,8,"high volt source")
hlayer\mark_square(10,9,"high volt cabel")
hlayer\mark_square(10,10,"high volt cabel")
hlayer\mark_square(9,10,"high volt cabel")
t4 = flayer\mark_square(13,8,"generator")
t5 = elayer\mark_square(13,8,"generator")
t6 = hlayer\mark_square(8,4,"laser beam")
t7 = hlayer\mark_square(8,5,"laser beam")
t8 = hlayer\mark_square(8,10,"laser beam")
t9 = hlayer\mark_square(8,11,"laser beam")
p1 = flayer\mark_square(7,7,"liquid fuel tank")
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{
{t1,t5,etiles},
{t2,t5,etiles},
{t4,p1,ftiles},
}
paths2 = layer.check_hv_paths{
{t6,t3,htiles},
{t7,t3,htiles},
{t8,t3,htiles}
{t9,t3,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
|