Guia de programación

From Space Engineers Wiki
Revision as of 09:33, 27 February 2018 by Jose.ferreira (talk | contribs) (Compilando)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Introducción

Acceso al editor

Solo un jugador puede editar el mismo codigo a la vez. Si alguien intenta usar el editor de un bloque o intenta abrir el codigo en uso, se le notificara que el editor esta en uso.

Metodo principal

Cuando el editor es abierto por primera vez, el metodo void Main() estará dentro del editor de codigo. Este método será llamado cuando se ejecute el script. Si el metodo Main es borrado o renombrado, el script no se ejecutará y se notificara en el área de detalles del bloque programado Métodos y variables pueden ser definidos y usados, pero solo el método Main, será ejecutado sin parametros

Vida de las variables

Existen dos tipos de variables al programar:

Locales (Dentro de los métodos) - Estas variables se mantienen solo durante la ejecución del método, las variables se "perderán" una vez que el método termine. Globales (Fuera de los métodos) - Estas variables se mantienen durante el tiempo de vida del código, por ejemplo: Las variables globales se mantendría entre diferentes ejecuciones del código, pero al presionar "Recordar & Salir", todas las variables globales se reescribirán por los del código. Esto es debido que las variables son únicas y estas se rehacen entre cada compilación o guardado de la partida.

Compilando

Cuando el botón "Revisar código" es presionado, el código sera compilado y se mostraran los resultados. Estos son los pasos en el proceso de compilacion: Primero el codigo dentro del editor es compilado por C# para revisar los errores del lenguaje. Si hay algún error durante la compilación el siguiente dialogo sera mostrado: It this case “aaa” string is placed before Main method. This is the wrong language construction and the compilation failed. En el dialogo de error, sera mostrado el numero de la linea y descripción de el error. Después de compilar, es revisado el uso de "espacios de nombres" y tipos. En el caso que esto falle, se mostrara el siguiente dialogo: In this case System.IO.Directory was used to delete some directory. This is forbidden and error is shown that “Not allowed type was used in script”. Si se supera la compilación y la revisión, se mostrara un dialogo confirmando que el codigo esta guardado.

Ejecución de código

Cuando el boton "Run" es presionado o "Run" es asignado a una acción del terminal, el codigo es ejecutado. Actualmente "Run" debe ser llamado manualmente

Contador de instrucciones

Cada vez que un código es ejecutado, cada instrucciones contada. Si el codigo ejecuta mas instrucciones que el limite, la ejecucion se detendra y sera notificado al usuario que el codigo es muy complejo para ejecutar. Esto previene que el código "Congele" el juego.

Interfaces disponibles

Posibles acciones

Actualmente solo las acciones del terminal "dispararan" el código interno. El usuario puede acceder al sistema del terminal desde una malla activa a cualquier bloque programable y "disparar" la accion del terminal.

Clases de Bloques (Lista de acciones)

Misma clase de bloque para diferente Sub-tipo de ID

Los mismos bloques tienen el mismo pariente (Por ejemplo: <TypeId> en cubeblock.sbc) y difieren solo en el sub-tipo (Por ejemplo: <SubtypeId>). Esto significa que no hay diferencias entre los bloques en el codigo.
Por ejemplo los bloques de un contenedor de carga: hay 3 tipos de contenedores de carga: pequeño, medio y grande. Estos tres tipos solo se diferencias por el sub-tipo y tipo, y es lo mismo que EJ: El contenedor grande tiene una ID como lo siguiente:
<Id>
<TypeId>CargoContainer</TypeId>
<SubtypeId>LargeBlockLargeContainer</SubtypeId>
</Id>
Medium is:
<Id>
<TypeId>CargoContainer</TypeId>
<SubtypeId>SmallBlockMediumContainer</SubtypeId>
</Id>
And small is:
<Id>
<TypeId>CargoContainer</TypeId>
<SubtypeId>LargeBlockSmallContainer</SubtypeId>
</Id>

En este caso es solo una clase de IMyCargoContainer para todos los typos de contenedores de carga

Lista Blanca

Los tipos y clases permitidas en los codigos son limitados. Buscar en Scripting Whitelist para ver cuales tienes permitido usar.

Categoría:Mecánicas