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()); //} }
public void AddStaticMesh(StaticMesh mesh) { if (mesh == null) { return; } StaticMeshActor focusActor = new StaticMeshActor(); ((StaticMeshActor)focusActor).StaticMeshComponent.AddStaticMesh(mesh); SceneGraph.AddActor(focusActor); }
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); }
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); }
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 }