void Awake() { driver = GetComponent <Driver>(); scanner = GetComponentInChildren <Scanner>(); turner = GetComponent <Turner>(); health = GetComponent <Health>(); shooters = GetComponents <Shooter>(); shooterConfigs = shooterConfigsTemplate.Clone(); for (int si = 0; si < shooterConfigs.Length; ++si) { ShooterConfigurations.Configuration config = shooterConfigs[si]; shooters[si].Init(hardpoints[config.hardpointNum], config.weapon); } vm = new VirtualMachine(this); if (code == null) { Debug.LogWarning("No code provided. Using fallback program."); vm.Program = FALLBACK_PROGRAM; } else { Program program = Assembler.Assemble(code.text); if (program == null) { Debug.LogWarning("Assembly failed. Using fallback program."); vm.Program = FALLBACK_PROGRAM; } else { program.name = AssetDatabase.GetAssetPath(code); // TODO: This is a temporary autosave solution; should be redone when editor is put into own menu program.OnChange += () => { string progText = Disassembler.Disassemble(vm.Program); StreamWriter progFile = File.CreateText(vm.Program.name); progFile.Write(progText); progFile.Close(); }; Debug.Log(program.name); vm.Program = program; } } health.OnDisable += HandleDisabled; clockTimer = clockInterval; }
void Awake() { driver = GetComponent <Driver>(); scanner = GetComponentInChildren <Scanner>(); turner = GetComponent <Turner>(); health = GetComponent <Health>(); shooter = GetComponent <Shooter>(); sr = GetComponent <SpriteRenderer>(); vm = new VirtualMachine(this); health.OnDisable += HandleDisabled; clockTimer = clockInterval; }