Refactor GDScript/C# script templates logic to be editor-only

Not a full refactor as it still goes through ScriptLanguage so it's hacky,
but at least it can now compile without this.
This commit is contained in:
Rémi Verschelde
2022-03-28 15:48:38 +02:00
parent 41d075de58
commit c9b75431f3
20 changed files with 15 additions and 18 deletions

View File

@@ -0,0 +1,30 @@
# meta-description: Classic movement for gravity games (platformer, ...)
extends _BASE_
const SPEED = 300.0
const JUMP_VELOCITY = -400.0
# Get the gravity from the project settings to be synced with RigidDynamicBody nodes.
var gravity: int = ProjectSettings.get_setting("physics/2d/default_gravity")
func _physics_process(delta: float) -> void:
# Add the gravity.
if not is_on_floor():
velocity.y += gravity * delta
# Handle Jump.
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = JUMP_VELOCITY
# Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gameplay actions.
var direction := Input.get_axis("ui_left", "ui_right")
if direction:
velocity.x = direction * SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
move_and_slide()

View File

@@ -0,0 +1,33 @@
# meta-description: Classic movement for gravity games (FPS, TPS, ...)
extends _BASE_
const SPEED = 5.0
const JUMP_VELOCITY = 4.5
# Get the gravity from the project settings to be synced with RigidDynamicBody nodes.
var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity")
func _physics_process(delta: float) -> void:
# Add the gravity.
if not is_on_floor():
velocity.y -= gravity * delta
# Handle Jump.
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = JUMP_VELOCITY
# Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gameplay actions.
var input_dir := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
var direction := (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if direction:
velocity.x = direction.x * SPEED
velocity.z = direction.z * SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
velocity.z = move_toward(velocity.z, 0, SPEED)
move_and_slide()

View File

@@ -0,0 +1,13 @@
# meta-description: Basic plugin template
@tool
extends EditorPlugin
func _enter_tree() -> void:
# Initialization of the plugin goes here.
pass
func _exit_tree() -> void:
# Clean-up of the plugin goes here.
pass

View File

@@ -0,0 +1,8 @@
# meta-description: Basic editor script template
@tool
extends EditorScript
# Called when the script is executed (using File -> Run in Script Editor).
func _run() -> void:
pass

View File

@@ -0,0 +1,13 @@
# meta-description: Base template for Node with default Godot cycle methods
extends _BASE_
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

View File

@@ -0,0 +1,3 @@
# meta-description: Empty template suitable for all Objects
extends _BASE_

View File

@@ -0,0 +1,16 @@
#!/usr/bin/env python
Import("env")
import editor.template_builders as build_template_gd
env["BUILDERS"]["MakeGDTemplateBuilder"] = Builder(
action=env.Run(build_template_gd.make_templates, "Generating GDScript templates header."),
suffix=".h",
src_suffix=".gd",
)
# Template files
templates_sources = Glob("*/*.gd")
env.Alias("editor_template_gd", [env.MakeGDTemplateBuilder("templates.gen.h", templates_sources)])

View File

@@ -0,0 +1,50 @@
# meta-description: Visual shader's node plugin template
@tool
class_name VisualShaderNode_CLASS_
extends _BASE_
func _get_name() -> String:
return "_CLASS_"
func _get_category() -> String:
return ""
func _get_description() -> String:
return ""
func _get_return_icon_type() -> int:
return PORT_TYPE_SCALAR
func _get_input_port_count() -> int:
return 0
func _get_input_port_name(port: int) -> String:
return ""
func _get_input_port_type(port: int) -> int:
return PORT_TYPE_SCALAR
func _get_output_port_count() -> int:
return 1
func _get_output_port_name(port: int) -> String:
return "result"
func _get_output_port_type(port: int) -> int:
return PORT_TYPE_SCALAR
func _get_code(input_vars: Array[String], output_vars: Array[String],
mode: int, type: int) -> String:
return output_vars[0] + " = 0.0;"