void OnDisable() { PreviewOutput previewOutput = MapMagic.instance.gens.GetGenerator <PreviewOutput>(); if (previewOutput == null) { return; } previewOutput.OnObjectChanged -= SetObject; MapMagic.instance.gens.DeleteGenerator(previewOutput); }
public void Purge () { HeightOutput ho = MapMagic.instance.gens.GetGenerator<HeightOutput>(); if (ho==null || !ho.enabled) HeightOutput.Purge(this); SplatOutput so = MapMagic.instance.gens.GetGenerator<SplatOutput>(); PreviewOutput po = MapMagic.instance.gens.GetGenerator<PreviewOutput>(); if ( (po == null || !po.enabled) && (so==null || !so.enabled) ) SplatOutput.Purge(this); if (po == null || !po.enabled) previewObjs = null; GrassOutput go = MapMagic.instance.gens.GetGenerator<GrassOutput>(); if (go==null || !go.enabled) GrassOutput.Purge(this); ObjectOutput oo = MapMagic.instance.gens.GetGenerator<ObjectOutput>(); if (oo==null || !oo.enabled) ObjectOutput.Purge(this); TreesOutput to = MapMagic.instance.gens.GetGenerator<TreesOutput>(); if (to==null || !to.enabled) TreesOutput.Purge(this); purge = false; }
void OnEnable() { if (MapMagic.instance == null) { MapMagic.instance = FindObjectOfType <MapMagic>(); } PreviewOutput previewOutput = MapMagic.instance.gens.GetGenerator <PreviewOutput>(); if (previewOutput == null) { Close(); } previewOutput.OnObjectChanged += SetObject; }
void PreviewOutput (Generator gen, Generator.Output output, bool inWindow) { PreviewOutput previewOutput = MapMagic.instance.gens.GetGenerator<PreviewOutput>(); //removing an old one preview generator if (previewOutput != null) MapMagic.instance.gens.DeleteGenerator(previewOutput); //do nothing else if it is a 'clear' command (gen is null) if (gen==null || output==null) { PreviewWindow.CloseWindow(); MapMagic.instance.gens.ChangeGenerator(null); return; } //creating new preview and connecting it previewOutput = (PreviewOutput)MapMagic.instance.gens.CreateGenerator(typeof(PreviewOutput), gen.guiRect.position + new Vector2(200,10)); previewOutput.input.Link(output, gen); if (inWindow) { previewOutput.inWindow = true; PreviewWindow.ShowWindow(); } else previewOutput.onTerrain = true; MapMagic.instance.gens.ChangeGenerator(previewOutput); /*if (gen==null) { MapMagic.instance.previewInWindow=false; MapMagic.instance.previewOnTerrain=false; MapMagic.instance.previewGenerator=null; MapMagic.instance.previewOutput=null; if (MapMagic.instance.generators.GetOutput<SplatOutput>() != null) OnGeneratorChanged(MapMagic.instance.generators.GetOutput<SplatOutput>()); else foreach (MapMagic.Chunk chunk in MapMagic.instance.terrains.Objects()) chunk.terrain.terrainData.splatPrototypes = new SplatPrototype[] { new SplatPrototype() { texture = Extensions.ColorTexture(2,2,new Color(0.5f, 0.5f, 0.5f, 0f)) } }; return; } RecordGeneratorUndo(); MapMagic.instance.previewGenerator = gen; MapMagic.instance.previewOutput = previewOutput; if (inWindow) { MapMagic.instance.previewInWindow = true; PreviewWindow.ShowWindow(); } else { MapMagic.instance.previewOnTerrain = true; } OnGeneratorChanged(gen);*/ }