📚
API
El juego puede usar todos los scripts que tiene CreadorCraft (ver en créditos).
GameProps API (JavaScript, TypeScript, EsJS, etc):
GameProps.status: ver el estado de la conexión con el juego CreadorCraft o CreadorCraft API retorna null si no está conectado o un string "ready" si se ha conectado correctamente!
GameProps.getFileGame(): retorna el directorio de tu juego con la API de JSZip.
GameProps.isDiscordPlayer(): retorna si el jugador tiene cuenta de discord o no.
GameProps.getPlayerId(): retorna el ID del Jugador.
GameProps.getPlayerName(): retorna el nombre del Jugador.
GameProps.getGame():
retorna un Json con información del juego:
GameProps.getGame().getVersion(): retorna la versión del Juego.
GameProps.getGame().isBeta(): retorna si el jugador está usando una versión beta.
GameProps.getGame().getBetaVersion(): retorna la versión beta.
GameProps.addEventListener(event, callback): agrega eventos al juego con un callback.
Eventos disponibles:
resumeEvent: se ejecuta cuando un jugador resume el juego después de estar en pausa.
playerMessageEvent: se ejecuta cuando un jugador envíar un mensaje en el chat también dando el mensaje al callback como argumento 1 el segundo argumento es un CustomEvent que puede ser cancelado!.
pauseEvent: se ejecuta cuando el jugador entra a la pausa del juego.
GameProps.sendPlayerMessage(message): enviar un mensaje al jugador!
GameProps.exitGame(): saca al jugador del juego!
GameProps.getClickSound(): retorna un audio de click.
GameProps.getGameMusic(): retorna un audio de juego de fondo.
GameProps.getWarnSound(); retorna un sonido de advertencia.
GameProps.getWinSound(): retorna un sonido de ganar.
GameProps.getClickStartSound(): retorna el sonido del click al entrar al juego.
GameProps.getStorage(): retorna una clase de almacenamiento del juego:
{
GameProps.getStorage().set(ID, object): guardar un objeto en el almacenamiento de CreadorCraft.
GameProps.getStorage().get(ID): obtener un objeto previamente guardado en el almacenamiento de CreadorCraft.
GameProps.getStorage().delete(ID): eliminar un objeto previamente guardado en el almacenamiento de CreadorCraft.
}
Para ejecutar en otros lenguajes puedes ver cómo usar variables javascript en ese lenguaje!.
Ejecución de Código:
CreadorCraft ejecutará en este orden el código de su juego:
• CSS
• Html y Htmx
• SCSS
• JS
• JS tipo module
• TypeScript
• LiveScript
• CoffeeScript
• PHP
• Python
• Ruby
• Lua
• Perl
• EJS
• Webasembly
• EsJS
• EsHtml
• Markdown (Depende de cómo lo uses en JavaScript)
Manifest.json:
Este es el archivo que contiene información importante de su juego aquí les dejo los parámetros del Json que debe tener su juego:
• name (obligatorio): Nombre de su juego.
• icon (opcional): Icono o baner de su juego la imagen debe ser tipo URL.
•description (obligatorio): Descripción de su juego.
• mainHtml (obligatorio): El directorio del archivo main del código Html.
• mainJS (obligatorio): El directorio del archivo main del código JavaScript.
• mainJSmodule (opcional): El directorio del archivo main del código JavaScript tipo module.
• mainCSS (opcional): El directorio del archivo main del código CSS.
• mainPython (opcional): El directorio del archivo main del código Python.
• configPy (opcional): Configuración de tu modulo python Más Información en PyScript en la opción config de html
• mainWebAssembly (opcional): El directorio del archivo main del Código compilado Web Assembly.
• mainCoffeeScript (opcional): El directorio del archivo main del código CoffeeScript.
• mainLS (opcional): El directorio del archivo main del código LiveScript.
• mainTS (opcional): El directorio del archivo main del código TypeScript.
• mainEsJS (opcional): El directorio del archivo main del código EsJS.
• mainEsJSmodulo (opcional): El directorio del archivo main del código EsJS tipo modulo.
• mainEsHtml (opcional): El directorio del archivo main del código EsHtml.
• mainSCSS (opcional): El directorio del archivo main del código SCSS.
• onMarkdown (opcional): Añadir API de Markdown (Marked). (Este es una opción boleana poner true o false o simplemente no poner si no lo utiliza)
• on3Dengine (opcional): Añadir motor 3D de three.js (Este es una opción boleana poner true o false o simplemente no poner si no lo utiliza)(Solo funciona para scripts tipo module como el js de la opción mainJSmodule)
• onServerWebGamePost (opcional): Añadir el sistema Multijugador ServerWebGamePost de Creadores Program (Este es una opción boleana poner true o false o simplemente no poner si no lo utiliza)
• onCommonJS (opcional): Añadir CommonJS de navegador (funcion require) (Este es una opción boleana poner true o false o simplemente no poner si no lo utiliza)
Ahora usa CommonJS Nativo fork de simple-browser-require Funciona igual excepto que tiene una función extra de promesa para leer todos los archivos de tu juego ejemplo de uso:
window.addEventListener("load", async function(){
await require.CreadorCraftInit();
//require.TSInit(); //para TypeScript(debe tener mainTS)
//require.EsJSInit(); //para EsJS(debe tener mainEsJS)
//await require.JavaInit(); //para Java (debe tener javaLibs)
// require.EJSInit(); //para EJS(debe tener mainEJS y solo Retorna un string Parchado el require)
//require("rootDir");
});
si existe un main de js tipo modulo también añade la función requireModule solo usable en scripts tipo modulo y su directorio siempre es raiz ejemplo de uso:
const ModuTest = (await requireModule("rootDir"));
//const TSMod = (await requireTSModule("rootDir"));//para TypeScript(debe tener mainTS)
//const EsJSMod = (await requireEsJSModule ("rootDir")); //para EsJS(debe tener main EsJS tipo Modulo)
• importJSmap (opcional): Añadir un mapa de import de Scripts externos JavaScript.
• importCSSMap (opcinal): Añadir un mapa de importa de CSS externos en array ejemplo:
importCSSMap: [
{
//Igual que en link pero en Json
href: "página.."
rel: "....."
}
]
• mainPerl (opcional): El directorio del archivo main del código Perl.
• mainEJS(opcional): El directorio del archivo main del código EJS.
• mainRuby (opcional): El directorio del archivo main del código Ruby.
• mainLua (opcional): El directorio del archivo main del código Lua.
• mainPHP (opcional): El directorio del archivo main del código PHP Es obligatorio especificar configPHP.
• configPHP (opcional): (Está opción es obligatorio si usas PHP en tu juego!) Configuración del lenguaje PHP en un subjson(el texto después de // son comentarios no escribas eso en tu manifest!)
{
"input": "#idDelElemento", //ID del elemento Html para enviar comandos al intérprete PHP
"output": "#idDelElemento", //ID del elemento Html para añadir los mensajes de la consola
"error":"#idDelElemento" //ID del elemento Html para añadir los mensajes de error de PHP
}
• javaLibs (opcional): Usa librerías de Java o usa tu app de Java en CreadorCraft! suber el jar y está opción es un array de directorios de tus jars a cargar ejemplo:
javaLibs: [
"myfirjars/mylib.jar"
]
Puedes cargar librerías o apps Java ejemplo de uso en JS:
Uso para Libs en JS:
await cheerpjInit();
const cj = await cheerpjRunLibrary(javaLibs[0]); //pasa la variable del manifest a JavaScript
const MyClass = await cj.com.library.MyClass;
const obj = await new MyClass();
await obj.myMethod();
Uso para Apps Java:
await cheerpjInit();
cheerpjCreateDisplay(800, 600);
await cheerpjRunJar(javaLibs[0]);