summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/base.gd16
-rw-r--r--scripts/camera.gd12
-rw-r--r--scripts/combinator_panel.gd14
-rw-r--r--scripts/hud.gd16
-rw-r--r--scripts/multiverse_shop.gd53
-rw-r--r--scripts/player.gd17
-rw-r--r--scripts/world.gd4
7 files changed, 123 insertions, 9 deletions
diff --git a/scripts/base.gd b/scripts/base.gd
index 6b48222..f89eedc 100644
--- a/scripts/base.gd
+++ b/scripts/base.gd
@@ -7,6 +7,7 @@ var Incubator = preload("res://incubator.tscn")
var cam = null
func _ready():
+ randomize()
self.cam = get_node("Camera")
func _process(delta):
@@ -20,18 +21,21 @@ func _input(event):
elif event.button_index == BUTTON_WHEEL_UP:
self.cam.translate(Vector3(0,0,-0.1))
self.cam.reselect()
+ elif event.button_index == BUTTON_RIGHT:
+ self.cam.reset()
if event.type == InputEvent.MOUSE_MOTION and event.button_mask == BUTTON_MASK_MIDDLE:
- get_node("Camera").rot_around(event.relative_x/(30))
+ self.cam.rot_around(event.relative_x/(30))
+
if event.type == InputEvent.KEY:
if event.scancode == KEY_A:
- get_node("Camera").translate(Vector3(-0.1,0,0))
+ self.cam.translate(Vector3(-0.1,0,0))
if event.scancode == KEY_D:
- get_node("Camera").translate(Vector3(0.1,0,0))
+ self.cam.translate(Vector3(0.1,0,0))
if event.scancode == KEY_S:
- get_node("Camera").translate(Vector3(0,-0.1,0))
+ self.cam.translate(Vector3(0,-0.1,0))
if event.scancode == KEY_W:
- get_node("Camera").translate(Vector3(0,0.1,0))
+ self.cam.translate(Vector3(0,0.1,0))
if event.scancode == KEY_H:
- var s = get_node("Camera").get_selected()
+ var s = self.cam.get_selected()
if s != null:
get_node("Incubator").push_world(s) \ No newline at end of file
diff --git a/scripts/camera.gd b/scripts/camera.gd
index 814a549..b099e16 100644
--- a/scripts/camera.gd
+++ b/scripts/camera.gd
@@ -3,13 +3,16 @@ extends InterpolatedCamera
var selected = null
func _ready():
- set_target(get_parent().get_node("overview"))
- self.selected = get_parent().get_node("center")
+ reset()
func select(what, new_target):
+ print("before set")
set_target(new_target)
+ print("after set")
if self.selected != what:
+ print("before interp")
set_interpolation_enabled(true)
+ print("after interp")
#set_translation(what.translation + Vector3(1,3,0))
self.selected = what
@@ -24,6 +27,11 @@ func rot_around(amount):
var rotated = relative.rotated(Vector3(0,1,0), amount)
set_translation(self.selected.translation + rotated)
reselect()
+
+func reset():
+ set_target(get_parent().get_node("overview"))
+ set_interpolation_enabled(true)
+ self.selected = get_parent().get_node("center")
func get_selected():
return self.selected \ No newline at end of file
diff --git a/scripts/combinator_panel.gd b/scripts/combinator_panel.gd
new file mode 100644
index 0000000..333187f
--- /dev/null
+++ b/scripts/combinator_panel.gd
@@ -0,0 +1,14 @@
+extends Panel
+
+func _ready():
+ set_process_input(true)
+
+func _input(event):
+ print(event)
+
+func _on_Tree_gui_input( ev ):
+ #print(ev)
+ pass
+
+func _on_Tree_mouse_entered():
+ print("enter")
diff --git a/scripts/hud.gd b/scripts/hud.gd
new file mode 100644
index 0000000..4028192
--- /dev/null
+++ b/scripts/hud.gd
@@ -0,0 +1,16 @@
+extends Node
+
+func _ready():
+ pass
+
+func _on_ms_button_pressed():
+ var visible = get_node("ms").is_visible()
+ get_node("ms").set_visible(!visible)
+ if !visible:
+ get_node("storage").set_visible(false)
+
+func _on_storage_button_pressed():
+ var visible = get_node("storage").is_visible()
+ get_node("storage").set_visible(!visible)
+ if !visible:
+ get_node("ms").set_visible(false)
diff --git a/scripts/multiverse_shop.gd b/scripts/multiverse_shop.gd
new file mode 100644
index 0000000..177c874
--- /dev/null
+++ b/scripts/multiverse_shop.gd
@@ -0,0 +1,53 @@
+extends Control
+
+var data = null
+
+func _ready():
+ var map = {"1": get_node("tabs/*/items"),
+ "2": get_node("tabs/**/items"),
+ "3": get_node("tabs/***/items"),
+ "other": get_node("tabs/other/items")}
+ var file = File.new()
+ file.open("res://assets/shop.json", File.READ)
+ var content = file.get_as_text()
+ file.close()
+ self.data = parse_json(content)
+ for k in self.data.keys():
+ var tree = map[k]
+ var root = tree.create_item()
+ tree.set_columns(2)
+ tree.set_column_title(0, "Item")
+ tree.set_column_title(1, "Cost")
+ tree.set_column_titles_visible(true)
+ tree.set_column_expand(1, false)
+ tree.set_column_min_width(1,40)
+ tree.set_hide_root(true)
+ tree.set_select_mode(Tree.SELECT_ROW)
+ for i in range(self.data[k].size()):
+ var item = self.data[k][i]
+ var itm = tree.create_item(root)
+ itm.set_text(0, item["name"])
+ itm.set_text(1, str(item["cost"]))
+ itm.set_tooltip(0, item["desc"])
+ itm.set_metadata(0, item)
+ itm.set_collapsed(true)
+
+ var desc = tree.create_item(itm)
+ desc.set_text(0, item["desc"])
+ desc.set_selectable(0, false)
+
+func _on_buy_pressed():
+ var tab = get_node("tabs").get_current_tab_control()
+ var tree = tab.get_node("items")
+ var itm = tree.get_selected()
+ if itm != null and itm.is_selected(0):
+ var item = itm.get_metadata(0)
+ var player = get_tree().get_root().get_node("Game/Player")
+ if player.cash >= item["cost"]:
+ if player.storage.has(item["id"]):
+ player.storage[item["id"]] += 1
+ else:
+ player.storage[item["id"]] = 1
+ player.cash -= item["cost"]
+ else:
+ pass \ No newline at end of file
diff --git a/scripts/player.gd b/scripts/player.gd
new file mode 100644
index 0000000..85c5f9e
--- /dev/null
+++ b/scripts/player.gd
@@ -0,0 +1,17 @@
+extends Node
+
+var cash = 1000 setget set_cash, get_cash
+var storage = {}
+
+func _ready():
+ _update_hud()
+
+func get_cash():
+ return cash
+
+func set_cash(csh):
+ cash = csh
+ _update_hud()
+
+func _update_hud():
+ get_tree().get_root().get_node("Game/HUD/funds/cash").set_text(str(cash)) \ No newline at end of file
diff --git a/scripts/world.gd b/scripts/world.gd
index 89df926..9117678 100644
--- a/scripts/world.gd
+++ b/scripts/world.gd
@@ -41,5 +41,7 @@ func _make_ball(size, center):
line_y.append(null)
func _on_click():
+ print("click")
var cam = get_tree().get_root().get_camera()
- cam.select(self, get_node("point")) \ No newline at end of file
+ cam.select(self, get_node("point"))
+ cam.reselect() \ No newline at end of file