Added buch of stuff
This commit is contained in:
12
nodes/robots/modules/module.gd
Normal file
12
nodes/robots/modules/module.gd
Normal file
@@ -0,0 +1,12 @@
|
||||
class_name Module extends Node
|
||||
|
||||
@onready var cpu := get_parent() as CPU
|
||||
|
||||
func set_registers(index:int)->int:
|
||||
return 0
|
||||
|
||||
func early_tick()->void:
|
||||
pass
|
||||
|
||||
func late_tick()->void:
|
||||
pass
|
||||
1
nodes/robots/modules/module.gd.uid
Normal file
1
nodes/robots/modules/module.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://duhvogscwatf6
|
||||
39
nodes/robots/modules/player_click_module.gd
Normal file
39
nodes/robots/modules/player_click_module.gd
Normal file
@@ -0,0 +1,39 @@
|
||||
extends Module
|
||||
|
||||
|
||||
var enabled := true
|
||||
|
||||
var pos_x_register_index:int
|
||||
var pos_y_register_index:int
|
||||
var pos_z_register_index:int
|
||||
|
||||
func _ready() -> void:
|
||||
if Terrain.instance == null:
|
||||
print("No terrain to get clicks from")
|
||||
|
||||
func set_registers(index:int)->int:
|
||||
pos_x_register_index = index
|
||||
pos_y_register_index = index+1
|
||||
pos_z_register_index = index+2
|
||||
return 3
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if not enabled: return
|
||||
if event is InputEventMouseButton and event.is_pressed():
|
||||
var button_event = event as InputEventMouseButton
|
||||
if button_event.button_index == MOUSE_BUTTON_LEFT:
|
||||
set_click_registers()
|
||||
elif button_event.button_index == MOUSE_BUTTON_RIGHT:
|
||||
pass
|
||||
|
||||
func set_click_registers()->void:
|
||||
var mouse_pos_2d := get_viewport().get_mouse_position()
|
||||
var current_camera := get_viewport().get_camera_3d()
|
||||
var origin := current_camera.project_ray_origin(mouse_pos_2d)
|
||||
var dir := current_camera.project_ray_normal(mouse_pos_2d)
|
||||
var res := Terrain.instance.get_voxel_tool().raycast(origin, dir, 100)
|
||||
var registers := cpu.cobor_vm.get_registers()
|
||||
registers[pos_x_register_index] = res.previous_position.x
|
||||
registers[pos_y_register_index] = res.previous_position.y
|
||||
registers[pos_z_register_index] = res.previous_position.z
|
||||
cpu.cobor_vm.set_registers(cpu.register_size, registers)
|
||||
1
nodes/robots/modules/player_click_module.gd.uid
Normal file
1
nodes/robots/modules/player_click_module.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dii2n2xcatyuh
|
||||
6
nodes/robots/modules/player_click_module.tscn
Normal file
6
nodes/robots/modules/player_click_module.tscn
Normal file
@@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://d22umiybuk0xf"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dii2n2xcatyuh" path="res://nodes/robots/modules/player_click_module.gd" id="1_few5k"]
|
||||
|
||||
[node name="PlayerClickModule" type="Node"]
|
||||
script = ExtResource("1_few5k")
|
||||
Reference in New Issue
Block a user