public ChunksEndlessHolder(Vector3Int position, ChunkTracker chunkTracker, GeometryManager geometryManager) { Position = position; HierarchySize = Chunk.Settings.MaxHierarchySize; ChunkTracker = chunkTracker; GeometryManager = geometryManager; }
/// <summary> Constructor. </summary> /// <exception cref="ArgumentNullException"> Thrown when one or more required arguments are null. </exception> /// <param name="worldGrid"> The world grid which should provide the grid data to be watched. </param> /// <param name="numUnitsWide"> How many units wide the area that should be watched. </param> /// <param name="numUnitsHigh"> How many units high the area that should be watched. </param> public WorldGridSlice(WorldGrid worldGrid, int numUnitsWide, int numUnitsHigh) { if (worldGrid == null) { throw new ArgumentNullException(nameof(worldGrid)); } numUnitsWide *= GridCoordinate.WorldToGridMultiplier; numUnitsHigh *= GridCoordinate.WorldToGridMultiplier; // we always need to be odd (isn't that a statement of life) MathUtil.MakeOdd(ref numUnitsWide); MathUtil.MakeOdd(ref numUnitsHigh); // let's make sure we always have valid values numUnitsWide = Math.Max(numUnitsWide, 5); numUnitsHigh = Math.Max(numUnitsHigh, 5); _worldGrid = worldGrid; _visibleGridItems = new Array2D <SliceUnitData <T> >(numUnitsWide, numUnitsHigh); _chunkTracker = new ChunkTracker(); // these are used for converting an array index back into a world coordinate _numUnitsWideHalfThreshold = (_visibleGridItems.Width - 1) / 2; _numUnitsHighHalfThreshold = (_visibleGridItems.Height - 1) / 2; }
public Player(Point3D Position, ChunkTracker chunkTracker) { ChunkTracker = chunkTracker; ModelPosition = Position; CameraPosition = new Point3D(ModelPosition.X + cameraOffsetX, ModelPosition.Y + cameraOffsetY, ModelPosition.Z + cameraOffsetZ); CameraDirection = new Vector3D(0, -10, -1); }
protected internal Chunk(Vector3Int position, int hierarchySize, IChunkHolder parent, ChunkTracker chunkTracker, GeometryManager geometryManager) { Position = position; HierarchySize = hierarchySize; Parent = parent; ChunkTracker = chunkTracker; GeometryManager = geometryManager; }
protected internal static Chunk CreateByDistanceToTrigger( Vector3Int position, int hierarchySize, ChunkWithChunks parent, ChunkTracker chunkTracker, GeometryManager geometryManager, Vector3Int triggerPosition) { if (IsChunkTooLarge(position, hierarchySize, triggerPosition)) { return(new ChunkWithChunks(position, hierarchySize, parent, chunkTracker, geometryManager)); } return(new ChunkWithGeometry(position, hierarchySize, parent, chunkTracker, geometryManager)); }
public void initialize(MainWindow mainWindow) { VoxelModels.VoxelModels.LoadModels(); MainWindow = mainWindow; Input = MainWindow.Input; ChunkTracker = new ChunkTracker(ApplicationSettings.SX, ApplicationSettings.SY); Player = new Player(new Point3D(ApplicationSettings.worldSize * ApplicationSettings.chunkSize / 2, 20.5f, ApplicationSettings.worldSize * ApplicationSettings.chunkSize / 2), ChunkTracker); RenderManager = mainWindow.RenderManager; MobManager = new MobManager(RenderManager, ChunkTracker, Player); SkyDome = new SkyDomeAppState(); MainWindow.appStateManager.addAppState("Player", Player); MainWindow.appStateManager.addAppState("SkyDome", SkyDome); MainWindow.appStateManager.addAppState("ChunkTracker", ChunkTracker); MainWindow.appStateManager.addAppState("MobManager", MobManager); }
public MobManager(RenderManager renderManager, ChunkTracker chunktracker, Player player) { RenderManager = renderManager; ChunkTracker = chunktracker; Player = player; }
protected internal ChunkWithGeometry(Vector3Int position, int hierarchySize, IChunkHolder parent, ChunkTracker chunkTracker, GeometryManager geometryManager) : base(position, hierarchySize, parent, chunkTracker, geometryManager) { }
protected void Show() => ChunkTracker.TrackChunk(this);
protected internal void Hide() => ChunkTracker.UnTrackChunk(this);
public ChunksSingleHolder(Vector3Int position, ChunkTracker chunkTracker, GeometryManager geometryManager) { Position = position; ChunkTracker = chunkTracker; GeometryManager = geometryManager; }