Creando plantillas de scripts

Godot provee un modo de usar plantillas de scripts como puede verse en el Diálogo Añadir Script mientras se crea un nuevo script:

../../_images/script_create_dialog_templates.png

Se provee una lista de plantilas por defecto, pero es posible modificar las existentes y crear nuevas, tanto por proyecto como para el editor.

Localizando las plantillas

Hay dos lugares donde las plantillas pueden ser colocadas.

Plantillas definidas en el editor

Esas están disponibles globalmente para cualquier proyecto. La ubicación de esas plantillas está determinada por cada SO:

  • Windows: %APPDATA%\Godot\script_templates\
  • Linux: $HOME/.local/share/godot/script_templates/
  • macOS: $HOME/Library/Application Support/Godot/script_templates/

Si no se detecta script_templates, Godot creará un conjunto de templates integrados automáticamente, así que esta lógica puede usarse para resetear los templates por defecto en caso de que los hayas sobreescrito accidentalmente.

Plantillas definidas en el proyecto

La ruta por defecto para las plantillas es la carpeta res://script_templates/. La ruta se puede cambiar configurando editor/script_templates_search_path en ProjectSettings, tanto desde código como desde el editor.

Si no se encuentra la carpeta script_templates en un proyecto, esta es ignorada.

Soporte de lenguajes y comportamiento de sobreescritura

Dependiendo de si un lenguaje en particular implementa un modo de generar scripts desde plantillas, es posible crear una plantilla que pueda ser reconocida por ese lenguaje de acuerdo a la extensión del archivo de plantilla. Para GDScript y C#, las extensiones deben ser gd y cs respectivamente.

Nota

La plantilla de script tiene que tener la misma extensión que un archivo regular de script. Esto puede ser un problema para algún parser de scripts que interprete las plantillas como scripts del proyecto. Para evitar esto asegúrate de ignorar el directorio que las contiene mediante la creación de un arthivo .gdignore. Este directorio no será visible para el sistema de archivos del proyecto, pero las plantillas podrán ser modificadas por cualquier editor externo.

Las plantillas incluidas en el editor son reemplazadas automáticamente por las plantillas específicas del proyecto si ambos scripts tienen el mismo nombre de archivo.

Plantilla por defecto

La plantilla ``Predeterminado``siempre es generada dinámicamente por lenguaje y no puede ser configurada ni sobreescrita, pero puedes usarlas como base para la creación de otras plantillas.

extends %BASE%


# Declare member variables here. Examples:
# var a%INT_TYPE% = 2
# var b%STRING_TYPE% = "text"


# Called when the node enters the scene tree for the first time.
func _ready()%VOID_RETURN%:
    pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta%FLOAT_TYPE%)%VOID_RETURN%:
#   pass
using Godot;
using System;

public class %CLASS% : %BASE%
{
    // Declare member variables here. Examples:
    // private int a = 2;
    // private string b = "text";

    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {

    }

//  // Called every frame. 'delta' is the elapsed time since the previous frame.
//  public override void _Process(float delta)
//  {
//
//  }
}

Lista de plantillas placeholder

Lo siguiente describe la lista completa de placeholders de plantillas integradas que están actualmente implementados.

Placeholders base

Parámetros Descripción
%CLASS% El nombre de la nueva clase (usado solamente en C#).
%BASE% El tipo base del que el nuevo script hereda.
%TS% Placeholder de sangría. El tipo exacto y número de espacios usados para indentación es determinado por las configuraciones de text_editor/indent/type y text_editor/indent/size en EditorSettings respectivamente.

Placeholders de tipo

Esos son sólo relevantes en GDScript con tipado estático. Dónde son reemplazados esos placeholders es determinado por la configuración de ``text_editor/completion/add_type_hints``en EditorSettings.

Parámetros Valor
%INT_TYPE% : int
%STRING_TYPE% : String
%FLOAT_TYPE% : float
%VOID_RETURN% -> void