コード例 #1
0
        public void DeserializeTest()
        {
            //try
            //{
            //Alloc
            IUnrealSerializer Ser = new L2BasicSerializer();

            Ser.Initialize(header, NameTable, ExportTable, ImportTable, pf.Bytes);
            string TestName = "StaticMeshActor1";
            //int Index = NameTable.IndexOf(TestName);
            //Export Exp = ExportTable.Find(Index);
            Export Exp = ExportTable[2112]; //.FindAll(n => n.NameTableRef == NameTable.IndexOf(TestName))?.First();
                                            //Act
            UObject obj = Ser.Deserialize(Exp);

            Assert.IsInstanceOfType(obj, typeof(StaticMeshActor));
            StaticMeshActor sma = obj as StaticMeshActor;

            //Assert
            Assert.IsTrue(sma.Name == TestName);
            Assert.AreEqual(sma.Location.X, -88879.6015625d);
            Assert.AreEqual(sma.Location.Y, 118961.0703125d);
            Assert.AreEqual(sma.Location.Z, -3343.093505859375d);
            Assert.AreEqual(sma.Rotation.Pitch, 1912);
            Assert.AreEqual(sma.Rotation.Yaw, 28112);
            Assert.AreEqual(sma.Rotation.Roll, 0);
            Assert.AreEqual(sma.StaticMesh, -110);
            //}
            //catch (Exception ex)
            //{
            //    //Assert
            //    Assert.Fail(ex.ToString());
            //}
        }
コード例 #2
0
ファイル: MeshScene.cs プロジェクト: CAMongrel/AlkaronEngine
        public void AddStaticMesh(StaticMesh mesh)
        {
            if (mesh == null)
            {
                return;
            }

            StaticMeshActor focusActor = new StaticMeshActor();

            ((StaticMeshActor)focusActor).StaticMeshComponent.AddStaticMesh(mesh);

            SceneGraph.AddActor(focusActor);
        }
コード例 #3
0
ファイル: TestScene.cs プロジェクト: CAMongrel/AlkaronEngine
        protected override void Init3D()
        {
            base.Init3D();

            StaticMeshActor actor = new StaticMeshActor();

            actor.StaticMeshComponent.AddStaticMesh(new MyStaticMesh(Game1.MainGame.SceneManager));
            SceneGraph.AddActor(actor);

            actor = new StaticMeshActor();
            actor.StaticMeshComponent.AddStaticMesh(new StaticMeshCube(Game1.MainGame.SceneManager));
            SceneGraph.AddActor(actor);
        }
コード例 #4
0
        private UObject StaticMeshActorFactory(List <Property> Properties)
        {
            var             Aactor = AActorFactory(Properties);
            StaticMeshActor Actor  = new StaticMeshActor(Aactor as AActor);

            object bExactProjectileCollision = GetValueByPropertyName("bExactProjectileCollision", Properties);

            Actor.bExactProjectileCollision = bExactProjectileCollision == null ? false : (bool)bExactProjectileCollision;

            object bWorldGeometry = GetValueByPropertyName("bWorldGeometry", Properties);

            Actor.bWorldGeometry = bWorldGeometry == null ? false : (bool)bWorldGeometry;

            object bShadowCast = GetValueByPropertyName("bShadowCast", Properties);

            Actor.bShadowCast = bShadowCast == null ? false : (bool)bShadowCast;

            object bStaticLighting = GetValueByPropertyName("bStaticLighting", Properties);

            Actor.bStaticLighting = bStaticLighting == null ? false : (bool)bStaticLighting;

            object CollisionRadius = GetValueByPropertyName("bCollideActors", Properties);

            Actor.CollisionRadius = CollisionRadius == null ? 0.0f : (float)CollisionRadius;

            object CollisionHeight = GetValueByPropertyName("bCollideActors", Properties);

            Actor.CollisionHeight = CollisionHeight == null ? 0.0f : (float)CollisionHeight;

            object bBlockKarma = GetValueByPropertyName("bBlockKarma", Properties);

            Actor.bBlockKarma = bBlockKarma == null ? false : (bool)bBlockKarma;

            object bEdShouldSnap = GetValueByPropertyName("bEdShouldSnap", Properties);

            Actor.bEdShouldSnap = bEdShouldSnap == null ? false : (bool)bEdShouldSnap;

            return(Actor);
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: willcraftia/WindowsGame
        static void ProcessActors()
        {
            #region CharacterActor

            #region CubeAnimateCharacterActorModel [CubeAnimateCharacter]
            {
                var actor = new CharacterActor();
                actor.RigidBodyOrientationIgnored = true;
                var actorModel = new CubeAnimateCharacterActorModel();
                actorModel.ModelAssetName = "Models/Characters/CubeAnimateCharacter";
                actorModel.CastShadowEnabled = true;
                actorModel.NearTransparencyEnabled = true;
                actor.ActorModel = actorModel;
                actor.RigidBodyConfig.InertiaTensorEnabled = false;
                actor.ActionSounds[new ActionSoundKey("Footstep", null)] = "DefaultFootstep";
                actor.ActionSounds[new ActionSoundKey("Jump", null)] = "Jump";
                var shapeConfig = new CollisionShapeConfig();
                shapeConfig.Factory = typeof(BoxActorCollisionShapeFactory).FullName;
                actor.CollisionBoundsConfig = new CollisionBoundsConfig();
                actor.CollisionBoundsConfig.CollisionShapeConfigs.Add(shapeConfig);

                XmlContentHelper.Serialize<CharacterActor>(actor, "c:/Dev/Xna/Content/Actors/Characters/CubeAnimateCharacter.xml");
                actor = XmlContentHelper.Deserialize<CharacterActor>("c:/Dev/Xna/Content/Actors/Characters/CubeAnimateCharacter.xml");
            }
            #endregion

            #region CubeAssetModelActorModel [CubeBlock]
            {
                var actor = new CharacterActor();
                var actorModel = new CubeAssetModelActorModel();
                actorModel.ModelAssetName = "Tests/CubeBlock";
                actor.ActorModel = actorModel;
                var shapeConfig = new CollisionShapeConfig();
                shapeConfig.Factory = typeof(BoxActorCollisionShapeFactory).FullName;
                actor.CollisionBoundsConfig = new CollisionBoundsConfig();
                actor.CollisionBoundsConfig.CollisionShapeConfigs.Add(shapeConfig);

                XmlContentHelper.Serialize<CharacterActor>(actor, "c:/Dev/Xna/Content/Actors/StaticMeshes/CubeBlock.xml");
                actor = XmlContentHelper.Deserialize<CharacterActor>("c:/Dev/Xna/Content/Actors/StaticMeshes/CubeBlock.xml");
            }
            #endregion

            #endregion

            #region StaticMeshes

            #region CubeAssetModelActorModel [CubeStairs]
            {
                var actor = new StaticMeshActor();
                var actorModel = new CubeAssetModelActorModel();
                actorModel.ModelAssetName = "Tests/CubeStairs";
                actor.ActorModel = actorModel;
                var shapeConfig = new CollisionShapeConfig();
                shapeConfig.Factory = typeof(SlopeActorCollisionShapeFactory).FullName;
                actor.CollisionBoundsConfig = new CollisionBoundsConfig();
                actor.CollisionBoundsConfig.CollisionShapeConfigs.Add(shapeConfig);

                XmlContentHelper.Serialize<StaticMeshActor>(actor, "c:/Dev/Xna/Content/Actors/StaticMeshes/CubeStairs.xml");
                actor = XmlContentHelper.Deserialize<StaticMeshActor>("c:/Dev/Xna/Content/Actors/StaticMeshes/CubeStairs.xml");
            }
            #endregion

            #region CubeAssetModelActorModel [CubeTile]
            {
                var actor = new StaticMeshActor();
                var actorModel = new CubeAssetModelActorModel();
                actorModel.ModelAssetName = "Tests/CubeTile";
                actor.ActorModel = actorModel;
                var shapeConfig = new CollisionShapeConfig();
                shapeConfig.Factory = typeof(MeshActorCollisionShapeFactory).FullName;
                actor.CollisionBoundsConfig = new CollisionBoundsConfig();
                actor.CollisionBoundsConfig.CollisionShapeConfigs.Add(shapeConfig);

                XmlContentHelper.Serialize<StaticMeshActor>(actor, "c:/Dev/Xna/Content/Actors/StaticMeshes/CubeTile.xml");
                actor = XmlContentHelper.Deserialize<StaticMeshActor>("c:/Dev/Xna/Content/Actors/StaticMeshes/CubeTile.xml");
            }
            #endregion

            #endregion

            #region Terrain

            #region CubeTerrainActor
            {
                var actor = new TerrainActor();
                var actorModel = new CubeTerrainActorModel();
                actorModel.TerrainAssetName = "Tests/CubeTerrain";
                actor.ActorModel = actorModel;
                var shapeConfig = new CollisionShapeConfig();
                shapeConfig.Factory = typeof(CubeHeightmapActorCollisionShapeFactory).FullName;
                actor.CollisionBoundsConfig = new CollisionBoundsConfig();
                actor.CollisionBoundsConfig.CollisionShapeConfigs.Add(shapeConfig);

                XmlContentHelper.Serialize<TerrainActor>(actor, "c:/Dev/Xna/Content/Actors/Terrains/CubeTerrain.xml");
                actor = XmlContentHelper.Deserialize<TerrainActor>("c:/Dev/Xna/Content/Actors/Terrains/CubeTerrain.xml");
            }
            #endregion

            #endregion

            #region SkyDomeActor
            {
                var actor = new SkyDomeActor();
                var actorModel = new SkyDomeActorModel();
                actorModel.AdjustBlenderRadiusEnabled = true;
                actorModel.ModelAssetName = "Models/SkyDome";
                actorModel.SkyMapDefinitions["SkyDome"] = "Textures/SkyDome";
                actorModel.ActiveSkyMapName = "SkyDome";
                actor.ActorModel = actorModel;

                XmlContentHelper.Serialize<SkyDomeActor>(actor, "c:/Dev/Xna/Content/Actors/SkyDomes/SkyDome.xml");
                actor = XmlContentHelper.Deserialize<SkyDomeActor>("c:/Dev/Xna/Content/Actors/SkyDomes/SkyDome.xml");
            }
            #endregion

            #region FluidSurfaceActor
            {
                var actor = new FluidSurfaceActor();
                var actorModel = new FluidSurfaceActorModel();
                actorModel.ModelAssetName = "FluidSurfaces/FluidSurface";
                actor.ActorModel = actorModel;

                XmlContentHelper.Serialize<FluidSurfaceActor>(actor, "c:/Dev/Xna/Content/Actors/FluidSurfaces/FluidSurface.xml");
                actor = XmlContentHelper.Deserialize<FluidSurfaceActor>("c:/Dev/Xna/Content/Actors/FluidSurfaces/FluidSurface.xml");
            }
            #endregion

            #region VolumeFogActor
            //{
            //    var actor = new VolumeFogActor();
            //    actor.VolumeFogActorModel.ModelAssetName = "Models/SceneValley_Fog";
            //    actor.VolumeFogActorModel.FogColor = Color.LightBlue.ToVector3();
            //    actor.VolumeFogActorModel.FogScale = 0.05f;

            //    XmlContentLoader.Save<VolumeFogActor>(actor, "c:/Dev/Xna/Content/Actors/VolumeFog.xml");
            //    actor = XmlContentLoader.Load<VolumeFogActor>("c:/Dev/Xna/Content/Actors/VolumeFog.xml");
            //}
            #endregion
        }