mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-19 08:03:48 +00:00
Custom func_godot entities
This commit is contained in:
parent
8ab7735d17
commit
929d993f99
360 changed files with 4983 additions and 3944 deletions
42
3D/TrenchBroom/EntityScripts/tb_manager.gd
Normal file
42
3D/TrenchBroom/EntityScripts/tb_manager.gd
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
class_name TbManager
|
||||
extends Node
|
||||
|
||||
# Common inverse scale. Calculated as 1.0 / Inverse Scale Factor.
|
||||
# Used to help translate properties using Quake Units into Godot Units.
|
||||
const INVERSE_SCALE: float = 0.03125
|
||||
|
||||
enum {
|
||||
WORLD_LAYER = (1 << 0),
|
||||
ACTOR_LAYER = (1 << 1),
|
||||
TRIGGER_LAYER = (1 << 2)
|
||||
}
|
||||
|
||||
func use_targets(activator: Node, target: String) -> void:
|
||||
# Targetnames are really Godot Groups, so we can have multiple entities
|
||||
# share a common "targetname" in Trenchbroom.
|
||||
var target_list: Array[Node] = get_tree().get_nodes_in_group(target)
|
||||
for targ in target_list:
|
||||
var f: String
|
||||
# Be careful when specifying a function since we can't pass arguments
|
||||
# to it (without hackarounds of course)
|
||||
if 'targetfunc' in activator:
|
||||
f = activator.targetfunc
|
||||
if f.is_empty():
|
||||
f = "use"
|
||||
if targ.has_method(f):
|
||||
targ.call(f)
|
||||
|
||||
func set_targetname(node: Node, targetname: String) -> void:
|
||||
if node != null and not targetname.is_empty():
|
||||
node.add_to_group(targetname)
|
||||
|
||||
# Converts Quake 1 axis to Godot axis
|
||||
static func id_vec_to_godot_vec(vec: Variant)->Vector3:
|
||||
var org: Vector3 = Vector3.ZERO
|
||||
if vec is Vector3:
|
||||
org = vec
|
||||
elif vec is String:
|
||||
var arr: PackedFloat64Array = (vec as String).split_floats(" ")
|
||||
for i in max(arr.size(), 3):
|
||||
org[i] = arr[i]
|
||||
return Vector3(org.y, org.z, org.x)
|
||||
Loading…
Add table
Add a link
Reference in a new issue