Ejemplo n.º 1
0
        public EditableMatrixImage2i(Vector2i size, IImageSampler2i sampler, IImageConstraint2i constraint)
        {
            _constraint = constraint;
            _sampler    = sampler;

            _editableMatrix = new Matrix <int>(size);
            FixImage(new Rect2i(0, 0, size.x, size.y), Direction.Unknown);
        }
Ejemplo n.º 2
0
        private void Initialize()
        {
            _editableImageConstraint = new TycoonTileConstraint2i();
            _sampler = new DualImageSampler2i();

            _terrainGenerator = new TerrainGenerator2i <TerrainMesher2i>();
            _meshUpdater      = new TerrainMeshUpdater();
            _groupsSelector   = new GroupsByCameraVisibilitySelector();
            _imageProvider    = new EditableMatrixImage2i(InitialTexture, InitialTextureScale, _sampler, _editableImageConstraint);
        }
Ejemplo n.º 3
0
        private void DisposeService()
        {
            (_imageProvider as IDisposable)?.Dispose();
            _imageProvider = null;

            (_editableImageConstraint as IDisposable)?.Dispose();
            _editableImageConstraint = null;

            (_sampler as IDisposable)?.Dispose();
            _sampler = null;

            (_terrainGenerator as IDisposable)?.Dispose();
            _terrainGenerator = null;

            (_meshUpdater as IDisposable)?.Dispose();
            _meshUpdater = null;

            (_groupsSelector as IDisposable)?.Dispose();
            _groupsSelector = null;
        }
Ejemplo n.º 4
0
        public EditableMatrixImage2i(Texture2D texture, float scale, IImageSampler2i sampler, IImageConstraint2i constraint)
        {
            _constraint = constraint;
            _sampler    = sampler;

            int width  = texture.width;
            int height = texture.height;

            var size = new Vector2i(width, height);

            _editableMatrix = new Matrix <int>(size);

            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y++)
                {
                    _editableMatrix[x, y] = (int)(texture.GetPixel(x, y).grayscale *scale);
                }
            }
            FixImage(new Rect2i(0, 0, size.x, size.y), Direction.Unknown);
        }