UNPKG

@euglena/cli

Version:

Command Line Interface to create and manage euglena projects as simple as possible

69 lines (61 loc) 3.25 kB
"use strict"; import * as euglena_template from "@euglena/template"; import * as euglena from "@euglena/core"; import { sys, js } from "cessnalib"; import constants = euglena_template.alive.constants; import Particle = euglena.AnyParticle; import particles = euglena_template.alive.particle; import Cytoplasm = euglena.alive.Cytoplasm; import Gene = euglena.alive.dna.GeneV1; import { particles as _particles } from "./particles"; let euglenaName = _particles[sys.type.StaticTools.Array.indexOf(_particles, { meta: { name: constants.particles.EuglenaName }, data: null }, (ai: Particle, t: Particle) => ai.meta.name == t.meta.name)].data; /** * Genes are particles of Nucleus */ export var chromosome = [ new Gene( "Send Saps to Organelles", { meta: { name: euglena_template.alive.constants.particles.EuglenaHasBeenBorn } }, (particle: euglena_template.alive.particle.EuglenaHasBeenBorn) => { let euglenaName = Cytoplasm.getParticle({ meta: { name: constants.particles.EuglenaName } }).data; let timeOrganelleSap = Cytoplasm.getParticle({ meta: { name: euglena_template.alive.constants.particles.TimeOrganelleSap, of: euglenaName } }) as particles.TimeOrganelleSap; Cytoplasm.transmit(euglena_template.alive.constants.organelles.TimeOrganelle, timeOrganelleSap); let webuiOrganelleSap = Cytoplasm.getParticle({ meta: { name: euglena_template.alive.constants.particles.WebUIOrganelleSap, of: euglenaName } }) as particles.WebUIOrganelleSap; Cytoplasm.transmit(euglena_template.alive.constants.organelles.WebUIOrganelle, webuiOrganelleSap); } ), new Gene( "When received particle Time, send it to the webuiOrganelle ", { meta: { name: constants.particles.Time } }, (particle: particles.Time) => { /** * When received Particle Time, we can reach it from here and use how we desire * In this sample code below, we are sending it to the WebuiOrganelle */ Cytoplasm.transmit(constants.organelles.WebUIOrganelle,particle); }, euglenaName ), new Gene( "WebUI Organelle has come to life", { meta: { name: euglena_template.alive.constants.particles.OrganelleHasComeToLife } }, (particle: euglena_template.alive.particle.OrganelleHasComeToLife) => { let euglenaName = Cytoplasm.getParticle({ meta: { name: constants.particles.EuglenaName } }).data; switch (particle.data.organelleName) { case constants.organelles.WebUIOrganelle: //learn domain //Cytoplasm.transmit(constants.organelles.WebUIOrganelle, new particles.ReadParticle({ meta: { name: constants.particles.Domain }, data: {} }, euglenaName)); break; case constants.organelles.NetClientOrganelle: //Cytoplasm.transmit(constants.organelles.NetClientOrganelle, new particles.WhoAmI()); break; default: break; } } ) ];