Пример #1
0
        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();
            }
        }
Пример #2
0
 public void UpdateMaterialsForDeath(NodeAddedEvent e, TankDeadStateNode tank, [Combine, Context, JoinByTank] RendererNode renderer)
 {
     base.ScheduleEvent <TransparencyFinalizeEvent>(renderer);
     this.SwitchToDeathMaterials(renderer);
 }
Пример #3
0
 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);
 }
Пример #6
0
 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);
 }