Pular para o conteúdo

Criando os seus próprios módulos ct.js: estrutura de diretórios e manifesto


Criando os seus próprios módulos ct.js: estrutura de diretórios e manifesto

O Ct.js é modificável e o processo de criação de novos módulos é bem fácil! Módulos, ou catmods, podem colocar novo código no framework ct.js, hackear eventos e procedimentos internos, adicionar novas configurações de projeto e campos editáveis ​​para assets de jogos.

Qualquer módulo é um diretório com a seguinte estrutura, colocada em ct.js/data/ct.libs:

mycatmod
  |
  |  (Arquivos principais)
  |-- index.js
  |-- module.json (obrigatório)
  |
  |  (Documentos mostrados no painel de expansão à direita)
  |-- README.md
  |-- docs
      \-- (qualquer número de documentos .md)
  |
  |-- CHANGELOG.md
  |-- LICENSE (texto simples, fortemente recomendado)
  |
  |-- includes
  |   \-- (arquivos a serem copiados para o jogo resultante)
  |
  \-- injections
      \-- (injeções vão aqui)

(mais sobre injeções aqui)

  • module.json permite que seu módulo seja descoberto pelo ct.IDE e contém informações básicas, lista de autores e descrição das definições do módulo.

  • index.js normalmente representa o código principal do seu módulo e é empacotado com todo o código restante do jogo compilado. Uma regra prática é empacotar todas as suas dependências em um arquivo. Se sua dependência for um outro módulo ct, você pode listar este módulo como tal em module.json. (Veja abaixo os exemplos.) Este arquivo suporta templating.

  • README.md é um arquivo markdown com informações gerais, exemplos, notas especiais, etc. Se presente, torna o cabeçalho do módulo clicável no painel com todos os documentos dos módulos.

  • CHANGELOG.md deve conter um histórico de alterações, se houver.

Estrutura do module.json

module.json é o único arquivo obrigatório para seus módulos. Sua versão mínima tem o seguinte formato:

{
    "main": {
        "name": "Module's name",
        "tagline": "A short description of a module",
        "version": "1.0.0",
        "authors": [{
            "name": "Cosmo Myzrail Gorynych",
            "mail": "admin@nersta.ru"
        }, {
            ...
        }]
    }
}

Listando dependências novo em v1.3

Atualmente, catmods podem expressar sua dependência em outro módulo com os campos dependencies e optionalDependencies dentro de module.json. Ele permite que o ct.IDE alerte os usuários sobre módulos ausentes (desativados). Por favor, escreva informações sobre como obter módulos personalizados na seção "readme".

{
    "main": {
        "name": "An example module json with dependencies",
        "tagline": "Add dependencies to your modules!",
        "version": "1.0.0",
        "authors": [
            ...
        ]
    },
    "dependencies": ["tween"],
    "optionalDependencies": ["place"]
}








 
 


Especificando uma categoria novo em v1.4

Desde v1.4, módulos podem especificar uma ou duas categoria em module.json, assim eles podem ser filtrados na página de definições do projeto. As categorias são escritas e, um array sob a chave main.categories, e pode ser uma dessas strings:

  • customization;
  • desktop — módulos para compilações de desktop;
  • fx;
  • inputs — módulos que fornecem novos métodos de entrada para o sistema de Ações;
  • integrations;
  • media;
  • misc;
  • mobile;
  • motionPlanning;
  • networking;
  • tweaks;
  • utilities;

A primeira categoria também é usada para criar um ícone no canto inferior direito do cartão de um módulo:

Um exemplo do módulo ct.flow:

{
    "main": {
        "name": "Flow control and timing",
        "tagline": "Add high-level methods for asynchronous events, e.g. gate, cumulative delay, retriggerable delay.",
        "version": "0.0.0",
        "authors": [{
            "name": "Cosmo Myzrail Gorynych",
            "mail": "admin@nersta.ru"
        }],
        "categories": [
            "utilities"
        ]
    }
}









 
 
 


Escrevendo um módulo

Depende das suas necessidades, você provavelmente vai precisar:

Siga os links para encontrar exemplos e referências sobre implementação adicional.