summaryrefslogtreecommitdiff
path: root/scripts/world.gd
blob: 572a658cbc2751ee4f49fb60c9d2912366e0267e (plain)
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
extends Spatial

const SIZE = 15

var Cube = preload("res://cube.tscn")
var House = preload("res://house.tscn")
var Pine = preload("res://tree_pine.tscn")
var Oak = preload("res://tree_oak.tscn")
var cubes = Array()

func _enter_tree():
  var pn = Pine.instance()
  pn.translate(Vector3(2,1,2))
  add_child(pn)
  var ok = Oak.instance()
  ok.translate(Vector3(-2,1,2))
  add_child(ok)
  var hs = House.instance()
  hs.translate(Vector3(0,1,2))
  hs.rotate_y(PI/2)
  add_child(hs)
  _make_ball(SIZE, Vector3(0,0,0))

func _make_ball(size, center):
  var blocks = Array()
  for x in range(-size, size):
    var line_x = Array()
    blocks.append(line_x)
    for y in range(0, -size, -1):
      var line_y = Array()
      line_x.append(line_y)
      for z in range(-size, size):
        var relative = Vector3(x, y, z)
        if floor(relative.length()) <= size/2:
          var cube = Cube.instance()
          cube.translate(relative + center)
          cube.set_scale(Vector3(0.5, 0.5, 0.5))
          add_child(cube)
          line_y.append(cube)
        else:
          line_y.append(null)
          
func _on_click():
  var cam = get_tree().get_root().get_camera()
  cam.select(self)