Exemple #1
0
 public bool IgnoreThis(BroadPhaseEntry entry)
 {
     if (entry is EntityCollidable ec && ec.Entity == Entity)
     {
         return(false);
     }
     if (CollisionRules.GetCollisionRule(entity.CollisionInformation, entry) == CollisionRule.NoBroadPhase)
     {
         return(false);
     }
     return(CollisionUtil.ShouldCollide(entry));
 }
Exemple #2
0
 public WheelStepUpConstraint(Entity e, CollisionUtil collis, double height)
 {
     Entity    = e;
     HopHeight = height;
     Collision = collis;
 }
Exemple #3
0
 public void BuildWorld()
 {
     MainThread = Thread.CurrentThread;
     MainThreadID = MainThread.ManagedThreadId;
     ParallelLooper pl = new ParallelLooper();
     for (int i = 0; i < Environment.ProcessorCount; i++)
     {
         pl.AddThread();
     }
     CollisionDetectionSettings.AllowedPenetration = 0.01f;
     PhysicsWorld = new Space(pl);
     PhysicsWorld.TimeStepSettings.MaximumTimeStepsPerFrame = 10;
     PhysicsWorld.ForceUpdater.Gravity = new Vector3(0, 0, -9.8f * 3f / 2f);
     PhysicsWorld.DuringForcesUpdateables.Add(new LiquidVolume(this));
     PhysicsWorld.TimeStepSettings.TimeStepDuration = 1f / TheServer.CVars.g_fps.ValueF;
     Collision = new CollisionUtil(PhysicsWorld);
     EntityConstructors.Add(EntityType.ITEM, new ItemEntityConstructor());
     EntityConstructors.Add(EntityType.BLOCK_ITEM, new BlockItemEntityConstructor());
     EntityConstructors.Add(EntityType.GLOWSTICK, new GlowstickEntityConstructor());
     EntityConstructors.Add(EntityType.MODEL, new ModelEntityConstructor());
     EntityConstructors.Add(EntityType.SMOKE_GRENADE, new SmokeGrenadeEntityConstructor());
     EntityConstructors.Add(EntityType.MUSIC_BLOCK, new MusicBlockEntityConstructor());
     ChunkManager = new ChunkDataManager();
     ChunkManager.Init(this);
     //LoadRegion(new Location(-MaxViewRadiusInChunks * 30), new Location(MaxViewRadiusInChunks * 30), true);
     //TheServer.Schedule.RunAllSyncTasks(0.016); // TODO: Separate per-region scheduler // Also don't freeze the entire server/region just because we're waiting on chunks >.>
     //SysConsole.Output(OutputType.INIT, "Finished building chunks! Now have " + LoadedChunks.Count + " chunks!");
 }
Exemple #4
0
 /// <summary>
 /// Builds the physics world.
 /// </summary>
 public void BuildWorld()
 {
     ParallelLooper pl = new ParallelLooper();
     for (int i = 0; i < Environment.ProcessorCount; i++)
     {
         pl.AddThread();
     }
     CollisionDetectionSettings.AllowedPenetration = 0.01f;
     PhysicsWorld = new Space(pl);
     PhysicsWorld.TimeStepSettings.MaximumTimeStepsPerFrame = 10;
     // Set the world's general default gravity
     PhysicsWorld.ForceUpdater.Gravity = new BEPUutilities.Vector3(0, 0, -9.8f * 3f / 2f);
     PhysicsWorld.DuringForcesUpdateables.Add(new LiquidVolume(this));
     // Load a CollisionUtil instance
     Collision = new CollisionUtil(PhysicsWorld);
 }
 public WheelStepUpConstraint(Entity e, CollisionUtil collis, double height)
 {
     Entity = e;
     HopHeight = height;
     Collision = collis;
 }