O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Cyclone Engine

Iniciado por Hudell, 20/08/2020 às 14:31

20/08/2020 às 14:31 Última edição: 21/08/2020 às 09:36 por Gabriel
Cyclone Engine

Compativel com: RMMZ

[box class=titlebg]
Condições de Uso
[/box]
Licença: Apache 2.0
Basicamente, faça o que quiser, sem precisar de créditos.

[box class=titlebg]
Para que serve o script
[/box]

Oferece funções auxiliares para criações de novos plugins, facilitando algumas coisas que são comuns entre vários plugins.

Segue abaixo alguns exemplos de funcionalidades disponibilzadas pelo plugin:

1. Class patching

Esta engine oferece uma maneira rápida de aplicar patches em classes sem precisar lidar com prototypes:

CycloneEngine.patchClass(Game_Map, $super => class {
  setup(...args) {
    $super.setup.call(this, ...args);
    // setup my map data here
  }
  setupEvents(...args) {
    $super.setupEvents.call(this, ...args);
    // setup my events here
  }
}, 'myPluginName');


O objeto $super automaticamente mantém uma referência para qualquer método que você sobrescrever, como o setup neste exemplo. Se você quiser chamar o método setup original de outro lugar, você pode recuperá-lo dessa forma:

const $super = CycloneEngine.getSuperClass('Game_Map', 'myPluginName');


O código acima é equivalente a este:

$super = {
  setup: Game_Map.prototype.setup,
  setupEvents: Game_Map.prototype.setupEvents,
};

Game_Map.prototype.setup = function(...args) {
  $super.setup.call(this, ...args);
  // setup my data here
};

Game_Map.prototype.setupEvents = function(...args) {
  $super.setupEvents(this, ...args);
  // setup my events here
};



E também funciona para classes estáticas:

CycloneEngine.patchClass(DataManager, $super => class {
  static makeSaveContents() {
    const contents = $super.makeSaveContents.call(this);
    contents.extraData = myExtraData;

    return contents;
  }

  static extractSaveContents(contents) {
    $super.extractSaveContents.call(this, contents);

    if (contents.extraData !== undefined) {
      // use the extra Data
    }
  }

  static setupNewGame() {
    $super.setupNewGame.call(this);

    // Initialize custom data
  }
}, 'myPluginName');


E para propriedades:

CycloneEngine.patchClass( Game_Event, $super => class {
  get hitboxX() {
      return 0;
  }
}, 'Hitboxes');


2. Executando métodos comuns

A engine também oferece um método para executar métodos comuns independentes em qualquer lugar:

CycloneEngine.runCommonEvent(1);


Este método funciona até mesmo em menus, tela de título e qualquer outra cena que normalmente não permitiria o uso de eventos comuns. Ele também garante que o evento será executado de forma independente de qualquer outra coisa que esteja rodando no momento.

3. Parse de Parâmetros

Documentação pendente.




[box class=titlebg]
Compatibilidade: Perfeita
[/box]

Este plugin sozinho não altera nada no seu jogo, então é impossível ser incompatível com qualquer outro.

[box class=titlebg]
Download
[/box]

[box class=titlebg]
Créditos e Avisos
[/box]
Criador: Hudell (Créditos opcionais)

[box class=titlebg]
Doações
[/box]
Confira meu jogo inspirado na série Harvest Moon:
Fantasy Farming - Orange Season