public override void Start()
        {
            _earth = SceneEntity.FindSceneEntity("Earth");
            transform.LocalPosition = _earth.transform.GlobalPosition;

            // _moonPos = SceneEntity.FindSceneEntity("Moon").transform;
        }
Esempio n. 2
0
        /// <summary>
        /// Defines the closest obstacle
        /// </summary>
        public void DetectClosestObstacle()
        {
            float closestObstacleDistance = float.MaxValue;
            _closestObstacle = null;

            var localAgentMatrix = Matrix.Invert(AutonomousAgent.ParentObject.World);

            foreach (SceneEntity obstacle in Context.Keys)
            {
                Vector3 localPos = Vector3.Transform(obstacle.World.Translation, localAgentMatrix);

                if (UseLineOfSight)
                {
                    if (localPos.Z > 0f)
                        continue;
                }

                float expandedRadius = obstacle.WorldBoundingSphere.Radius + AutonomousAgent.ParentObject.WorldBoundingSphere.Radius - AllowedPenetration;

                var ray = new Ray(Vector3.Zero, Vector3.Forward);
                float? result = ray.Intersects(new BoundingSphere(localPos, expandedRadius));
                if (result.HasValue && result.Value < closestObstacleDistance)
                {
                    closestObstacleDistance = result.Value;

                    _closestObstacle = obstacle;
                    _closestObstacleLocalPosition = localPos;
                }
            }
        }
 /// <summary>
 /// Visits the specified <see cref="SceneEntity"/> to check it's name and set _searchresult as reference if the name matches.
 /// </summary>
 /// <param name="sceneEntity">The scene entity.</param>
 public override void Visit(SceneEntity sceneEntity)
 {
     if (sceneEntity.name == _name)
     {
         _searchresult = sceneEntity;
     }
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="Camera"/> class. The SceneEntity will be set to apply its transformation to the Camera Component.
 /// </summary>
 /// <param name="owner">The SceneEntity where the Camera Component is attached to.</param>
 public Camera(SceneEntity owner)
 {
     ViewMatrix = owner.transform.GlobalMatrix;
     ProjectionType(proj);
     owner.AddComponent(this);
     SceneEntity = owner;
 }
Esempio n. 5
0
        public SceneEntityViewModel(MainWindow wnd, SceneEntity entity, bool is_expanded)
        {
            wnd_ = wnd;
            entity_ = entity;
            is_expanded_ = is_expanded;

            foreach (var child in entity_.Children)
            {
                children_.Add(new SceneEntityViewModel(wnd, child, false));
            }
        }
Esempio n. 6
0
        public override void Init()
        {
            SceneManager.RC = RC;
            var stativ = new SceneEntity("stativ", new ActionCode());
            var dir = new DirectionalLight(new float3(0, 10, -1), new float4(1, 1, 1, 1), new float4(1, 1, 1, 1),
                new float4(1, 1, 1, 1), new float3(0, 0, 0), 0);
            stativ.AddComponent(dir);
            _camera = new Camera(stativ);
            stativ.transform.GlobalPosition = new float3(0, 0, 100);
            SceneManager.Manager.AddSceneEntity(stativ);
            _camera.Resize(Width, Height);
            Geometry wuerfelGeo = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/Sphere.obj.model"));
            _wuerfel = new SceneEntity("wuerfel", new Material(MoreShaders.GetSpecularShader(RC)),
                new Renderer(wuerfelGeo));
            SceneManager.Manager.AddSceneEntity(_wuerfel);

            _channel2 = new Channel<float3>(Lerp.Float3Lerp);
            _channel1 = new Channel<float4>(Lerp.Float4Lerp, new float4(0.5f, 0.5f, 0.5f, 0.5f));

            var key0 = new Keyframe<float4>(0, new float4(1, 0, 1, 1));
            var key1 = new Keyframe<float4>(2, new float4(0.125f, 1, 0.125f, 1));
            var key2 = new Keyframe<float4>(4, new float4(0.250f, 0.75f, 0.250f, 1));
            var key3 = new Keyframe<float4>(6, new float4(0.5f, 0.5f, 0.5f, 1));
            var key4 = new Keyframe<float4>(8, new float4(0.75f, 0.25f, 0.75f, 1));
            var key5 = new Keyframe<float4>(10, new float4(1, 25, 0.125f, 1));
            var key6 = new Keyframe<float4>(0, new float4(0, 1, 0, 1));

            _channel1.AddKeyframe(key0);
            _channel1.AddKeyframe(key1);
            _channel1.AddKeyframe(key2);
            _channel1.AddKeyframe(key3);
            _channel1.AddKeyframe(key4);
            _channel1.AddKeyframe(key5);
            _channel1.AddKeyframe(key6);

            var key40 = new Keyframe<float3>(8, new float3(8, 0, 80));
            var key00 = new Keyframe<float3>(0, new float3(0, 0, 0));
            var key10 = new Keyframe<float3>(2, new float3(1, 2, 20));
            var key20 = new Keyframe<float3>(4, new float3(2, 4, 40));
            var key30 = new Keyframe<float3>(6, new float3(4, 4, 60));
            var key50 = new Keyframe<float3>(12, new float3(0, 4, 60));
            var key60 = new Keyframe<float3>(0, new float3(8, 8, 8));

            _channel2.AddKeyframe(key00);
            _channel2.AddKeyframe(key10);
            _channel2.AddKeyframe(key20);
            _channel2.AddKeyframe(key30);
            _channel2.AddKeyframe(key40);
            _channel2.AddKeyframe(key50);
            _channel2.AddKeyframe(key60);

            _myAnim.AddAnimation(_channel1, RC, "ClearColor");
            _myAnim.AddAnimation(_channel2, _wuerfel, "transform.GlobalPosition");
        }
Esempio n. 7
0
        public static AttackCalcResult AttackCalc(SceneEntity fromEntity, SceneEntity targetEntity, bool doAttack = true)
        {
            AttackCalcResult result = new AttackCalcResult();
            AttrComp fromAttrComp = fromEntity.GetComp<AttrComp>();
            AttrComp targetAttrComp = targetEntity.GetComp<AttrComp>();

            // 计算护甲减伤,公式为:
            // 1 - (Def * ARMOR_COEF) / (1 + Def * ARMOR_COEF)
            double defValue = targetAttrComp.Def * DEF_COEF;
            double damageRate = 1 - defValue / (1 + defValue);

            // 计算总伤害
            double damage = fromAttrComp.Atk * damageRate;

            // 按照伤害类型的数量平分伤害
            List<DamageType> atkTypes = fromAttrComp.AtkTypes;
            int numAtkTypes = atkTypes.Count;
            damage /= numAtkTypes;
            for (int i = 0; i < numAtkTypes; ++i)
            {
                DamageType atkType = atkTypes[i];
                result.Damages[(int)atkType] = damage;
            }

            // 1. 计算伤害加成和免伤
            // 2. 按攻击类型和护甲类型调整伤害值
            DamageType defType = targetAttrComp.DefType;
            int numDamageTypes = (int)DamageType.Total;
            for (int i = 0; i < numDamageTypes; ++i)
            {
                DamageType atkType = (DamageType)i;
                double singleDamage = result.Damages[i];

                // 百分比伤害加成减免
                singleDamage *= 1 + fromAttrComp.GetDamageAddRate(atkType) + fromAttrComp.DamageAddRate + targetAttrComp.BeDamageAddRate;
                // 伤害附加
                singleDamage += fromAttrComp.GetDamageAdd(atkType);
                // 属性相克伤害加成
                singleDamage *= DamageTypeSetting.GetDamageFactor(atkType, defType);

                result.Damages[i] = singleDamage;
            }

            if (doAttack)
                DoAttack(fromEntity, targetEntity, result);

            return result;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="Transformation" /> class. Sets a SceneEntity for Transform.
 /// This is the recommended Constructor.
 /// </summary>
 /// <param name="entity">The SceneEntity that will be set in Transform.</param>
 public Transformation(SceneEntity entity)
 {
     if (entity.parent == null)
        {
        _hasParent = false;
        }
        else
        {
        _hasParent = true;
        }
        SceneEntity = entity;
        _transformMatrix = float4x4.Identity;
        _globalMatrix = _transformMatrix;
        _quaternion = Quaternion.Identity;
        _globalQuaternion = Quaternion.Identity;
        _globalScale = new float3(1,1,1);
        _localScale = new float3(1, 1, 1);
        // _entity = entity;
        _matrixDirty = false;
        _quaternionDirty = false;
        _eulerDirty = false;
 }
Esempio n. 9
0
        public void AddEntity(SceneEntity entity)
        {
            if (!SceneEntities.Contains(entity))
            {
                SceneEntities.Add(entity);

                if (entity is TowerEntity)
                    TowerEntities.Add(entity);
            }
        }
Esempio n. 10
0
 public ActionIdle(SceneEntity hero) : base("ActionIdle", hero)
 {
     actionType = ACTION_TYPE.IDLE;
 }
Esempio n. 11
0
        public Matrix4 ApplyGeometricTransformations(RenderingContext rc, ComposedShader shader, SceneGraphNode context)
        {
            RefreshDefaultUniforms(shader);
            //RefreshMaterialUniforms();

            if (shader.IsTessellator)
            {
                RefreshTessUniforms(shader);
            }


            Matrix4 view = Matrix4.LookAt(new Vector3(4, 3, 3), // Camera is at (4,3,3), in World Space
                                          new Vector3(0, 0, 0), // and looks at the origin
                                          new Vector3(0, 1, 0)  // Head is up (set to 0,-1,0 to look upside-down)
                                          );

            Matrix4 model; // applied transformation hierarchy

            SceneGraphNode transform_context = context == null ? this : context;

            List <Transform> transformationHierarchy = transform_context
                                                       .AscendantByType <Transform>()
                                                       .Select(t => (Transform)t)
                                                       .Where(t => t.Hidden == false)
                                                       .ToList();

            Matrix4 modelview = Matrix4.Identity;// * rc.matricies.worldview;

            // using Def_Use/Figure02.1Hut.x3d Cone and Cylinder
            Vector3 x3dScale = new Vector3(0.06f, 0.06f, 0.06f); // scaling down to conform with X3D standard (note this was done manually and might need tweaking)

            //x3dScale = Vector3.One;

            Quaternion modelrotation      = Quaternion.Identity;
            Matrix4    modelLocalRotation = Matrix4.Identity;


            //if (rc.cam.OrbitLocalOrientation != Vector2.Zero)
            //{
            //    // Center of Rotation based on center of bounding box
            //    Quaternion qLocal = QuaternionExtensions.EulerToQuat(0, -rc.cam.OrbitLocalOrientation.X, -rc.cam.OrbitLocalOrientation.Y);
            //    Quaternion qAdjust = QuaternionExtensions.EulerToQuat(MathHelpers.PIOver2, 0.0f, 0.0f);

            //    Matrix4 mat4CenterOfRotation = Matrix4.CreateTranslation(centerOfRotation);
            //    Matrix4 origin = Matrix4.CreateTranslation(new Vector3(0, 0, 0));

            //    modelLocalRotation = mat4CenterOfRotation * Matrix4.CreateFromQuaternion(qLocal) * Matrix4.CreateFromQuaternion(qAdjust);
            //}

            //const float bbscale = 0.0329999961f;

            Vector3 centerOffset = Vector3.Zero;

            foreach (Transform transform in transformationHierarchy)
            {
                modelview = SceneEntity.ApplyX3DTransform(centerOffset,
                                                          Vector3.Zero,
                                                          transform.Scale,
                                                          Vector3.Zero,
                                                          transform.Translation, // * x3dScale,
                                                          modelview);

                //modelview *= Matrix4.CreateTranslation(transform.Translation * x3dScale);

                //modelrotation = new Quaternion(transform.Rotation.X, transform.Rotation.Y, transform.Rotation.Z, transform.Rotation.W);
                //modelrotations *= Matrix4.CreateFromQuaternion(modelrotation);

                //modelrotations *= MathHelpers.CreateRotation(ref modelrotation);
            }

            //Vector3 center = modelview.ExtractTranslation();
            //Vector3 centerOffsetVector = center + (bbox.Maximum - bbox.Minimum);
            //Matrix4 centerOffset = Matrix4.CreateTranslation(centerOffsetVector);



            model = modelview;

            Matrix4 cameraTransl = Matrix4.CreateTranslation(rc.cam.Position);

            Quaternion q = rc.cam.Orientation;

            Matrix4 cameraRot;

            cameraRot = Matrix4.CreateFromQuaternion(q); // cameraRot = MathHelpers.CreateRotation(ref q);


            Matrix4 MVP = ((modelLocalRotation * model) * cameraTransl) * cameraRot; // position and orient the Shape relative to the world and camera



            //shader.SetFieldValue("size", new Vector3(bbox.Width, bbox.Height, bbox.Depth) * bbscale);
            shader.SetFieldValue("modelview", ref MVP);                              //GL.UniformMatrix4(uniformModelview, false, ref rc.matricies.modelview);
            shader.SetFieldValue("projection", ref rc.matricies.projection);
            shader.SetFieldValue("camscale", rc.cam.Scale.X);                        //GL.Uniform1(uniformCameraScale, rc.cam.Scale.X);
            shader.SetFieldValue("X3DScale", rc.matricies.Scale);                    //GL.Uniform3(uniformX3DScale, rc.matricies.Scale);
            shader.SetFieldValue("coloringEnabled", this.coloring ? 1 : 0);          //GL.Uniform1(uniforms.a_coloringEnabled, 0);
            shader.SetFieldValue("texturingEnabled", this.texturingEnabled ? 1 : 0); //GL.Uniform1(uniforms.a_texturingEnabled, this.texturingEnabled ? 1 : 0);
            shader.SetFieldValue("lightingEnabled", 1);

            if (shader.IsBuiltIn == false)
            {
                shader.ApplyFieldsAsUniforms(rc);
            }

            return(MVP);
        }
Esempio n. 12
0
        /// <summary>
        /// 更新SceneEntity所属的MapCell信息
        /// </summary>
        public void UpdateSceneEntityCell(SceneEntity sceneEntity)
        {
            if (sceneEntity.Cell != null)
                sceneEntity.Cell.RemoveEntity(sceneEntity);

            MapCell cell = GetCell(sceneEntity.Location);
            if (cell != null)
                cell.AddEntity(sceneEntity);
            sceneEntity.Cell = cell;
        }
Esempio n. 13
0
 public ActionByAnim(SceneEntity hero) : base("ActionSelfSkill", hero)
 {
 }
        public override void Init()
        {
            SceneManager.RC = RC;

            // Light
            var direct = new DirectionalLight(new float3(1, 1, 1), new float4(0.7f, 0.7f, 0.7f, 1),
                                              new float4(1f, 1f, 1f, 1), new float4(0.9f, 0.9f, 0.9f, 1),
                                              new float3(0, 0, 0), 0);

            // Load Meshes
            var planetMesh = MeshReader.LoadMesh(@"Assets/Sphere.obj.model");
            var spaceBoxMesh = MeshReader.LoadMesh(@"Assets/spacebox.obj.model");

            // Setup Empty Objects
            _earthSpeed = new float3(0, 0.69635f, 0);

            var emptyMoon = new SceneEntity("emptyPlanetHolder", new MoonAction(_earthSpeed*5.0f));
            var emptyMercury = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*4.1477f));
            var emptyVenus = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*1.6150f));
            var emptyEarth = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed));
            var emptyMars = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*0.5320f));
            var emptyJupiter = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*0.0833f));
            var emptySaturn = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*0.03476f));
            var emptyUranus = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*0.0119f));
            var emptyNeptun = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*0.0062f));

            SceneManager.Manager.AddSceneEntity(emptyMoon);
            SceneManager.Manager.AddSceneEntity(emptyMercury);
            SceneManager.Manager.AddSceneEntity(emptyVenus);
            SceneManager.Manager.AddSceneEntity(emptyEarth);
            SceneManager.Manager.AddSceneEntity(emptyMars);
            SceneManager.Manager.AddSceneEntity(emptyJupiter);
            SceneManager.Manager.AddSceneEntity(emptySaturn);
            SceneManager.Manager.AddSceneEntity(emptyUranus);
            SceneManager.Manager.AddSceneEntity(emptyNeptun);

            // Scene Camera
            var worldOrigin = new SceneEntity("WorldOrigin", new RotationScript());
            SceneManager.Manager.AddSceneEntity(worldOrigin);

            var cameraholder = new SceneEntity("CameraOwner", new CameraScript(), worldOrigin);
            cameraholder.transform.GlobalPosition = new float3(0, 0, -10);

            _sceneCamera = new Camera(cameraholder);
            _sceneCamera.Resize(Width, Height);

            // Setup Space Box
            var spaceBox = new SceneEntity("Spacebox",
                                           new PlanetMaterial(MoreShaders.GetTextureShader(RC),
                                                              "Assets/spaceboxTexture.png"), new Renderer(spaceBoxMesh));
            SceneManager.Manager.AddSceneEntity(spaceBox);

            // Setup Sun
            var planet = new SceneEntity("Sun",
                                         new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/sun.jpg"),
                                         new Renderer(planetMesh));

            planet.transform.LocalScale = new float3(2, 2, 2);
            SceneManager.Manager.AddSceneEntity(planet);

            // Setup Earth
            planet = new SceneEntity("Earth", new PlanetAction(new float3(0, 0.69635f*365, 0)), emptyEarth,
                                     new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/earth.jpg"),
                                     new Renderer(planetMesh));

            planet.transform.GlobalPosition = new float3(2.9f, 0, 0);
            planet.transform.GlobalScale = new float3(0.1f, 0.1f, 0.1f);
            planet.AddComponent(direct);

            // Setup Moon
            planet = new SceneEntity("Moon", new PlanetAction(new float3(0, 2.7f, 0)), emptyMoon,
                                     new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/moon.jpg"),
                                     new Renderer(planetMesh));

            planet.transform.GlobalPosition = new float3(0.5f, 0, 0);
            planet.transform.GlobalScale = new float3(0.05f, 0.05f, 0.05f);

            // Setup Mercury
            planet = new SceneEntity("Mercury", new PlanetAction(_earthSpeed*6.2234f), emptyMercury,
                                     new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/merkur.jpg"),
                                     new Renderer(planetMesh));

            planet.transform.GlobalPosition = new float3(2.35f, 0, 0);
            planet.transform.GlobalScale = new float3(0.05f, 0.05f, 0.05f);

            // Setup Venus
            planet = new SceneEntity("Venus", new PlanetAction(_earthSpeed*1.5021f), emptyVenus,
                                     new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/venus.jpg"),
                                     new Renderer(planetMesh));

            planet.transform.GlobalPosition = new float3(2.6f, 0, 0);
            planet.transform.GlobalScale = new float3(0.08f, 0.08f, 0.08f);

            // Setup Mars
            planet = new SceneEntity("Mars", new PlanetAction(_earthSpeed*374.125f), emptyMars,
                                     new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/mars.jpg"),
                                     new Renderer(planetMesh));

            planet.transform.GlobalPosition = new float3(3.25f, 0, 0);
            planet.transform.GlobalScale = new float3(0.07f, 0.07f, 0.07f);

            // Setup Jupiter
            planet = new SceneEntity("Jupiter", new PlanetAction(_earthSpeed*882.62f), emptyJupiter,
                                     new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/jupiter.jpg"),
                                     new Renderer(planetMesh));

            planet.transform.GlobalPosition = new float3(4, 0, 0);
            planet.transform.GlobalScale = new float3(0.4f, 0.4f, 0.4f);

            // Setup Saturn
            planet = new SceneEntity("Saturn", new PlanetAction(_earthSpeed*820.61f), emptySaturn,
                                     new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/saturn.jpg"),
                                     new Renderer(planetMesh));

            planet.transform.GlobalPosition = new float3(5, 0, 0);
            planet.transform.GlobalScale = new float3(0.3f, 0.3f, 0.3f);

            // Setup Uranus
            planet = new SceneEntity("Uranus", new PlanetAction(_earthSpeed*509.30f), emptyUranus,
                                     new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/uranus.jpg"),
                                     new Renderer(planetMesh));

            planet.transform.GlobalPosition = new float3(6, 0, 0);
            planet.transform.GlobalScale = new float3(0.12f, 0.12f, 0.12f);

            // Setup Neptun
            planet = new SceneEntity("Neptun", new PlanetAction(_earthSpeed*544.10f), emptyNeptun,
                                     new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/neptune.jpg"),
                                     new Renderer(planetMesh));

            planet.transform.GlobalPosition = new float3(7, 0, 0);
            planet.transform.GlobalScale = new float3(0.14f, 0.14f, 0.14f);

            SceneManager.Manager.StartActionCode();

            // Random Rotations
            emptyEarth.transform.LocalEulerAngles = new float3(0, 45, 0);
            emptyMercury.transform.LocalEulerAngles = new float3(0, 55, 0);
            emptyVenus.transform.LocalEulerAngles = new float3(0, 335, 0);
            emptyMars.transform.LocalEulerAngles = new float3(0, 125, 0);
            emptyJupiter.transform.LocalEulerAngles = new float3(0, 65, 0);
            emptySaturn.transform.LocalEulerAngles = new float3(0, 95, 0);
            emptyUranus.transform.LocalEulerAngles = new float3(0, 145, 0);
            emptyNeptun.transform.LocalEulerAngles = new float3(0, 245, 0);

            RC.ClearColor = new float4(1, 0, 0, 1);
        }
Esempio n. 15
0
 public ControlBase(SceneEntity entity)
 {
     m_entity = entity;
 }
Esempio n. 16
0
        public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency)
        {
            //int type = (int)entity.attributesMap["type"].ValueUInt8;
            int  direction = (int)entity.attributesMap["direction"].ValueUInt8;
            bool fliph     = false;
            bool flipv     = false;
            int  flipState = 0;

            if (direction == 1)
            {
                fliph     = true;
                flipState = 3;
            }
            else
            {
                fliph     = false;
                flipState = 2;
            }
            var editorAnim  = e.LoadAnimation2("Clapperboard", d, 0, 0, fliph, flipv, false);
            var editorAnim2 = e.LoadAnimation2("Clapperboard", d, 0, 1, fliph, flipv, false);
            var editorAnim3 = e.LoadAnimation2("Clapperboard", d, 0, flipState, false, false, false);

            if (editorAnim != null && editorAnim.Frames.Count != 0 && editorAnim2 != null && editorAnim2.Frames.Count != 0 && editorAnim3 != null && editorAnim3.Frames.Count != 0)
            {
                var frame  = editorAnim.Frames[e.index];
                var frame2 = editorAnim2.Frames[e.index];
                var frame3 = editorAnim3.Frames[e.index];

                //ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration);

                if (direction == 1)
                {
                    d.DrawBitmap(frame.Texture,
                                 x - 104 + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0),
                                 y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0),
                                 frame.Frame.Width, frame.Frame.Height, false, Transparency);
                    d.DrawBitmap(frame2.Texture,
                                 x - 104 + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim2.Frames[0].Frame.Width) : 0),
                                 y + frame2.Frame.CenterY + (flipv ? (frame2.Frame.Height - editorAnim2.Frames[0].Frame.Height) : 0),
                                 frame2.Frame.Width, frame2.Frame.Height, false, Transparency);
                    d.DrawBitmap(frame3.Texture,
                                 x + frame3.Frame.CenterX - (fliph ? (frame3.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0),
                                 y + frame3.Frame.CenterY + (flipv ? (frame3.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0),
                                 frame3.Frame.Width, frame3.Frame.Height, false, Transparency);
                }
                else
                {
                    d.DrawBitmap(frame.Texture,
                                 x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0),
                                 y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0),
                                 frame.Frame.Width, frame.Frame.Height, false, Transparency);
                    d.DrawBitmap(frame2.Texture,
                                 x + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim2.Frames[0].Frame.Width) : 0),
                                 y + frame2.Frame.CenterY + (flipv ? (frame2.Frame.Height - editorAnim2.Frames[0].Frame.Height) : 0),
                                 frame2.Frame.Width, frame2.Frame.Height, false, Transparency);
                    d.DrawBitmap(frame3.Texture,
                                 x + frame3.Frame.CenterX - (fliph ? (frame3.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0),
                                 y + frame3.Frame.CenterY + (flipv ? (frame3.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0),
                                 frame3.Frame.Width, frame3.Frame.Height, false, Transparency);
                }
            }
        }
Esempio n. 17
0
 // 设置 AI 控制器操作的场景对象
 public void possess(SceneEntity entity)
 {
     m_entity = entity;
 }
Esempio n. 18
0
    private void StartTargetEvent()
    {
        Skill component = base.gameObject.GetComponent <Skill>();

        if (!component.needFeedback)
        {
            if (this.sendTargetEvent)
            {
                base.gameObject.SendMessage("ApplyTargetEvent", null, SendMessageOptions.DontRequireReceiver);
            }
            UnityEngine.Object.Destroy(this);
            return;
        }
        if (component.startGo.name.IndexOf("Self") < 0)
        {
            return;
        }
        int num = Convert.ToInt32(component.name.Split(new char[]
        {
            '_'
        })[0]);

        if (component.targetGo == null)
        {
            Util.CallMethod("HEROSKILLMGR", "SendSkillPb", new object[]
            {
                num,
                component.startGo.transform.position,
                component.targetPos,
                0,
                component.timestamp
            });
        }
        else
        {
            SceneEntity component2 = component.targetGo.GetComponent <SceneEntity>();
            if (component2 == null)
            {
                Util.CallMethod("HEROSKILLMGR", "SendSkillPb", new object[]
                {
                    num,
                    component.startGo.transform.position,
                    component.targetPos,
                    0,
                    component.timestamp
                });
            }
            else
            {
                Util.CallMethod("HEROSKILLMGR", "SendSkillPb", new object[]
                {
                    num,
                    component.startGo.transform.position,
                    component.targetGo.transform.position,
                    component2.id,
                    component.timestamp
                });
            }
        }
        this.delay += this.TIME_INTVERAL;
    }
Esempio n. 19
0
 public OperaMove2NPC(SceneEntity hero) : base("OperaMove2NPC", hero)
 {
     action = new ActiveMove(hero);
 }
 public static void RemoveEntity(SceneEntity entity)
 {
     LevelInstance.Entities.Remove(entity);
     SelectedObjects = new List <SceneEntity>();
     ResyncEngine();
 }
Esempio n. 21
0
        public override void Init()
        {
            SceneManager.RC = RC;
            SceneEntity _object;

            DirectionalLight direct = new DirectionalLight(new float3(1, 1, 1), new float4(0.7f, 0.7f, 0.7f, 1), new float4(0.3f, 0.3f, 0.3f, 1), new float4(0.1f, 0.1f, 0.1f, 1), new float3(0, 0, 0), 2);
            PointLight point = new PointLight(new float3(0, 0, 0), new float4(0.7f, 0.7f, 0.7f, 1), new float4(0.3f, 0.3f, 0.3f, 1), new float4(0.1f, 0.1f, 0.1f, 1), 1);
            SpotLight spot = new SpotLight(new float3(1, 1, 1), new float3(1, 1, 1), new float4(0.7f, 0.7f, 0.7f, 1), new float4(0.3f, 0.3f, 0.3f, 1), new float4(0.1f, 0.1f, 0.1f, 1), 1.0f , 0);

            Geometry sphere = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/Sphere.obj.model"));
            Geometry sphere2 = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/Sphere.obj.model"));
            Geometry spacebox = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/spacebox.obj.model"));
            Geometry cube = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/Sphere.obj.model"));
            Geometry lamp = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/lamp2.obj.model"));

            SceneEntity _emptySphere;
            SceneEntity _emptyCube;
            SceneEntity _emptyLight;
            SceneEntity _emptyRoot;

            _emptyRoot = new SceneEntity("emptyRoot", new MouseAction());
            _emptySphere = new SceneEntity("emptySphere", new ActionCode());
            _emptyCube = new SceneEntity("emptyCube", new ActionCode());
            _emptyLight = new SceneEntity("emptyLight", new ActionCode());

            SceneManager.Manager.AddSceneEntity(_emptyRoot);
            SceneManager.Manager.AddSceneEntity(_emptySphere);
            SceneManager.Manager.AddSceneEntity(_emptyCube);
            SceneManager.Manager.AddSceneEntity(_emptyLight);

            SceneEntity cameraholder;
            SceneEntity WorldOrigin;
            WorldOrigin = new SceneEntity("WorldOrigin", new MouseAction());
            SceneManager.Manager.AddSceneEntity(WorldOrigin);
            cameraholder = new SceneEntity("CameraOwner", new CamScript(), WorldOrigin);
            cameraholder.transform.GlobalPosition = new float3(0, 0, 10);
            scenecamera = new Camera(cameraholder);
            scenecamera.Resize(Width, Height);

            SceneEntity _spaceBox = new SceneEntity("Spacebox", new DiffuseMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/sky.jpg"), new Renderer(spacebox));
            SceneManager.Manager.AddSceneEntity(_spaceBox);

            //Sphere
            _object = new SceneEntity("Sphere1", new ActionCode(), _emptySphere, new SpecularMaterial(MoreShaders.GetSpecularShader(RC), "Assets/metall2.jpg"), new Renderer(sphere));
            _object.transform.GlobalPosition = new float3(2, 0, 0);
            _object.transform.GlobalScale = new float3(0.5f, 0.5f, 0.5f);

            // LightObject
            _object = new SceneEntity("DirLight", new RotateAction(new float3(0, 20, 0)), _emptyLight, new DiffuseMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/metall2.jpg"), new Renderer(lamp));
            _object.transform.GlobalPosition = new float3(0, 0, 0);
            _object.transform.GlobalScale = new float3(0.7f, 0.7f, 0.7f);
            _object.AddComponent(spot);

            SceneEntity _object2 = new SceneEntity("FlyingLight", new RotatingLightAction(new float3(0, 0, 0)), _object, new DiffuseMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/metall2.jpg"), new Renderer(sphere2));
            _object2.transform.GlobalPosition = new float3(0, 3, 0);
            //_object2.transform.GlobalScale = new float3(1, 1, 1);
            //_object2.AddComponent(point);

            //Cube
            _object = new SceneEntity("Cube1", new ActionCode(), _emptyCube, new BumpMaterial(MoreShaders.GetBumpDiffuseShader(RC), "Assets/metall2.jpg", "Assets/normal2.jpg"), new Renderer(cube));
            _object.transform.GlobalPosition = new float3(5, 0, 0);
            //_object.transform.GlobalScale = new float3(0.01f, 0.01f, 0.01f);

            //Root
            _object = new SceneEntity("Root1", new ActionCode(), _emptyRoot);
            _object.transform.GlobalPosition = new float3(0, 0, 0);
            _object.transform.GlobalScale = new float3(1, 1, 1);

            SceneManager.Manager.StartActionCode();

            RC.ClearColor = new float4(1, 0, 0, 1);
        }
Esempio n. 22
0
        public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency)
        {
            int  type      = (int)entity.attributesMap["type"].ValueUInt8;
            int  direction = (int)entity.attributesMap["direction"].ValueUInt8;
            bool fliph     = false;
            bool flipv     = false;
            int  animID    = 0;

            if (type == 0)
            {
                animID = 0;
                if (direction == 1)
                {
                    fliph = true;
                }
                if (direction == 2)
                {
                    flipv = true;
                }
                if (direction == 3)
                {
                    flipv = true;
                    fliph = true;
                }
            }
            else if (type == 1)
            {
                animID = 2;
                if (direction == 1)
                {
                    fliph = true;
                }
                if (direction == 2)
                {
                    flipv = true;
                }
                if (direction == 3)
                {
                    flipv = true;
                    fliph = true;
                }
            }
            else if (type == 2)
            {
                animID = 0;
                if (direction == 1)
                {
                    fliph = true;
                }
                if (direction == 2)
                {
                    flipv = true;
                }
                if (direction == 3)
                {
                    flipv = true;
                    fliph = true;
                }
            }
            else if (type == 3)
            {
                animID = 2;
                if (direction == 1)
                {
                    fliph = true;
                }
                if (direction == 2)
                {
                    flipv = true;
                }
                if (direction == 3)
                {
                    flipv = true;
                    fliph = true;
                }
            }
            var editorAnim = e.LoadAnimation2("Spiny", d, animID, -1, fliph, flipv, false);

            if (editorAnim != null && editorAnim.Frames.Count != 0 && animID >= 0)
            {
                var frame = editorAnim.Frames[e.index];

                e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration);

                d.DrawBitmap(frame.Texture,
                             x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0),
                             y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0),
                             frame.Frame.Width, frame.Frame.Height, false, Transparency);
            }
        }
 /// <summary>
 /// Adds a <see cref="SceneEntity"/> to the scene.
 /// </summary>
 /// <param name="sceneEntity">The scene entity.</param>
 public void AddSceneEntity(SceneEntity sceneEntity)
 {
     SceneMembers.Add(sceneEntity);
 }
Esempio n. 24
0
        public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency)
        {
            int  orientation = entity.attributesMap["orientation"].ValueUInt8;
            bool open        = entity.attributesMap["open"].ValueBool;
            bool fliph       = false;
            bool flipv       = false;
            int  frameID     = 0;

            switch (orientation)
            {
            case 0:
                frameID = 0;
                break;

            case 1:
                frameID = 0;
                fliph   = true;
                break;

            case 2:
                frameID = 1;

                break;

            case 3:
                frameID = 1;
                flipv   = true;
                break;
            }
            var editorAnim = e.LoadAnimation2("PSZDoor", d, 0, frameID, fliph, flipv, false);
            var cogPart2   = e.LoadAnimation2("PSZDoor", d, 0, 2, fliph, flipv, false);
            var cogPart1   = e.LoadAnimation2("PSZDoor", d, 1, 0, fliph, flipv, false);

            if (editorAnim != null && editorAnim.Frames.Count != 0 && frameID >= 0 && cogPart1 != null && cogPart1.Frames.Count != 0 && cogPart2 != null && cogPart2.Frames.Count != 0)
            {
                var frame = editorAnim.Frames[e.index];
                var cog1  = cogPart1.Frames[e.index];
                var cog2  = cogPart2.Frames[e.index];

                int COG_SPACE = 18;

                int cogSpaceH   = 56;
                int cogSpaceW   = -COG_SPACE;
                int cogSpaceH_2 = 56;
                int cogSpaceW_2 = -COG_SPACE;
                int doorAdjX    = frame.Frame.Width;
                int doorAdjY    = 0;

                switch (orientation)
                {
                case 1:
                    // Upper
                    cogSpaceH = 56;
                    cogSpaceW = -COG_SPACE;
                    // Lower
                    cogSpaceH_2 = 56;
                    cogSpaceW_2 = COG_SPACE;


                    //Door
                    doorAdjX = 0;
                    doorAdjY = frame.Frame.Height;
                    break;

                case 0:
                    // Upper
                    cogSpaceH = -56;
                    cogSpaceW = -COG_SPACE;
                    // Lower
                    cogSpaceH_2 = -56;
                    cogSpaceW_2 = COG_SPACE;


                    //Door
                    doorAdjX = 0;
                    doorAdjY = -frame.Frame.Height;
                    break;

                case 2:
                    // Upper
                    cogSpaceW = -56;
                    cogSpaceH = COG_SPACE;
                    // Lower
                    cogSpaceW_2 = -56;
                    cogSpaceH_2 = -COG_SPACE;


                    //Door
                    doorAdjX = -frame.Frame.Width;
                    doorAdjY = 0;
                    break;

                case 3:
                    // Upper
                    cogSpaceW = 56;
                    cogSpaceH = COG_SPACE;
                    // Lower
                    cogSpaceW_2 = 56;
                    cogSpaceH_2 = -COG_SPACE;


                    //Door
                    doorAdjX = frame.Frame.Width;
                    doorAdjY = 0;
                    break;
                }

                d.DrawBitmap(frame.Texture,
                             x + frame.Frame.CenterX + (open ? doorAdjX : 0),
                             y + frame.Frame.CenterY + (open ? doorAdjY : 0),
                             frame.Frame.Width, frame.Frame.Height, false, Transparency);

                //Upper Cog
                d.DrawBitmap(cog1.Texture,
                             x + cog1.Frame.CenterX + cogSpaceW,
                             y + cog1.Frame.CenterY + cogSpaceH,
                             cog1.Frame.Width, cog1.Frame.Height, false, Transparency);

                d.DrawBitmap(cog2.Texture,
                             x + cog2.Frame.CenterX + cogSpaceW,
                             y + cog2.Frame.CenterY + cogSpaceH,
                             cog2.Frame.Width, cog2.Frame.Height, false, Transparency);

                //Lower Cog
                d.DrawBitmap(cog1.Texture,
                             x + cog1.Frame.CenterX + cogSpaceW_2,
                             y + cog1.Frame.CenterY + cogSpaceH_2,
                             cog1.Frame.Width, cog1.Frame.Height, false, Transparency);

                d.DrawBitmap(cog2.Texture,
                             x + cog2.Frame.CenterX + cogSpaceW_2,
                             y + cog2.Frame.CenterY + cogSpaceH_2,
                             cog2.Frame.Width, cog2.Frame.Height, false, Transparency);
            }
        }
Esempio n. 25
0
 public SceneEntity[] GetSceneEntities()
 {
     SceneEntity[] entities = new SceneEntity[renderContext.SceneManager.sceneGraphEntities.Count];
     int index = 0;
     foreach (KeyValuePair<uint, SceneEntity> item in renderContext.SceneManager.sceneGraphEntities)
     {
         entities[index++] = item.Value;
     }
     return entities;
 }
Esempio n. 26
0
        public override void Init()
        {
            _sceneManager = new SceneManager();
            _sceneManager.AttachToContext(RC);

            // Light
            var direct = new DirectionalLight(new float3(1, 1, 1), new float4(0.7f, 0.7f, 0.7f, 1),
                                              new float4(1f, 1f, 1f, 1), new float4(0.9f, 0.9f, 0.9f, 1),
                                              new float3(0, 0, 0), 0);

            // Load Meshes
            var planetMesh   = MeshReader.LoadMesh(@"Assets/Sphere.obj.model");
            var spaceBoxMesh = MeshReader.LoadMesh(@"Assets/spacebox.obj.model");

            // Setup Empty Objects
            _earthSpeed = new float3(0, 0.69635f, 0);

            var emptyMoon    = new SceneEntity("emptyPlanetHolder", new MoonAction(_earthSpeed * 5.0f));
            var emptyMercury = new SceneEntity("emptyPlanetHolder", new PlanetAction(RC, _earthSpeed * 4.1477f));
            var emptyVenus   = new SceneEntity("emptyPlanetHolder", new PlanetAction(RC, _earthSpeed * 1.6150f));
            var emptyEarth   = new SceneEntity("emptyPlanetHolder", new PlanetAction(RC, _earthSpeed));
            var emptyMars    = new SceneEntity("emptyPlanetHolder", new PlanetAction(RC, _earthSpeed * 0.5320f));
            var emptyJupiter = new SceneEntity("emptyPlanetHolder", new PlanetAction(RC, _earthSpeed * 0.0833f));
            var emptySaturn  = new SceneEntity("emptyPlanetHolder", new PlanetAction(RC, _earthSpeed * 0.03476f));
            var emptyUranus  = new SceneEntity("emptyPlanetHolder", new PlanetAction(RC, _earthSpeed * 0.0119f));
            var emptyNeptun  = new SceneEntity("emptyPlanetHolder", new PlanetAction(RC, _earthSpeed * 0.0062f));

            _sceneManager.AddSceneEntity(emptyMoon);
            _sceneManager.AddSceneEntity(emptyMercury);
            _sceneManager.AddSceneEntity(emptyVenus);
            _sceneManager.AddSceneEntity(emptyEarth);
            _sceneManager.AddSceneEntity(emptyMars);
            _sceneManager.AddSceneEntity(emptyJupiter);
            _sceneManager.AddSceneEntity(emptySaturn);
            _sceneManager.AddSceneEntity(emptyUranus);
            _sceneManager.AddSceneEntity(emptyNeptun);

            // Scene Camera
            var worldOrigin = new SceneEntity("WorldOrigin", new RotationScript());

            _sceneManager.AddSceneEntity(worldOrigin);

            var cameraholder = new SceneEntity("CameraOwner", new CameraScript(RC))
            {
                Transform =
                {
                    GlobalPosition = new float3(0, 0, -10)
                }
            };

            worldOrigin.AddChild(cameraholder);

            _sceneCamera = new Camera(cameraholder);
            _sceneCamera.Resize(Width, Height);

            // Setup Space Box
            var spaceBox = new SceneEntity("Spacebox",
                                           new PlanetMaterial(RC, MoreShaders.GetTextureShader(RC), "Assets/spaceboxTexture.png"),
                                           new Renderer(spaceBoxMesh));

            _sceneManager.AddSceneEntity(spaceBox);

            // Setup Sun
            var planet = new SceneEntity("Sun",
                                         new PlanetMaterial(RC, MoreShaders.GetDiffuseTextureShader(RC), "Assets/sun.jpg"),
                                         new Renderer(planetMesh))
            {
                Transform = { LocalScale = new float3(2, 2, 2) }
            };

            _sceneManager.AddSceneEntity(planet);

            // Setup Earth
            planet = new SceneEntity("Earth", new PlanetAction(RC, new float3(0, 0.69635f * 365, 0)),
                                     new PlanetMaterial(RC, MoreShaders.GetDiffuseTextureShader(RC), "Assets/earth.jpg"),
                                     new Renderer(planetMesh))
            {
                Transform =
                {
                    GlobalPosition = new float3(2.9f,    0, 0),
                    GlobalScale    = new float3(0.1f, 0.1f, 0.1f)
                }
            };

            planet.AddComponent(direct);

            emptyEarth.AddChild(planet);

            // Setup Moon
            planet = new SceneEntity("Moon", new PlanetAction(RC, new float3(0, 2.7f, 0)),
                                     new PlanetMaterial(RC, MoreShaders.GetDiffuseTextureShader(RC), "Assets/moon.jpg"),
                                     new Renderer(planetMesh))
            {
                Transform =
                {
                    GlobalPosition = new float3(0.5f,      0, 0),
                    GlobalScale    = new float3(0.05f, 0.05f, 0.05f)
                }
            };

            emptyMoon.AddChild(planet);

            // Setup Mercury
            planet = new SceneEntity("Mercury", new PlanetAction(RC, _earthSpeed * 6.2234f),
                                     new PlanetMaterial(RC, MoreShaders.GetDiffuseTextureShader(RC), "Assets/merkur.jpg"),
                                     new Renderer(planetMesh))
            {
                Transform =
                {
                    GlobalPosition = new float3(2.35f,     0, 0),
                    GlobalScale    = new float3(0.05f, 0.05f, 0.05f)
                }
            };

            emptyMercury.AddChild(planet);

            // Setup Venus
            planet = new SceneEntity("Venus", new PlanetAction(RC, _earthSpeed * 1.5021f),
                                     new PlanetMaterial(RC, MoreShaders.GetDiffuseTextureShader(RC), "Assets/venus.jpg"),
                                     new Renderer(planetMesh))
            {
                Transform =
                {
                    GlobalPosition = new float3(2.6f,      0, 0),
                    GlobalScale    = new float3(0.08f, 0.08f, 0.08f)
                }
            };

            emptyVenus.AddChild(planet);


            // Setup Mars
            planet = new SceneEntity("Mars", new PlanetAction(RC, _earthSpeed * 374.125f),
                                     new PlanetMaterial(RC, MoreShaders.GetDiffuseTextureShader(RC), "Assets/mars.jpg"),
                                     new Renderer(planetMesh))
            {
                Transform =
                {
                    GlobalPosition = new float3(3.25f,     0, 0),
                    GlobalScale    = new float3(0.07f, 0.07f, 0.07f)
                }
            };

            emptyMars.AddChild(planet);

            // Setup Jupiter
            planet = new SceneEntity("Jupiter", new PlanetAction(RC, _earthSpeed * 882.62f),
                                     new PlanetMaterial(RC, MoreShaders.GetDiffuseTextureShader(RC), "Assets/jupiter.jpg"),
                                     new Renderer(planetMesh))
            {
                Transform =
                {
                    GlobalPosition = new float3(4,       0, 0),
                    GlobalScale    = new float3(0.4f, 0.4f, 0.4f)
                }
            };

            emptyJupiter.AddChild(planet);

            // Setup Saturn
            planet = new SceneEntity("Saturn", new PlanetAction(RC, _earthSpeed * 820.61f),
                                     new PlanetMaterial(RC, MoreShaders.GetDiffuseTextureShader(RC), "Assets/saturn.jpg"),
                                     new Renderer(planetMesh))
            {
                Transform =
                {
                    GlobalPosition = new float3(5,       0, 0),
                    GlobalScale    = new float3(0.3f, 0.3f, 0.3f)
                }
            };

            emptySaturn.AddChild(planet);


            // Setup Uranus
            planet = new SceneEntity("Uranus", new PlanetAction(RC, _earthSpeed * 509.30f),
                                     new PlanetMaterial(RC, MoreShaders.GetDiffuseTextureShader(RC), "Assets/uranus.jpg"),
                                     new Renderer(planetMesh))
            {
                Transform =
                {
                    GlobalPosition = new float3(6,         0, 0),
                    GlobalScale    = new float3(0.12f, 0.12f, 0.12f)
                }
            };

            emptyUranus.AddChild(planet);


            // Setup Neptun
            planet = new SceneEntity("Neptun", new PlanetAction(RC, _earthSpeed * 544.10f),
                                     new PlanetMaterial(RC, MoreShaders.GetDiffuseTextureShader(RC), "Assets/neptune.jpg"),
                                     new Renderer(planetMesh))
            {
                Transform =
                {
                    GlobalPosition = new float3(7,         0, 0),
                    GlobalScale    = new float3(0.14f, 0.14f, 0.14f)
                }
            };

            emptyNeptun.AddChild(planet);

            _sceneManager.StartActionCode();

            // Random Rotations
            emptyEarth.Transform.LocalEulerAngles   = new float3(0, 45, 0);
            emptyMercury.Transform.LocalEulerAngles = new float3(0, 55, 0);
            emptyVenus.Transform.LocalEulerAngles   = new float3(0, 335, 0);
            emptyMars.Transform.LocalEulerAngles    = new float3(0, 125, 0);
            emptyJupiter.Transform.LocalEulerAngles = new float3(0, 65, 0);
            emptySaturn.Transform.LocalEulerAngles  = new float3(0, 95, 0);
            emptyUranus.Transform.LocalEulerAngles  = new float3(0, 145, 0);
            emptyNeptun.Transform.LocalEulerAngles  = new float3(0, 245, 0);

            RC.ClearColor = new float4(1, 0, 0, 1);
        }
Esempio n. 27
0
 public ActionNull(SceneEntity hero) : base("ActionNull", hero)
 {
     isFinish = true;
 }
Esempio n. 28
0
        public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency)
        {
            int frameID       = 0;
            int targetFrameID = -1;
            var attribute     = entity.attributesMap["frameID"];
            int angle         = (int)entity.attributesMap["angle"].ValueInt32;
            int angleRotate   = (int)entity.attributesMap["angle"].ValueInt32;
            int type          = (int)entity.attributesMap["type"].ValueVar;
            int amplitudeX    = (int)entity.attributesMap["amplitude"].ValuePosition.X.High;
            int amplitudeY    = (int)entity.attributesMap["amplitude"].ValuePosition.Y.High;
            int angleStateX   = 0;
            int angleStateY   = 0;

            switch (attribute.Type)
            {
            case AttributeTypes.UINT8:
                targetFrameID = attribute.ValueUInt8;
                break;

            case AttributeTypes.INT8:
                targetFrameID = attribute.ValueInt8;
                break;

            case AttributeTypes.VAR:
                targetFrameID = (int)attribute.ValueVar;
                break;
            }

            int aminID = 0;

            EditorEntity.EditorAnimation editorAnim = null;
            while (true)
            {
                try
                {
                    editorAnim = e.LoadAnimation("Platform", d, aminID, -1, false, false, false);

                    if (editorAnim == null)
                    {
                        return;                     // no animation, bail out
                    }
                    frameID += editorAnim.Frames.Count;
                    if (targetFrameID < frameID)
                    {
                        int aminStart = (frameID - editorAnim.Frames.Count);
                        frameID = targetFrameID - aminStart;
                        break;
                    }
                    aminID++;
                }
                catch (Exception i)
                {
                    throw new ApplicationException($"Pop Loading Platforms! {aminID}", i);
                }
            }
            if (editorAnim.Frames.Count != 0)
            {
                EditorEntity.EditorAnimation.EditorFrame frame  = null;
                EditorEntity.EditorAnimation.EditorFrame frame2 = null;
                if (editorAnim.Frames[0].Entry.FrameSpeed > 0)
                {
                    frame  = editorAnim.Frames[e.index];
                    frame2 = editorAnim.Frames[0];
                }
                else
                {
                    frame  = editorAnim.Frames[frameID > 0 ? frameID : 0];
                    frame2 = editorAnim.Frames[0];
                }

                e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration);

                if ((amplitudeX != 0 || amplitudeY != 0) && type == 2 && e.Selected)
                {
                    d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX + amplitudeX, y + frame.Frame.CenterY + amplitudeY,
                                 frame.Frame.Width, frame.Frame.Height, false, 125);
                    d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - amplitudeX, y + frame.Frame.CenterY - amplitudeY,
                                 frame.Frame.Width, frame.Frame.Height, false, 125);
                    d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX, y + frame.Frame.CenterY,
                                 frame.Frame.Width, frame.Frame.Height, false, Transparency);
                }

                /*if ((amplitudeX != 0 || amplitudeY != 0) && type == 2)
                 * {
                 *  e.ProcessMovingPlatform2(amplitudeX,amplitudeY);
                 *  d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX + e.positionX, y + frame.Frame.CenterY - e.positionY,
                 *      frame.Frame.Width, frame.Frame.Height, false, Transparency);
                 * }*/
                else if ((amplitudeX != 0 || amplitudeY != 0) && type == 3)
                {
                    e.ProcessMovingPlatform(angle);
                    angle = e.angle;
                    double xd        = x;
                    double yd        = y;
                    double x2        = x + amplitudeX - amplitudeX / 3.7;
                    double y2        = y + amplitudeY - amplitudeY / 3.7;
                    double radius    = Math.Pow(x2 - xd, 2) + Math.Pow(y2 - yd, 2);
                    int    radiusInt = (int)Math.Sqrt(radius);
                    int    newX      = (int)(radiusInt * Math.Cos(Math.PI * angle / 128));
                    int    newY      = (int)(radiusInt * Math.Sin(Math.PI * angle / 128));
                    d.DrawBitmap(frame.Texture, (x + newX) + frame.Frame.CenterX, (y - newY) + frame.Frame.CenterY,
                                 frame.Frame.Width, frame.Frame.Height, false, Transparency);
                }
                else
                {
                    d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX + angleStateX, y + frame.Frame.CenterY - angleStateY,
                                 frame.Frame.Width, frame.Frame.Height, false, Transparency);
                }
            }
        }
Esempio n. 29
0
        public MainWindow()
        {
            InitializeComponent();

            DataContext = this;

            var category_list = new SceneEntityViewModel[3];

            var entity = new SceneEntity();
            entity.ID = 0;
            entity.Name = "Models";
            entity.Type = KGEditorCoreWrapper.EntityType.ET_Model;
            category_list[0] = new SceneEntityViewModel(this, entity);

            entity = new SceneEntity();
            entity.ID = 0;
            entity.Name = "Lights";
            entity.Type = KGEditorCoreWrapper.EntityType.ET_Light;
            category_list[1] = new SceneEntityViewModel(this, entity);

            entity = new SceneEntity();
            entity.ID = 0;
            entity.Name = "Cameras";
            entity.Type = KGEditorCoreWrapper.EntityType.ET_Camera;
            category_list[2] = new SceneEntityViewModel(this, entity);

            scene_entity_category_ = new ReadOnlyCollection<SceneEntityViewModel>(category_list);

            CameraItemsSource.items.Clear();
            CameraItemsSource.items.Add("System");

            system_properties_obj_.ActiveCamera = CameraItemsSource.items[0].Value as string;
            system_properties_obj_.SSVO = true;
            system_properties_obj_.HDR = true;
            system_properties_obj_.AA = true;
            system_properties_obj_.Gamma = true;
            system_properties_obj_.ColorGrading = true;
            properties.SelectedObject = system_properties_obj_;

            save.IsEnabled = false;
            save_as.IsEnabled = false;
            undo.IsEnabled = false;
            redo.IsEnabled = false;

            Uri iconUri = new Uri("pack://application:,,,/Images/klayge_logo.ico", UriKind.RelativeOrAbsolute);
            this.Icon = BitmapFrame.Create(iconUri);
        }
Esempio n. 30
0
 public EffectMoveControl(SceneEntity entity) :
     base(entity)
 {
 }
        public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency)
        {
            //int type = (int)entity.attributesMap["type"].ValueUInt8;
            //int type = (int)entity.attributesMap["type"].ValueUInt8;
            //int height = (int)entity.attributesMap["height"].ValueUInt8;
            bool fliph         = false;
            bool flipv         = false;
            bool allowToRender = false;
            var  editorAnim    = e.LoadAnimation2("LottoMachine", d, 0, 0, fliph, flipv, false);
            var  editorAnim2   = e.LoadAnimation2("LottoMachine", d, 0, 1, fliph, flipv, false);
            var  editorAnim3   = e.LoadAnimation2("LottoMachine", d, 0, 2, fliph, flipv, false);
            var  editorAnim4   = e.LoadAnimation2("LottoMachine", d, 0, 3, fliph, flipv, false);
            var  editorAnim5   = e.LoadAnimation2("LottoMachine", d, 0, 4, fliph, flipv, false);
            var  editorAnim3_2 = e.LoadAnimation2("LottoMachine", d, 0, 2, true, flipv, false);
            var  editorAnim4_2 = e.LoadAnimation2("LottoMachine", d, 0, 3, true, flipv, false);
            var  editorAnim5_2 = e.LoadAnimation2("LottoMachine", d, 0, 4, true, flipv, false);
            var  editorAnim6   = e.LoadAnimation2("LottoMachine", d, 0, 5, fliph, flipv, false);
            var  editorAnim7   = e.LoadAnimation2("LottoMachine", d, 0, 6, fliph, flipv, false);
            var  editorAnim8   = e.LoadAnimation2("LottoMachine", d, 0, 7, fliph, flipv, false);
            var  editorAnim9   = e.LoadAnimation2("LottoMachine", d, 0, 8, fliph, flipv, false);
            var  editorAnim10  = e.LoadAnimation2("LottoMachine", d, 0, 9, fliph, flipv, false);
            var  editorAnim11  = e.LoadAnimation2("LottoMachine", d, 0, 8, true, false, false);
            var  editorAnim12  = e.LoadAnimation2("LottoMachine", d, 0, 8, true, true, false);
            var  editorAnim13  = e.LoadAnimation2("LottoMachine", d, 0, 8, false, true, false);
            var  editorAnim14  = e.LoadAnimation2("LottoMachine", d, 0, 1, fliph, flipv, false);
            var  editorAnim15  = e.LoadAnimation2("LottoMachine", d, 0, 2, fliph, flipv, false);
            var  editorAnim16  = e.LoadAnimation2("LottoMachine", d, 0, 0, fliph, flipv, false);
            var  editorAnim17  = e.LoadAnimation2("LottoMachine", d, 2, 0, fliph, flipv, false);
            var  editorAnim18  = e.LoadAnimation2("LottoMachine", d, 0, 1, fliph, flipv, false);

            if (editorAnim != null && editorAnim.Frames.Count != 0 && editorAnim2 != null && editorAnim2.Frames.Count != 0)
            {
                if (editorAnim3 != null && editorAnim3.Frames.Count != 0 && editorAnim4 != null && editorAnim4.Frames.Count != 0)
                {
                    if (editorAnim5 != null && editorAnim5.Frames.Count != 0 && editorAnim6 != null && editorAnim6.Frames.Count != 0)
                    {
                        if (editorAnim7 != null && editorAnim7.Frames.Count != 0 && editorAnim8 != null && editorAnim8.Frames.Count != 0)
                        {
                            if (editorAnim9 != null && editorAnim9.Frames.Count != 0 && editorAnim10 != null && editorAnim10.Frames.Count != 0)
                            {
                                if (editorAnim11 != null && editorAnim11.Frames.Count != 0 && editorAnim12 != null && editorAnim12.Frames.Count != 0)
                                {
                                    if (editorAnim13 != null && editorAnim13.Frames.Count != 0 && editorAnim14 != null && editorAnim14.Frames.Count != 0)
                                    {
                                        if (editorAnim15 != null && editorAnim15.Frames.Count != 0 && editorAnim16 != null && editorAnim16.Frames.Count != 0)
                                        {
                                            if (editorAnim17 != null && editorAnim17.Frames.Count != 0 && editorAnim18 != null && editorAnim18.Frames.Count != 0)
                                            {
                                                if (editorAnim3_2 != null && editorAnim3_2.Frames.Count != 0 && editorAnim4_2 != null && editorAnim4_2.Frames.Count != 0)
                                                {
                                                    if (editorAnim5_2 != null && editorAnim5_2.Frames.Count != 0)
                                                    {
                                                        allowToRender = true;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            if (allowToRender == true)
            {
                var frame       = editorAnim.Frames[e.index];
                var dispenser   = editorAnim2.Frames[e.index];
                var ballslot1   = editorAnim3.Frames[e.index];
                var ballslot2   = editorAnim4.Frames[e.index];
                var ballslot3   = editorAnim5.Frames[e.index];
                var frame6      = editorAnim6.Frames[e.index];
                var frame7      = editorAnim7.Frames[e.index];
                var galloplogo  = editorAnim8.Frames[e.index];
                var frame9      = editorAnim9.Frames[e.index];
                var frame10     = editorAnim10.Frames[e.index];
                var frame11     = editorAnim11.Frames[e.index];
                var frame12     = editorAnim12.Frames[e.index];
                var frame13     = editorAnim13.Frames[e.index];
                var frame14     = editorAnim14.Frames[e.index];
                var frame15     = editorAnim15.Frames[e.index];
                var frame16     = editorAnim16.Frames[e.index];
                var chute       = editorAnim17.Frames[e.index];
                var ballslot1_2 = editorAnim3_2.Frames[e.index];
                var ballslot2_2 = editorAnim4_2.Frames[e.index];
                var ballslot3_2 = editorAnim5_2.Frames[e.index];

                //ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration);
                d.DrawBitmap(frame9.Texture,
                             x + frame9.Frame.CenterX - (fliph ? (frame9.Frame.Width - editorAnim9.Frames[0].Frame.Width) : 0),
                             y + frame9.Frame.CenterY + (flipv ? (frame9.Frame.Height - editorAnim9.Frames[0].Frame.Height) : 0),
                             frame9.Frame.Width, frame9.Frame.Height, false, Transparency);
                d.DrawBitmap(frame10.Texture,
                             x + frame10.Frame.CenterX - (fliph ? (frame10.Frame.Width - editorAnim10.Frames[0].Frame.Width) : 0),
                             y - 4 + frame10.Frame.CenterY + (flipv ? (frame10.Frame.Height - editorAnim10.Frames[0].Frame.Height) : 0),
                             frame10.Frame.Width, frame10.Frame.Height, false, Transparency);
                d.DrawBitmap(frame11.Texture,
                             x + frame11.Frame.Width + 32 + frame11.Frame.CenterX - (true ? (frame11.Frame.Width - editorAnim11.Frames[0].Frame.Width) : 0),
                             y + frame11.Frame.CenterY + (false ? (frame11.Frame.Height - editorAnim11.Frames[0].Frame.Height) : 0),
                             frame11.Frame.Width, frame11.Frame.Height, false, Transparency);
                d.DrawBitmap(frame12.Texture,
                             x + frame12.Frame.Width + 32 + frame12.Frame.CenterX - (true ? (frame12.Frame.Width - editorAnim12.Frames[0].Frame.Width) : 0),
                             y + frame12.Frame.Height + frame12.Frame.CenterY + (true ? (frame12.Frame.Height - editorAnim12.Frames[0].Frame.Height) : 0),
                             frame12.Frame.Width, frame12.Frame.Height, false, Transparency);
                d.DrawBitmap(frame13.Texture,
                             x + frame13.Frame.CenterX - (false ? (frame13.Frame.Width - editorAnim13.Frames[0].Frame.Width) : 0),
                             y + frame13.Frame.Height + frame13.Frame.CenterY + (true ? (frame13.Frame.Height - editorAnim13.Frames[0].Frame.Height) : 0),
                             frame13.Frame.Width, frame13.Frame.Height, false, Transparency);
                d.DrawBitmap(ballslot1.Texture,
                             x + ballslot1.Frame.CenterX - (fliph ? (ballslot1.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0),
                             y + ballslot1.Frame.CenterY + (flipv ? (ballslot1.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0),
                             ballslot1.Frame.Width, ballslot1.Frame.Height, false, Transparency);
                d.DrawBitmap(ballslot2.Texture,
                             x + ballslot2.Frame.CenterX - (fliph ? (ballslot2.Frame.Width - editorAnim4.Frames[0].Frame.Width) : 0),
                             y + ballslot2.Frame.CenterY + (flipv ? (ballslot2.Frame.Height - editorAnim4.Frames[0].Frame.Height) : 0),
                             ballslot2.Frame.Width, ballslot2.Frame.Height, false, Transparency);
                d.DrawBitmap(ballslot3.Texture,
                             x + ballslot3.Frame.CenterX - (fliph ? (ballslot3.Frame.Width - editorAnim5.Frames[0].Frame.Width) : 0),
                             y + ballslot3.Frame.CenterY + (flipv ? (ballslot3.Frame.Height - editorAnim5.Frames[0].Frame.Height) : 0),
                             ballslot3.Frame.Width, ballslot3.Frame.Height, false, Transparency);
                d.DrawBitmap(ballslot1_2.Texture,
                             x - ballslot1_2.Frame.Width - ballslot1_2.Frame.CenterX + (fliph ? (ballslot1_2.Frame.Width + editorAnim3.Frames[0].Frame.Width) : 0),
                             y + ballslot1_2.Frame.CenterY + (flipv ? (ballslot1_2.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0),
                             ballslot1_2.Frame.Width, ballslot1_2.Frame.Height, false, Transparency);
                d.DrawBitmap(ballslot2_2.Texture,
                             x - ballslot2_2.Frame.Width - ballslot2_2.Frame.CenterX + (fliph ? (ballslot2_2.Frame.Width + editorAnim4.Frames[0].Frame.Width) : 0),
                             y + ballslot2_2.Frame.CenterY + (flipv ? (ballslot2_2.Frame.Height - editorAnim4.Frames[0].Frame.Height) : 0),
                             ballslot2_2.Frame.Width, ballslot2_2.Frame.Height, false, Transparency);
                d.DrawBitmap(ballslot3_2.Texture,
                             x - ballslot3_2.Frame.Width - ballslot3_2.Frame.CenterX + (fliph ? (ballslot3_2.Frame.Width + editorAnim5.Frames[0].Frame.Width) : 0),
                             y + ballslot3_2.Frame.CenterY + (flipv ? (ballslot3_2.Frame.Height - editorAnim5.Frames[0].Frame.Height) : 0),
                             ballslot3_2.Frame.Width, ballslot3_2.Frame.Height, false, Transparency);
                d.DrawBitmap(galloplogo.Texture,
                             x + galloplogo.Frame.CenterX - (fliph ? (galloplogo.Frame.Width - editorAnim8.Frames[0].Frame.Width) : 0),
                             y + galloplogo.Frame.CenterY + (flipv ? (galloplogo.Frame.Height - editorAnim8.Frames[0].Frame.Height) : 0),
                             galloplogo.Frame.Width, galloplogo.Frame.Height, false, Transparency);
                d.DrawBitmap(chute.Texture,
                             x + chute.Frame.CenterX - (fliph ? (chute.Frame.Width - editorAnim17.Frames[0].Frame.Width) : 0),
                             y + chute.Frame.CenterY + 132 + (flipv ? (chute.Frame.Height - editorAnim17.Frames[0].Frame.Height) : 0),
                             chute.Frame.Width, chute.Frame.Height, false, Transparency);
                d.DrawBitmap(dispenser.Texture,
                             x + dispenser.Frame.CenterX - (fliph ? (dispenser.Frame.Width - editorAnim2.Frames[0].Frame.Width) : 0),
                             y + dispenser.Frame.CenterY + (flipv ? (dispenser.Frame.Height - editorAnim2.Frames[0].Frame.Height) : 0),
                             dispenser.Frame.Width, dispenser.Frame.Height, false, Transparency);
            }
        }
Esempio n. 32
0
        public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency)
        {
            int  type  = (int)entity.attributesMap["type"].ValueVar;
            bool fliph = false;
            bool flipv = false;
            int  valveType;
            int  animID;

            switch (type)
            {
            case 0:
                animID    = 0;
                valveType = 0;
                break;

            case 1:
                animID    = 0;
                valveType = 1;
                break;

            case 2:
                animID    = 0;
                valveType = 2;
                break;

            case 3:
                animID    = 2;
                valveType = 0;
                break;

            case 4:
                animID    = 2;
                valveType = 1;
                break;

            case 5:
                animID    = 2;
                valveType = 2;
                break;

            default:
                animID    = 0;
                valveType = 0;
                break;
            }
            var editorAnim = e.LoadAnimation2("FlameSpring", d, 0, animID, fliph, flipv, false);
            var nozzelA    = e.LoadAnimation2("FlameSpring", d, 1, 0, fliph, flipv, false);
            var nozzelB    = e.LoadAnimation2("FlameSpring", d, 1, 1, fliph, flipv, false);

            if (editorAnim != null && editorAnim.Frames.Count != 0 && nozzelA != null && nozzelA.Frames.Count != 0 && nozzelB != null && nozzelB.Frames.Count != 0)
            {
                var frame = editorAnim.Frames[e.index];
                var headA = nozzelA.Frames[0];
                var headB = nozzelB.Frames[0];

                e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration);

                d.DrawBitmap(frame.Texture,
                             x + frame.Frame.CenterX,
                             y + frame.Frame.CenterY,
                             frame.Frame.Width, frame.Frame.Height, false, Transparency);

                if (valveType == 2 || valveType == 0)
                {
                    d.DrawBitmap(headA.Texture,
                                 x - 21 - headA.Frame.CenterX,
                                 y - 12 - headA.Frame.CenterY,
                                 headA.Frame.Width, headA.Frame.Height, false, Transparency);
                }
                if (valveType == 1 || valveType == 0)
                {
                    d.DrawBitmap(headB.Texture,
                                 x + 12 + headB.Frame.CenterX,
                                 y - 12 - headB.Frame.CenterY,
                                 headB.Frame.Width, headB.Frame.Height, false, Transparency);
                }
            }
        }
 public override void OnDetachFromEntity(SceneEntity ety)
 {
     UnRegist(ControllerCommand.EQUIP_CHANGE, OnEquipChange);
     base.OnDetachFromEntity(ety);
 }
 private void OnEnable()
 {
     this.self = base.GetComponentInParent <SceneEntity>();
 }
 public virtual void Instantiate(SceneEntity entity)
 {
     _gameEntities.Add(entity);
 }
Esempio n. 36
0
        public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency)
        {
            //int type = (int)entity.attributesMap["type"].ValueUInt8;
            int  type         = (int)entity.attributesMap["type"].ValueUInt8;
            int  height       = (int)entity.attributesMap["height"].ValueUInt8;
            bool fliph        = false;
            bool flipv        = false;
            var  editorAnim   = e.LoadAnimation2("PopcornMachine", d, 0, 0, fliph, flipv, false);
            var  editorAnim2  = e.LoadAnimation2("PopcornMachine", d, 0, 1, fliph, flipv, false);
            var  editorAnim3  = e.LoadAnimation2("PopcornMachine", d, 0, 2, false, false, false);
            var  editorAnim4  = e.LoadAnimation2("PopcornMachine", d, 0, 3, false, false, false);
            var  editorAnim5  = e.LoadAnimation2("PopcornMachine", d, 0, 6, false, false, false);
            var  editorAnim6  = e.LoadAnimation2("PopcornMachine", d, 0, 7, false, false, false);
            var  editorAnim7  = e.LoadAnimation2("PopcornMachine", d, 0, 4, false, false, false);
            var  editorAnim8  = e.LoadAnimation2("PopcornMachine", d, 0, 5, false, false, false);
            var  editorAnim9  = e.LoadAnimation2("PopcornMachine", d, 0, 9, false, false, false);
            var  editorAnim10 = e.LoadAnimation2("PopcornMachine", d, 0, 10, false, false, false);

            if (editorAnim != null && editorAnim.Frames.Count != 0 && editorAnim2 != null && editorAnim2.Frames.Count != 0 && editorAnim3 != null && editorAnim3.Frames.Count != 0 && editorAnim4 != null && editorAnim4.Frames.Count != 0 && editorAnim5 != null && editorAnim5.Frames.Count != 0 && editorAnim6 != null && editorAnim6.Frames.Count != 0 && editorAnim7 != null && editorAnim7.Frames.Count != 0 && editorAnim8 != null && editorAnim8.Frames.Count != 0 && editorAnim9 != null && editorAnim9.Frames.Count != 0 && editorAnim10 != null && editorAnim10.Frames.Count != 0)
            {
                var frame   = editorAnim.Frames[e.index];
                var frame2  = editorAnim2.Frames[e.index];
                var frame3  = editorAnim3.Frames[e.index];
                var frame4  = editorAnim4.Frames[e.index];
                var frame5  = editorAnim5.Frames[e.index];
                var frame6  = editorAnim6.Frames[e.index];
                var frame7  = editorAnim7.Frames[e.index];
                var frame8  = editorAnim8.Frames[e.index];
                var frame9  = editorAnim9.Frames[e.index];
                var frame10 = editorAnim10.Frames[e.index];

                //ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration);
                d.DrawBitmap(frame.Texture,
                             x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0),
                             y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0),
                             frame.Frame.Width, frame.Frame.Height, false, Transparency);
                d.DrawBitmap(frame2.Texture,
                             x + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim2.Frames[0].Frame.Width) : 0),
                             y + frame2.Frame.CenterY + (flipv ? (frame2.Frame.Height - editorAnim2.Frames[0].Frame.Height) : 0),
                             frame2.Frame.Width, frame2.Frame.Height, false, Transparency);
                if (type == 0 || type == 2)
                {
                    d.DrawBitmap(frame3.Texture,
                                 x + frame3.Frame.CenterX - (fliph ? (frame3.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0),
                                 y + frame3.Frame.CenterY + (flipv ? (frame3.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0),
                                 frame3.Frame.Width, frame3.Frame.Height, false, Transparency);
                }
                if (type == 1 || type == 2)
                {
                    d.DrawBitmap(frame4.Texture,
                                 x + frame4.Frame.CenterX - (fliph ? (frame4.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0),
                                 y + frame4.Frame.CenterY + (flipv ? (frame4.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0),
                                 frame4.Frame.Width, frame4.Frame.Height, false, Transparency);
                }
                for (int i = 0; i <= height; i++)
                {
                    d.DrawBitmap(frame5.Texture,
                                 x + frame5.Frame.CenterX - (fliph ? (frame5.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0),
                                 y - 208 - (i * 160) + frame5.Frame.CenterY + (flipv ? (frame5.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0),
                                 frame5.Frame.Width, frame5.Frame.Height, false, Transparency);
                    d.DrawBitmap(frame6.Texture,
                                 x + frame6.Frame.CenterX - (fliph ? (frame6.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0),
                                 y - 208 - (i * 160) + frame6.Frame.CenterY + (flipv ? (frame6.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0),
                                 frame6.Frame.Width, frame6.Frame.Height, false, Transparency);
                }
                d.DrawBitmap(frame7.Texture,
                             x + frame7.Frame.CenterX - (fliph ? (frame7.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0),
                             y - 208 - (height * 160) + frame7.Frame.CenterY + (flipv ? (frame7.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0),
                             frame7.Frame.Width, frame7.Frame.Height, false, Transparency);
                d.DrawBitmap(frame8.Texture,
                             x + frame8.Frame.CenterX - (fliph ? (frame8.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0),
                             y - 208 - (height * 160) + frame8.Frame.CenterY + (flipv ? (frame8.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0),
                             frame8.Frame.Width, frame8.Frame.Height, false, Transparency);
                d.DrawBitmap(frame9.Texture,
                             x + frame9.Frame.CenterX - (fliph ? (frame9.Frame.Width - editorAnim9.Frames[0].Frame.Width) : 0),
                             y - 95 + frame9.Frame.CenterY + (flipv ? (frame9.Frame.Height - editorAnim9.Frames[0].Frame.Height) : 0),
                             frame9.Frame.Width, frame9.Frame.Height, false, Transparency);
                d.DrawBitmap(frame10.Texture,
                             x + frame10.Frame.CenterX - (fliph ? (frame10.Frame.Width - editorAnim10.Frames[0].Frame.Width) : 0),
                             y - 64 + frame10.Frame.CenterY + (flipv ? (frame10.Frame.Height - editorAnim10.Frames[0].Frame.Height) : 0),
                             frame10.Frame.Width, frame10.Frame.Height, false, Transparency);
            }
        }
Esempio n. 37
0
 public void RemoveEntity(SceneEntity entity)
 {
     SceneEntities.Remove(entity);
     if (entity is TowerEntity)
         TowerEntities.Remove(entity);
 }
Esempio n. 38
0
 public ActionMoveDirect(SceneEntity hero) : base("ActionMoveDirect", hero)
 {
 }
 /// <summary>
 /// Visits the specified cEntity to collect data if required by the current Visitor derivate.
 /// </summary>
 /// <param name="cEntity">The cEntity.</param>
 public virtual void Visit(SceneEntity cEntity)
 {
 }
Esempio n. 40
0
 /// <summary>
 /// 修改元件的颜色,目标GameObject必须绑定有SpriteRenderer组件
 /// </summary>
 public static void ColorTransformSprite(SceneEntity entity, float r = 1, float g = 1, float b = 1, float a = 1)
 {
     ColorTransformSprite(entity.gameObject, r, g, b, a);
 }
Esempio n. 41
0
 public ControlBase(SceneEntity entity)
 {
     m_entity = entity;
 }
Esempio n. 42
0
        /// <summary>
        /// Adds the build data.
        /// </summary>
        private void AddBuildData()
        {
            var scenes = EditorBuildSettings.scenes;
            for (int i = 0; i < scenes.Length; ++i) {
                var scene = scenes [i];
                if (!_dict.ContainsKey (scene.path))
                    continue;

                var entity = _dict [scene.path];
                entity.Scene = scene;
                entity.InBuild = true;
                entity.IsEnabled = scene.enabled;
                entity.BuildIndex = i;
                if (i == 0) {
                    _firstScene = entity;
                }
                // Add to list
                if (entity.InBuild)
                    _buildListByIndex.Add (entity);
            }
        }
Esempio n. 43
0
        private void EntitySelected(SceneEntity entity, bool add, int internalValue)
        {
            // clear old selected if req
            if (!add)
            {
                foreach (SceneEntity sceneEntity in selectedEntities)
                {
                    sceneEntity.Selected = false;
                    sceneEntity.InternalSelectedValue = -1;
                }
                selectedEntities.Clear();
            }
            if (entity != null)
            {
                selectedEntities.Add(entity);

                // toggle entity as selected
                entity.Selected = true;
                entity.InternalSelectedValue = internalValue;
            }
            // pass to UI as event
            if (OnEntitySelected != null)
                OnEntitySelected(new IEntity[] { entity }, false);
        }
Esempio n. 44
0
        private int SortByIndex(SceneEntity entityA, SceneEntity entityB)
        {
            if (entityA == null && entityB == null)
                return 0;
            if (entityA == null)
                return -1;
            if (entityB == null)
                return 1;

            return entityA.BuildIndex - entityB.BuildIndex;
        }
        public override void Draw(Structures.EntityRenderProp properties)
        {
            Methods.Draw.GraphicsHandler d = properties.Graphics;
            SceneEntity entity             = properties.Object;

            Classes.Scene.Sets.EditorEntity e = properties.EditorObject;
            int x                  = properties.X;
            int y                  = properties.Y;
            int Transparency       = properties.Transparency;
            int index              = properties.Index;
            int previousChildCount = properties.PreviousChildCount;
            int platformAngle      = properties.PlatformAngle;

            Methods.Entities.EntityAnimator Animation = properties.Animations;
            bool selected     = properties.isSelected;
            bool fliph        = false;
            bool flipv        = false;
            var  editorAnim   = Controls.Editor.MainEditor.Instance.EntityDrawing.LoadAnimation2("Train", d.DevicePanel, 0, -1, fliph, flipv, false);
            var  editorAnim2  = Controls.Editor.MainEditor.Instance.EntityDrawing.LoadAnimation2("Train", d.DevicePanel, 1, -1, fliph, flipv, false);
            var  editorAnim3  = Controls.Editor.MainEditor.Instance.EntityDrawing.LoadAnimation2("Train", d.DevicePanel, 2, -1, fliph, flipv, false);
            var  editorAnim4  = Controls.Editor.MainEditor.Instance.EntityDrawing.LoadAnimation2("Train", d.DevicePanel, 5, 0, false, false, false);
            var  editorAnim5  = Controls.Editor.MainEditor.Instance.EntityDrawing.LoadAnimation2("Train", d.DevicePanel, 7, -1, fliph, flipv, false);
            var  editorAnim6  = Controls.Editor.MainEditor.Instance.EntityDrawing.LoadAnimation2("Train", d.DevicePanel, 6, 0, false, false, false);
            var  editorAnim7  = Controls.Editor.MainEditor.Instance.EntityDrawing.LoadAnimation2("Train", d.DevicePanel, 3, -1, fliph, flipv, false);
            var  editorAnim8  = Controls.Editor.MainEditor.Instance.EntityDrawing.LoadAnimation2("Train", d.DevicePanel, 4, -1, fliph, flipv, false);
            var  editorAnim9  = Controls.Editor.MainEditor.Instance.EntityDrawing.LoadAnimation2("Train", d.DevicePanel, 10, -1, fliph, flipv, false);
            var  editorAnim10 = Controls.Editor.MainEditor.Instance.EntityDrawing.LoadAnimation2("Train", d.DevicePanel, 12, 0, fliph, flipv, false);

            if (editorAnim != null && editorAnim.Frames.Count != 0 && editorAnim2 != null && editorAnim2.Frames.Count != 0 && editorAnim3 != null && editorAnim3.Frames.Count != 0 && editorAnim4 != null && editorAnim4.Frames.Count != 0 && editorAnim5 != null && editorAnim5.Frames.Count != 0 && editorAnim6 != null && editorAnim6.Frames.Count != 0 && editorAnim7 != null && editorAnim7.Frames.Count != 0 && editorAnim8 != null && editorAnim8.Frames.Count != 0 && editorAnim9 != null && editorAnim9.Frames.Count != 0 && editorAnim10 != null && editorAnim10.Frames.Count != 0)
            {
                var frame   = editorAnim.Frames[0];
                var frame2  = editorAnim2.Frames[0];
                var frame3  = editorAnim2.Frames[1];
                var frame4  = editorAnim3.Frames[Animation.index2];
                var frame5  = editorAnim4.Frames[0];
                var frame6  = editorAnim5.Frames[Animation.index];
                var frame7  = editorAnim6.Frames[0];
                var frame8  = editorAnim7.Frames[0];
                var frame9  = editorAnim7.Frames[1];
                var frame10 = editorAnim8.Frames[0];
                var frame11 = editorAnim8.Frames[1];
                var frame12 = editorAnim9.Frames[Animation.index3];
                var frame13 = editorAnim10.Frames[0];

                Animation.ProcessAnimation(frame6.Entry.SpeedMultiplyer, frame6.Entry.Frames.Count, frame6.Frame.Delay);
                Animation.ProcessAnimation2(frame4.Entry.SpeedMultiplyer, frame4.Entry.Frames.Count, frame4.Frame.Delay);
                Animation.ProcessAnimation3(frame12.Entry.SpeedMultiplyer, frame12.Entry.Frames.Count, frame12.Frame.Delay);

                //Eggman
                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame12),
                             x + frame12.Frame.PivotX,
                             y + frame12.Frame.PivotY,
                             frame12.Frame.Width, frame12.Frame.Height, false, Transparency);
                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame13),
                             x + frame13.Frame.PivotX,
                             y + frame13.Frame.PivotY,
                             frame13.Frame.Width, frame13.Frame.Height, false, Transparency);

                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame),
                             x + frame.Frame.PivotX,
                             y + frame.Frame.PivotY,
                             frame.Frame.Width, frame.Frame.Height, false, Transparency);

                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame2),
                             x + frame2.Frame.PivotX - 104,
                             y + frame2.Frame.PivotY + 56,
                             frame2.Frame.Width, frame2.Frame.Height, false, Transparency);
                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame2),
                             x + frame2.Frame.PivotX - 30,
                             y + frame2.Frame.PivotY + 56,
                             frame2.Frame.Width, frame2.Frame.Height, false, Transparency);

                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame3),
                             x + frame3.Frame.PivotX - 104,
                             y + frame3.Frame.PivotY + 56,
                             frame3.Frame.Width, frame3.Frame.Height, false, Transparency);
                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame3),
                             x + frame3.Frame.PivotX - 30,
                             y + frame3.Frame.PivotY + 56,
                             frame3.Frame.Width, frame3.Frame.Height, false, Transparency);

                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame4),
                             x + frame4.Frame.PivotX + 22,
                             y + frame4.Frame.PivotY + 74,
                             frame4.Frame.Width, frame4.Frame.Height, false, Transparency);
                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame4),
                             x + frame4.Frame.PivotX + 84,
                             y + frame4.Frame.PivotY + 74,
                             frame4.Frame.Width, frame4.Frame.Height, false, Transparency);

                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame5),
                             x + frame5.Frame.PivotX,
                             y + frame5.Frame.PivotY,
                             frame5.Frame.Width, frame5.Frame.Height, false, Transparency);
                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame6),
                             x + frame6.Frame.PivotX,
                             y + frame6.Frame.PivotY,
                             frame6.Frame.Width, frame6.Frame.Height, false, Transparency);
                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame7),
                             x + frame7.Frame.PivotX,
                             y + frame7.Frame.PivotY,
                             frame7.Frame.Width, frame7.Frame.Height, false, Transparency);

                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame9),
                             x + frame9.Frame.PivotX - 46,
                             y + frame9.Frame.PivotY + 54,
                             frame9.Frame.Width, frame9.Frame.Height, false, Transparency);
                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame8),
                             x + frame8.Frame.PivotX - 122,
                             y + frame8.Frame.PivotY + 54,
                             frame8.Frame.Width, frame8.Frame.Height, false, Transparency);

                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame10),
                             x + frame10.Frame.PivotX + 7,
                             y + frame10.Frame.PivotY,
                             frame10.Frame.Width, frame10.Frame.Height, false, Transparency);
                d.DrawBitmap(new Methods.Draw.GraphicsHandler.GraphicsInfo(frame11),
                             x + frame11.Frame.PivotX,
                             y + frame11.Frame.PivotY,
                             frame11.Frame.Width, frame11.Frame.Height, false, Transparency);
            }
        }
        public override void Update()
        {
            if(Input.Instance.IsButton(MouseButtons.Left)){
                float mousemoveX = (float)Input.Instance.GetAxis(InputAxis.MouseX);
                float mousemoveY = (float)Input.Instance.GetAxis(InputAxis.MouseY);

                //transform.GlobalQuaternion = Quaternion.FromAxisAngle(new float3(0, 0, 1), -mousemoveY) * Quaternion.FromAxisAngle(new float3(0, 1, 0), -mousemoveX) * transform.GlobalQuaternion;

                transform.LocalEulerAngles += new float3(0, -mousemoveX*100, 0);
                transform.LocalEulerAngles += new float3(-mousemoveY*100, 0, 0);
            }

            if (Input.Instance.IsKey(KeyCodes.Up))
            {
                var _timeadd = Time.Instance.TimeFlow;
                if(Time.Instance.TimeFlow > 2)
                {
                    _timeadd += 0.1f;
                }
                else
                {
                    _timeadd += 0.0025f;
                }

                Time.Instance.TimeFlow = _timeadd;
            }
            if (Input.Instance.IsKey(KeyCodes.Down))
            {
                if(Time.Instance.TimeFlow >= 0)
                {
                var _timedec = Time.Instance.TimeFlow;

                if (Time.Instance.TimeFlow > 2)
                {
                    _timedec -= 0.1f;
                }
                else
                {
                    _timedec -= 0.0025f;
                }
                Time.Instance.TimeFlow = _timedec;
                   }
                else
                {
                    Time.Instance.TimeFlow = 0;
                }
                //Debug.WriteLine(Time.Instance.TimeFlow.ToString());
            }

            if (Input.Instance.IsKeyDown(KeyCodes.Right))
            {
                _currentTargetId++;
                if(_currentTargetId >= _planets.Length)
                {
                    _currentTargetId = 0;
                }
                _target = SceneEntity.FindSceneEntity(_planets[_currentTargetId]);
                Debug.WriteLine("Current Planet: " + _target.name);
            }

            if (Input.Instance.IsKeyDown(KeyCodes.Left))
            {
                _currentTargetId--;
                if (_currentTargetId <= 0)
                {
                    _currentTargetId = _planets.Length-1;
                }
                _target = SceneEntity.FindSceneEntity(_planets[_currentTargetId]);
                Debug.WriteLine("Current Planet: " + _target.name);
            }
            transform.GlobalPosition = _target.transform.GlobalPosition;
            //Debug.WriteLine("Target is cool & RotationScript GlobalPos: " + _target.transform.GlobalPosition);
        }
        public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency)
        {
            var type   = entity.attributesMap["type"].ValueUInt8;
            var width  = (int)(entity.attributesMap["size"].ValuePosition.X.High) - 1;
            var height = (int)(entity.attributesMap["size"].ValuePosition.Y.High) - 1;

            var editorAnim = e.LoadAnimation2("EditorAssets", d, 0, 0, false, false, false);

            if (width != -1 && height != -1)
            {
                bool wEven = width % 2 == 0;
                bool hEven = height % 2 == 0;

                int x1 = (x + (wEven ? -8 : -16) + (-width / 2 + width) * 16) + 15;
                int x2 = (x + (wEven ? -8 : -16) + (-width / 2) * 16);
                int y1 = (y + (hEven ? -8 : -16) + (-height / 2 + height) * 16) + 15;
                int y2 = (y + (hEven ? -8 : -16) + (-height / 2) * 16);


                d.DrawLine(x1, y1, x1, y2, SystemColors.White);
                d.DrawLine(x1, y1, x2, y1, SystemColors.White);
                d.DrawLine(x2, y2, x1, y2, SystemColors.White);
                d.DrawLine(x2, y2, x2, y1, SystemColors.White);

                // draw corners
                for (int i = 0; i < 4; i++)
                {
                    bool right  = (i & 1) > 0;
                    bool bottom = (i & 2) > 0;

                    editorAnim = e.LoadAnimation2("EditorAssets", d, 0, 0, right, bottom, false);
                    if (editorAnim != null && editorAnim.Frames.Count != 0)
                    {
                        var frame = editorAnim.Frames[e.index];
                        e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration);
                        d.DrawBitmap(frame.Texture,
                                     (x + (wEven ? frame.Frame.CenterX : -frame.Frame.Width) + (-width / 2 + (right ? width : 0)) * frame.Frame.Width),
                                     (y + (hEven ? frame.Frame.CenterY : -frame.Frame.Height) + (-height / 2 + (bottom ? height : 0)) * frame.Frame.Height),
                                     frame.Frame.Width, frame.Frame.Height, false, Transparency);
                    }
                }
            }

            bool knux   = entity.attributesMap["onlyKnux"].ValueBool;
            bool mighty = entity.attributesMap.ContainsKey("onlyMighty") && entity.attributesMap["onlyMighty"].ValueBool;

            // draw Knuckles icon
            if (knux)
            {
                editorAnim = e.LoadAnimation2("HUD", d, 2, 2, false, false, false);
                if (editorAnim != null && editorAnim.Frames.Count != 0)
                {
                    var frame = editorAnim.Frames[e.index];
                    e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration);
                    d.DrawBitmap(frame.Texture, x - frame.Frame.Width / (mighty ? 1 : 2), y - frame.Frame.Height / 2, frame.Frame.Width, frame.Frame.Height, false, Transparency);
                }
            }

            // draw Mighty icon
            if (mighty)
            {
                editorAnim = e.LoadAnimation2("HUD", d, 2, 3, false, false, false);
                if (editorAnim != null && editorAnim.Frames.Count != 0)
                {
                    var frame = editorAnim.Frames[e.index];
                    e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration);
                    d.DrawBitmap(frame.Texture, x - (knux ? 0 : frame.Frame.Width / 2), y - frame.Frame.Height / 2, frame.Frame.Width, frame.Frame.Height, false, Transparency);
                }
            }
        }
Esempio n. 48
0
 private void clear()
 {
     this._selectObj   = null;
     this.attackTarget = null;
 }
Esempio n. 49
0
        /// <summary>
        /// Sets as active.
        /// </summary>
        /// <returns><c>true</c>, if as active was set, <c>false</c> otherwise.</returns>
        /// <param name="scenePath">Scene path.</param>
        public bool SetAsActive(string scenePath)
        {
            if (string.IsNullOrEmpty (scenePath)) {
                _activeScene = SceneEntity.Empty;
                return true;
            }

            // Same Scene
            if (_activeScene != null && string.Equals (_activeScene.FullPath, scenePath)) {
                _activeScene.IsActive = true;
                return false;
            }

            // Not exist
            if (!_dict.ContainsKey (scenePath))
                return false;

            // Deactivate
            if (_activeScene != null)
                _activeScene.IsActive = false;

            // Set new active scene
            _activeScene = _dict [scenePath];
            _activeScene.IsActive = true;
            return true;
        }
Esempio n. 50
0
 public OperaAttack(SceneEntity hero) : base("OperaAttack", hero)
 {
     actionType = Action.ACTION_TYPE.OPERA;
     action     = new ActiveMove(hero);
 }
Esempio n. 51
0
 /// <summary>
 /// Returns to pool.
 /// </summary>
 /// <param name="entity">Entity.</param>
 private void ReturnToPool(SceneEntity entity)
 {
     entity.Clear ();
     _pool.Push (entity);
 }
Esempio n. 52
0
 public override void Start()
 {
     _earth = SceneEntity.FindSceneEntity("Earth");
     transform.LocalPosition = _earth.Transform.GlobalPosition;
 }
 public override void Start()
 {
     _target = SceneEntity.FindSceneEntity(_planets[_currentTargetId]);
     Debug.WriteLine(_target.name);
 }
Esempio n. 54
0
 public ActionBeAttactedAndThrowUp(SceneEntity hero) : base("ActionBeAttactedAndFly", hero)
 {
     actionType = ACTION_TYPE.FLY;
 }
 /// <summary>
 /// Visits the specified <see cref="SceneEntity"/> to gather data if required by the current Visitor derivate.
 /// </summary>
 /// <param name="cEntity">The SceneEntity instance.</param>
 public override void Visit(SceneEntity cEntity)
 {
     cEntity.TraverseForRendering(this);
 }
Esempio n. 56
0
        public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency)
        {
            var widthPixels  = (int)(entity.attributesMap["pileSize"].ValuePosition.X.High) * 2;
            var heightPixels = (int)(entity.attributesMap["pileSize"].ValuePosition.Y.High) * 2;
            var width        = (int)widthPixels / 16;
            var height       = (int)heightPixels / 16;

            var editorAnim = e.LoadAnimation2("EditorAssets", d, 0, 0, false, false, false);

            if (width != 0 && height != 0)
            {
                // draw corners
                for (int i = 0; i < 4; i++)
                {
                    bool right  = (i & 1) > 0;
                    bool bottom = (i & 2) > 0;

                    editorAnim = e.LoadAnimation2("EditorAssets", d, 0, 0, right, bottom, false);
                    if (editorAnim != null && editorAnim.Frames.Count != 0)
                    {
                        var frame = editorAnim.Frames[e.index];
                        e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration);
                        d.DrawBitmap(frame.Texture,
                                     (x + widthPixels / (right ? 2 : -2)) - (right ? frame.Frame.Width : 0),
                                     (y + heightPixels / (bottom ? 2 : -2) - (bottom ? frame.Frame.Height : 0)),
                                     frame.Frame.Width, frame.Frame.Height, false, Transparency);
                    }
                }

                // draw top and bottom
                for (int i = 0; i < 2; i++)
                {
                    bool bottom = (i & 1) > 0;

                    editorAnim = e.LoadAnimation2("EditorAssets", d, 0, 1, false, bottom, false);
                    if (editorAnim != null && editorAnim.Frames.Count != 0)
                    {
                        var frame = editorAnim.Frames[e.index];
                        e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration);
                        bool wEven = width % 2 == 0;
                        for (int j = 1; j < width; j++)
                        {
                            d.DrawBitmap(frame.Texture,
                                         (x + (wEven ? frame.Frame.CenterX : -frame.Frame.Width) + (-width / 2 + j) * frame.Frame.Width),
                                         (y + heightPixels / (bottom ? 2 : -2) - (bottom ? frame.Frame.Height : 0)),
                                         frame.Frame.Width, frame.Frame.Height, false, Transparency);
                        }
                    }
                }

                // draw sides
                for (int i = 0; i < 2; i++)
                {
                    bool right = (i & 1) > 0;

                    editorAnim = e.LoadAnimation2("EditorAssets", d, 0, 2, right, false, false);
                    if (editorAnim != null && editorAnim.Frames.Count != 0)
                    {
                        var frame = editorAnim.Frames[e.index];
                        e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration);
                        bool hEven = height % 2 == 0;
                        for (int j = 1; j < height; j++)
                        {
                            d.DrawBitmap(frame.Texture,
                                         (x + widthPixels / (right ? 2 : -2)) - (right ? frame.Frame.Width : 0),
                                         (y + (hEven ? frame.Frame.CenterY : -frame.Frame.Height) + (-height / 2 + j) * frame.Frame.Height),
                                         frame.Frame.Width, frame.Frame.Height, false, Transparency);
                        }
                    }
                }
            }
        }
Esempio n. 57
0
        public override void Init()
        {
            SceneManager.RC = RC;
            SceneEntity _planet;
            // Lights
            DirectionalLight direct = new DirectionalLight(new float3(-500, 1000, 0), new float4(1, 1, 1, 1), new float3(0, 0, 0), 0);

            // Load Geometry

            Geometry planetgeometry = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/Sphere.obj.model"));
            Geometry spacebox = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/spacebox.obj.model"));

            // Setup Empty Objects
            // Null Objects
            SceneEntity _emptyMoon;
            SceneEntity _emptyMercury;
            SceneEntity _emptyVenus;
            SceneEntity _emptyEarth;
            SceneEntity _emptyMars;
            SceneEntity _emptyJupiter;
            SceneEntity _emptySaturn;
            SceneEntity _emptyUranus;
            SceneEntity _emptyNeptun;
            _emptyMoon = new SceneEntity("emptyPlanetHolder", new MoonAction(_speedearth * 5.0f));
            _emptyMercury = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 4.1477f));
            _emptyVenus = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 1.6150f));
            _emptyEarth = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth));
            _emptyMars = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 0.5320f));
            _emptyJupiter = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 0.0833f));
            _emptySaturn = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 0.03476f));
            _emptyUranus = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 0.0119f));
            _emptyNeptun = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 0.0062f));
            SceneManager.Manager.AddSceneEntity(_emptyMoon);
            SceneManager.Manager.AddSceneEntity(_emptyMercury);
            SceneManager.Manager.AddSceneEntity(_emptyVenus);
            SceneManager.Manager.AddSceneEntity(_emptyEarth);
            SceneManager.Manager.AddSceneEntity(_emptyMars);
            SceneManager.Manager.AddSceneEntity(_emptyJupiter);
            SceneManager.Manager.AddSceneEntity(_emptySaturn);
            SceneManager.Manager.AddSceneEntity(_emptyUranus);
            SceneManager.Manager.AddSceneEntity(_emptyNeptun);

            //Setup Camera
            // Scene Camera
            SceneEntity cameraholder;
            CameraScript camscript;
            SceneEntity WorldOrigin;
            WorldOrigin = new SceneEntity("WorldOrigin", new RotationScript());
            SceneManager.Manager.AddSceneEntity(WorldOrigin);
            cameraholder = new SceneEntity("CameraOwner", new CameraScript(), WorldOrigin);
            cameraholder.transform.GlobalPosition = new float3(0, 0, 10);
            scenecamera = new Camera(cameraholder);
            scenecamera.Resize(Width, Height);

            // Setup Space Box
            SceneEntity _spaceBox = new SceneEntity("Spacebox", new PlanetMaterial(MoreShaders.GetShader("simpel", RC), "Assets/spaceboxTexture.png"), new Renderer(spacebox));
            SceneManager.Manager.AddSceneEntity(_spaceBox);

            // Setup Earth
            _planet = new SceneEntity("Earth", new PlanetAction(new float3(0, 0.69635f * 365, 0)), _emptyEarth, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/earth.jpg"), new Renderer(planetgeometry));
            _planet.transform.GlobalPosition = new float3(2.9f, 0, 0);
            _planet.transform.GlobalScale = new float3(0.1f, 0.1f, 0.1f);
            _planet.AddComponent(direct);

            //Setup Moon
            //_emptyMoon.transform.LocalPosition = _earth.transform.LocalPosition;
            //_emptyMoonAction = new MoonAction(_speedearth * 5.0f);
            //_emptyMoon.AddComponent(_emptyMoonAction);
            _planet = new SceneEntity("Moon", new PlanetAction(new float3(0, 2.7f, 0)), _emptyMoon, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/moon.jpg"), new Renderer(planetgeometry));
            _planet.transform.GlobalPosition = new float3(0.5f, 0, 0);
            _planet.transform.GlobalScale = new float3(0.05f, 0.05f, 0.05f);

            //SceneManager.Manager.AddSceneEntity(_emptyMoon);
            //_emptyMoon.AddChild(_moon);
            //_emptyMoonAction.Init(_emptyMoon);
            /*
            _moon = new SceneEntity { name = "Moon" };
            _emptyMoonAction = new MoonAction(_earth, _speedearth * 5.0f);

            _moonMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC));
            _moonImage = RC.LoadImage("Assets/moon.jpg");
            _moonIShaderParam = _moonMaterial.sp.GetShaderParam("texture1");
            _moonITexture = RC.CreateTexture(_moonImage);
            _moonMaterial.Tex = _moonITexture;
            _moonMaterial.Textureparam = _moonIShaderParam;
            _moonRenderer = new Renderer(planetgeometry);
            _moonRenderer.material = _moonMaterial;
            _moon.AddComponent(_moonRenderer);
            _emptyMoon.AddComponent(_emptyMoonAction);
            _moon.transform.LocalPosition = new float3(0.5f, 0, 0);
            _moon.transform.LocalScale = new float3(0.05f, 0.05f, 0.05f);
            SceneManager.Manager.AddSceneEntity(_emptyMoon);
            _emptyMoon.AddChild(_moon);
            _emptyMoonAction.Init(_emptyMoon);
            */
            // Setup sun
            _planet = new SceneEntity("Sun", new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/sun.jpg"), new Renderer(planetgeometry));
            _planet.transform.LocalScale = new float3(2, 2, 2);
            SceneManager.Manager.AddSceneEntity(_planet);

            /*
            _sun = new SceneEntity { name = "Sun" };
            //_sunAction.Init(_sun);
            _sunMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC));
            _sunImage = RC.LoadImage("Assets/sun.jpg");
            _sunIShaderParam = _sunMaterial.sp.GetShaderParam("texture1");
            _sunITexture = RC.CreateTexture(_sunImage);
            _sunMaterial.Tex = _sunITexture;
            _sunMaterial.Textureparam = _sunIShaderParam;
            _sunRenderer = new Renderer(planetgeometry);
            _sunRenderer.material = _sunMaterial;
            _sun.AddComponent(_sunRenderer);
            _sun.transform.LocalPosition = new float3(0,0,0);
            _sun.transform.LocalScale = new float3(2,2,2);
            //_earth.AddChild(_sun);
            SceneManager.Manager.AddSceneEntity(_sun);
            */
            // Setup mercury
            _planet = new SceneEntity("Mercury", new PlanetAction(_speedearth * 6.2234f), _emptyMercury, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/merkur.jpg"), new Renderer(planetgeometry));
            _planet.transform.GlobalPosition = new float3(2.35f, 0, 0);
            _planet.transform.GlobalScale = new float3(0.05f, 0.05f, 0.05f);
            /*
            _mercury = new SceneEntity { name = "Mercury" };
            _mercuryAction.Init(_mercury);
            _mercuryMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC));
            _mercuryImage = RC.LoadImage("Assets/merkur.jpg");
            _mercuryIShaderParam = _mercuryMaterial.sp.GetShaderParam("texture1");
            _mercuryITexture = RC.CreateTexture(_mercuryImage);
            _mercuryMaterial.Tex = _mercuryITexture;
            _mercuryMaterial.Textureparam = _mercuryIShaderParam;
            _mercuryRenderer = new Renderer(planetgeometry);
            _mercuryRenderer.material = _mercuryMaterial;
            _mercury.AddComponent(_mercuryRenderer);
            _mercury.AddComponent(_mercuryAction);
            _mercury.transform.LocalPosition = new float3(2.35f, 0, 0);
            _mercury.transform.LocalScale = new float3(0.05f, 0.05f, 0.05f);
            //SceneManager.Manager.AddSceneEntity(_mercury);
            _emptyMercury.AddChild(_mercury);
            */
            // Setup venus
            _planet = new SceneEntity("Venus", new PlanetAction(_speedearth * 1.5021f), _emptyVenus, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/venus.jpg"), new Renderer(planetgeometry));
            _planet.transform.GlobalPosition = new float3(2.6f, 0, 0);
            _planet.transform.GlobalScale = new float3(0.08f, 0.08f, 0.08f);
            /*
            _venus = new SceneEntity { name = "Venus" };
            _venusAction.Init(_venus);
            _venusMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC));
            _venusImage = RC.LoadImage("Assets/venus.jpg");
            _venusIShaderParam = _venusMaterial.sp.GetShaderParam("texture1");
            _venusITexture = RC.CreateTexture(_venusImage);
            _venusMaterial.Tex = _venusITexture;
            _venusMaterial.Textureparam = _venusIShaderParam;
            _venusRenderer = new Renderer(planetgeometry);
            _venusRenderer.material = _venusMaterial;
            _venus.AddComponent(_venusRenderer);
            _venus.AddComponent(_venusAction);
            _venus.transform.LocalPosition = new float3(2.6f, 0, 0);
            _venus.transform.LocalScale = new float3(0.08f, 0.08f, 0.08f);
            //SceneManager.Manager.AddSceneEntity(_venus);
            _emptyVenus.AddChild(_venus);*/

            // Setup mars
            _planet = new SceneEntity("Mars", new PlanetAction(_speedearth * 374.125f), _emptyMars, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/mars.jpg"), new Renderer(planetgeometry));
            _planet.transform.GlobalPosition = new float3(3.25f, 0, 0);
            _planet.transform.GlobalScale = new float3(0.07f, 0.07f, 0.07f);
            /*
            _mars = new SceneEntity { name = "Mars" };
            _marsAction.Init(_mars);
            _marsMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC));
            _marsImage = RC.LoadImage("Assets/mars.jpg");
            _marsIShaderParam = _marsMaterial.sp.GetShaderParam("texture1");
            _marsITexture = RC.CreateTexture(_marsImage);
            _marsMaterial.Tex = _marsITexture;
            _marsMaterial.Textureparam = _marsIShaderParam;
            _marsRenderer = new Renderer(planetgeometry);
            _marsRenderer.material = _marsMaterial;
            _mars.AddComponent(_marsRenderer);
            _mars.AddComponent(_marsAction);
            _mars.transform.LocalPosition = new float3(3.25f, 0, 0);
            _mars.transform.LocalScale = new float3(0.07f, 0.07f, 0.07f);
            //SceneManager.Manager.AddSceneEntity(_mars);
            _emptyMars.AddChild(_mars);*/

            // Setup jupiter
            _planet = new SceneEntity("Jupiter", new PlanetAction(_speedearth * 882.62f), _emptyJupiter, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/jupiter.jpg"), new Renderer(planetgeometry));
            _planet.transform.GlobalPosition = new float3(4, 0, 0);
            _planet.transform.GlobalScale = new float3(0.4f, 0.4f, 0.4f);
            /*
            _jupiter = new SceneEntity { name = "Jupiter" };
            _jupiterAction.Init(_jupiter);
            _jupiterMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC));
            _jupiterImage = RC.LoadImage("Assets/jupiter.jpg");
            _jupiterIShaderParam = _jupiterMaterial.sp.GetShaderParam("texture1");
            _jupiterITexture = RC.CreateTexture(_jupiterImage);
            _jupiterMaterial.Tex = _jupiterITexture;
            _jupiterMaterial.Textureparam = _jupiterIShaderParam;
            _jupiterRenderer = new Renderer(planetgeometry);
            _jupiterRenderer.material = _jupiterMaterial;
            _jupiter.AddComponent(_jupiterRenderer);
            _jupiter.AddComponent(_jupiterAction);
            _jupiter.transform.LocalPosition = new float3(4, 0, 0);
            _jupiter.transform.LocalScale = new float3(0.4f, 0.4f, 0.4f);
            //SceneManager.Manager.AddSceneEntity(_jupiter);
            _emptyJupiter.AddChild(_jupiter);
            */
            // Setup saturn
            _planet = new SceneEntity("Saturn", new PlanetAction(_speedearth * 820.61f), _emptySaturn, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/saturn.jpg"), new Renderer(planetgeometry));
            _planet.transform.GlobalPosition = new float3(5, 0, 0);
            _planet.transform.GlobalScale = new float3(0.3f, 0.3f, 0.3f);
            /*_saturn = new SceneEntity { name = "Saturn" };
            _saturnAction.Init(_saturn);
            _saturnMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC));
            _saturnImage = RC.LoadImage("Assets/saturn.jpg");
            _saturnIShaderParam = _saturnMaterial.sp.GetShaderParam("texture1");
            _saturnITexture = RC.CreateTexture(_saturnImage);
            _saturnMaterial.Tex = _saturnITexture;
            _saturnMaterial.Textureparam = _saturnIShaderParam;
            _saturnRenderer = new Renderer(planetgeometry);
            _saturnRenderer.material = _saturnMaterial;
            _saturn.AddComponent(_saturnRenderer);
            _saturn.AddComponent(_saturnAction);
            _saturn.transform.LocalPosition = new float3(5, 0, 0);
            _saturn.transform.LocalScale = new float3(0.3f, 0.3f, 0.3f);
            //SceneManager.Manager.AddSceneEntity(_saturn);
            _emptySaturn.AddChild(_saturn);*/

            // Setup uranus
            _planet = new SceneEntity("Uranus", new PlanetAction(_speedearth * 509.30f), _emptyUranus, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/uranus.jpg"), new Renderer(planetgeometry));
            _planet.transform.GlobalPosition = new float3(6, 0, 0);
            _planet.transform.GlobalScale = new float3(0.12f, 0.12f, 0.12f);
            /*_uranus = new SceneEntity { name = "Uranus" };
            _uranusAction.Init(_uranus);
            _uranusMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC));
            _uranusImage = RC.LoadImage("Assets/uranus.jpg");
            _uranusIShaderParam = _uranusMaterial.sp.GetShaderParam("texture1");
            _uranusITexture = RC.CreateTexture(_uranusImage);
            _uranusMaterial.Tex = _uranusITexture;
            _uranusMaterial.Textureparam = _uranusIShaderParam;
            _uranusRenderer = new Renderer(planetgeometry);
            _uranusRenderer.material = _uranusMaterial;
            _uranus.AddComponent(_uranusRenderer);
            _uranus.AddComponent(_uranusAction);
            _uranus.transform.LocalPosition = new float3(6, 0, 0);
            _uranus.transform.LocalScale = new float3(0.12f, 0.12f, 0.12f);
            //SceneManager.Manager.AddSceneEntity(_uranus);
            _emptyUranus.AddChild(_uranus);*/

            // Setup neptun
            _planet = new SceneEntity("Neptun", new PlanetAction(_speedearth * 544.10f), _emptyNeptun, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/neptune.jpg"), new Renderer(planetgeometry));
            _planet.transform.GlobalPosition = new float3(7, 0, 0);
            _planet.transform.GlobalScale = new float3(0.14f, 0.14f, 0.14f);
            /*_neptun = new SceneEntity { name = "Neptun" };
            _neptunAction.Init(_neptun);
            _neptunMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC));
            _neptunImage = RC.LoadImage("Assets/neptune.jpg");
            _neptunIShaderParam = _neptunMaterial.sp.GetShaderParam("texture1");
            _neptunITexture = RC.CreateTexture(_neptunImage);
            _neptunMaterial.Tex = _neptunITexture;
            _neptunMaterial.Textureparam = _neptunIShaderParam;
            _neptunRenderer = new Renderer(planetgeometry);
            _neptunRenderer.material = _neptunMaterial;
            _neptun.AddComponent(_neptunRenderer);
            _neptun.AddComponent(_neptunAction);
            _neptun.transform.LocalPosition = new float3(7, 0, 0);
            _neptun.transform.LocalScale = new float3(0.14f, 0.14f, 0.14f);
            //SceneManager.Manager.AddSceneEntity(_neptun);
            _emptyNeptun.AddChild(_neptun);*/
            SceneManager.Manager.StartActionCode();
            // Random Rotations
            _emptyEarth.transform.LocalEulerAngles = new float3(0, 45, 0);
            _emptyMercury.transform.LocalEulerAngles = new float3(0, 55, 0);
            _emptyVenus.transform.LocalEulerAngles = new float3(0, 335, 0);
            _emptyMars.transform.LocalEulerAngles = new float3(0, 125, 0);
            _emptyJupiter.transform.LocalEulerAngles = new float3(0, 65, 0);
            _emptySaturn.transform.LocalEulerAngles = new float3(0, 95, 0);
            _emptyUranus.transform.LocalEulerAngles = new float3(0, 145, 0);
            _emptyNeptun.transform.LocalEulerAngles = new float3(0, 245, 0);

            //camrotation.Init(WorldOrigin);
            RC.ClearColor = new float4(1, 0, 0, 1);
        }
 public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency)
 {
     //Code Goes Here
 }
Esempio n. 59
0
 private void UpdateAddEntity(uint entity_id)
 {
     if (entity_id > 0)
     {
         var entity = new SceneEntity();
         entity.ID = entity_id;
         entity.Name = core_.EntityName(entity_id);
         entity.Type = core_.GetEntityType(entity_id);
         int type = (int)core_.GetEntityType(entity_id);
         scene_entity_category_[type].Children.Add(new SceneEntityViewModel(this, entity));
         scene_entity_category_[type].Children.Last().SelectedInternal(true);
     }
 }
Esempio n. 60
0
        public override void OnDetachFromEntity(SceneEntity ety)
        {
            UnRegist(ControllerCommand.SET_SPEED, OnSpeedChange);

            base.OnDetachFromEntity(ety);
        }