private void MakeTree() { PlugInManager compManager = new PlugInManager(); if (_type == RendererType.featureRenderer) { foreach (XmlNode xmlnode in compManager.GetPluginNodes(Plugins.Type.IFeatureRenderer)) { IFeatureRenderer renderer = (IFeatureRenderer)compManager.CreateInstance(xmlnode); if (renderer == null || !renderer.CanRender(_layer, null)) { continue; } TreeNode parent = null; foreach (TreeNode cat in tvRenderer.Nodes) { if (cat.Text == renderer.Category) { parent = cat; break; } } if (parent == null) { parent = new TreeNode(renderer.Category); tvRenderer.Nodes.Add(parent); } TreeNode rNode = new RendererNode(renderer); parent.Nodes.Add(rNode); } } else if (_type == RendererType.labelRenderer) { TreeNode parent = new TreeNode("Label Renderers"); foreach (XmlNode xmlnode in compManager.GetPluginNodes(Plugins.Type.ILabelRenderer)) { ILabelRenderer renderer = (ILabelRenderer)compManager.CreateInstance(xmlnode); if (renderer == null || !renderer.CanRender(_layer, null)) { continue; } parent.Nodes.Add(new LabelRendererNode(renderer)); } tvRenderer.Nodes.Add(parent); } foreach (TreeNode parent in tvRenderer.Nodes) { parent.Expand(); } }
public void UpdateMaterialsForDeath(NodeAddedEvent e, TankDeadStateNode tank, [Combine, Context, JoinByTank] RendererNode renderer) { base.ScheduleEvent <TransparencyFinalizeEvent>(renderer); this.SwitchToDeathMaterials(renderer); }
private void SwitchToDeathMaterials(RendererNode renderer) { renderer.baseRenderer.Renderer.materials = renderer.tankPartMaterialForDeath.DeathMaterials; }
public void InitSemiActiveTransition(NodeAddedEvent e, SemiActiveTankNode tank, [Combine, Context, JoinByTank] RendererNode renderer) { base.ScheduleEvent(new AddTankShaderEffectEvent(ClientGraphicsConstants.TRANSPARENCY_TRANSITION_EFFECT, false), tank); base.ScheduleEvent <TransparencyInitEvent>(renderer); TankMaterialsUtil.SetAlpha(renderer.baseRenderer.Renderer, ClientGraphicsConstants.SEMI_TRANSPARENT_ALPHA); }
public void AddTargetToBurningBloomPostEffect(NodeAddedEvent e, SingleNode <BurningTargetBloomComponent> bloomPostEffect, [Combine] RendererNode rendererNode, [JoinByTank, Context] SingleNode <TankActiveStateComponent> tank) { bloomPostEffect.component.burningTargetBloom.targets.Add(rendererNode.baseRenderer.Renderer); }
private void SetTransparencyToOpaque(RendererNode rendererNode) { rendererNode.baseRenderer.Renderer.materials = rendererNode.startMaterials.Materials; base.ScheduleEvent(new SetTransparencyTransitionDataEvent(ClientGraphicsConstants.SEMI_TRANSPARENT_ALPHA, ClientGraphicsConstants.OPAQUE_ALPHA, 0.5f), rendererNode); }
private void SetTransparencyTransitionData(SetTransparencyTransitionDataEvent evt, RendererNode renderer, TransparencyTransitionComponent transparencyTransition) { transparencyTransition.OriginAlpha = evt.OriginAlpha; transparencyTransition.TargetAlpha = evt.TargetAlpha; transparencyTransition.TransparencyTransitionTime = evt.TransparencyTransitionTime; renderer.baseRenderer.Renderer.enabled = true; transparencyTransition.AlphaSpeed = (transparencyTransition.TargetAlpha - transparencyTransition.OriginAlpha) / transparencyTransition.TransparencyTransitionTime; transparencyTransition.CurrentAlpha = transparencyTransition.OriginAlpha; }
public void InitTransparency(TransparencyInitEvent evt, RendererNode renderer, [JoinByTank] TankNotInvisibilityInvisibilityShaderNode tankShader) { ClientGraphicsUtil.ApplyShaderToRenderer(renderer.baseRenderer.Renderer, tankShader.tankShader.TransparentShader); }