Example #1
0
 public CollisionUtil(Space world)
 {
     World = world;
     // NonSolid Vs. Solid,NonSolid,WorldSolid (All)
     CollisionGroup.DefineCollisionRule(NonSolid, WorldSolid, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(WorldSolid, NonSolid, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(NonSolid, NonSolid, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(NonSolid, Solid, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(Solid, NonSolid, CollisionRule.NoBroadPhase);
     // Player Vs. NonSolid,Player
     CollisionGroup.DefineCollisionRule(Player, NonSolid, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(NonSolid, Player, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(Player, Player, CollisionRule.NoBroadPhase);
     // Item Vs. NonSolid (All)
     CollisionGroup.DefineCollisionRule(Item, NonSolid, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(NonSolid, Item, CollisionRule.NoBroadPhase);
     // Water Vs. NonSolid,Solid,Player,Item (All)
     CollisionGroup.DefineCollisionRule(Water, NonSolid, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(NonSolid, Water, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(Water, Solid, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(Solid, Water, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(Water, Player, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(Player, Water, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(Water, Item, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(Item, Water, CollisionRule.NoBroadPhase);
     // Non-player Character Vs. NonSolid,Item,Water
     CollisionGroup.DefineCollisionRule(Character, NonSolid, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(NonSolid, Character, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(Character, Water, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(Water, Character, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(Character, Item, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(Item, Character, CollisionRule.NoBroadPhase);
 }
Example #2
0
 static GameModel()
 {
     CollisionGroup.DefineCollisionRule(NormalGroup, GhostGroup, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(NormalGroup, NormalGroup, CollisionRule.Normal);
     CollisionGroup.DefineCollisionRule(GhostGroup, GhostGroup, CollisionRule.Normal);
     CollisionGroup.DefineCollisionRule(TerrainGroup, FunctionalGroup, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(FunctionalGroup, FunctionalGroup, CollisionRule.NoBroadPhase);
 }
Example #3
0
 public ActorManager(ObservableCollection <PlayerView> players)
 {
     mContentLoader   = new ContentManager(SharedResources.Game.Services, "Content");
     mCueSounds       = new List <Cue>();
     mCueSoundsDelete = new List <Cue>();
     mPlayers         = players;
     mActors          = new Dictionary <int, Actor>();
     WorldBounds      = new BoundingBox(Vector3.Zero, Vector3.One);
     SimSpace         = new Space();
     SimSpace.ForceUpdater.Gravity = new BEPUutilities.Vector3(0.0f, -89.2f, 0.0f);   // 9 units = 1 meter?
     CharactersCollisionGroup      = new CollisionGroup();
     PickupsCollisionGroup         = new CollisionGroup();
     CollisionGroup.DefineCollisionRule(CharactersCollisionGroup, PickupsCollisionGroup, CollisionRule.NoSolver);
     Random     = new Random();
     mTemplates = new Dictionary <string, ActorManifest>();
     CameraClippingSimObjects = new HashSet <int>();
     CollisionComponent.CollisionComponentInitialized += CollisionComponentInitializedHandler;
     CurrentTime = TimeSpan.Zero;
 }
Example #4
0
        public BEPUPhysicsWorld(Karen90MmoFramework.Quantum.Bounds bounds, Karen90MmoFramework.Quantum.Vector3 gravity, bool createBoundary = false)
        {
            var parallelLooper = new ParallelLooper();

            if (Environment.ProcessorCount > 1)
            {
                for (var i = 0; i < Environment.ProcessorCount; i++)
                {
                    parallelLooper.AddThread();
                }
            }

            this.space = new Space(parallelLooper)
            {
                ForceUpdater = { Gravity = new Vector3(gravity.X, gravity.Y, gravity.Z) }
            };
            this.bounds = bounds;

            this.frictionlessMaterial = new Material(0f, 0f, 0f);

            this.staticGroup    = new CollisionGroup();
            this.kinematicGroup = new CollisionGroup();
            this.dynamicGroup   = new CollisionGroup();
            this.avatarGroup    = new CollisionGroup();

            CollisionGroup.DefineCollisionRule(this.staticGroup, this.staticGroup, CollisionRule.NoBroadPhase);
            CollisionGroup.DefineCollisionRule(this.staticGroup, this.kinematicGroup, CollisionRule.NoBroadPhase);
            CollisionGroup.DefineCollisionRule(this.staticGroup, this.dynamicGroup, CollisionRule.NoBroadPhase);
            CollisionGroup.DefineCollisionRule(this.staticGroup, this.avatarGroup, CollisionRule.Defer);
            CollisionGroup.DefineCollisionRule(this.kinematicGroup, this.kinematicGroup, CollisionRule.NoBroadPhase);
            CollisionGroup.DefineCollisionRule(this.kinematicGroup, this.dynamicGroup, CollisionRule.NoBroadPhase);
            CollisionGroup.DefineCollisionRule(this.kinematicGroup, this.avatarGroup, CollisionRule.Defer);
            CollisionGroup.DefineCollisionRule(this.dynamicGroup, this.dynamicGroup, CollisionRule.NoBroadPhase);
            CollisionGroup.DefineCollisionRule(this.dynamicGroup, this.avatarGroup, CollisionRule.Defer);
            CollisionGroup.DefineCollisionRule(this.avatarGroup, this.avatarGroup, CollisionRule.NoBroadPhase);

            if (createBoundary)
            {
                this.CreateWorldBoundary();
            }
        }
Example #5
0
 static Actor()
 {
     CollisionGroup.DefineCollisionRule(staticObjects, staticObjects, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(staticObjects, dynamicObjects, CollisionRule.Normal);
 }
Example #6
0
 static Player()
 {
     CollisionGroup.DefineCollisionRule(noCollisionGroup, GameModel.GhostGroup, CollisionRule.NoBroadPhase);
     CollisionGroup.DefineCollisionRule(noCollisionGroup, GameModel.NormalGroup, CollisionRule.NoBroadPhase);
 }