public ChunkC GenerateChunk(int x,int y)
 {
     ChunkC chunk = new ChunkC(x,y,diameter,numComponentsPerBlock);
     object[] comp = new object[numBlocks*numComponentsPerBlock];
     var rand = new Random();
     float increament = 0.01f;
     float decemalW = (x/(diameter*Grid.gridPixelSize)) * ((diameter-1) +(diameter*increament));
     float decemalH = (y / (diameter * Grid.gridPixelSize)) * ((diameter - 1) + (diameter * increament));
     
     for (int h = 0; h < diameter; h++)
     {
         decemalH += increament;
         for (int w = 0; w < diameter; w++)
         {
             decemalW += increament;
             Double n = PerlinNoise.OctavePerlin((decemalW) *5 ,(decemalH)*5, 0, 1, 1) * 255;;
            
             if (n < 150 && h > 5)
             {
                 Body b = BodyFactory.CreateRectangle(entityController.physicsWorld, ConvertUnits.ToSimUnits(Grid.gridPixelSize), ConvertUnits.ToSimUnits(Grid.gridPixelSize), 1,ConvertUnits.ToSimUnits(new Vector2(w * Grid.gridPixelSize + chunk.bounds.X, h * Grid.gridPixelSize + chunk.bounds.Y)), 0, BodyType.Static);
                 b.Friction = 0.5f;
                 b.Restitution = 0;
                 comp[((w + (h * diameter)) * numComponentsPerBlock)] = new TextureC(ChunkSystem.texture);
             }                             
         }
         decemalW = (x / (diameter * Grid.gridPixelSize)) * ((diameter - 1) + (diameter * increament));
     }
     chunk.Blocks = comp;
     int cX = (int)((x / (diameter * Grid.gridPixelSize)));
     int cY = (int)((y / (diameter * Grid.gridPixelSize)));
     chunks.Add(new Vector2(cX, cY),chunk);
     return chunk;
 }
Example #2
0
        public static void AttachButton(Texture2D texture, Vector2 pos, Vector2 scale)
        {
            if (panel == null)
            {
                throw new UIException("Complete called before Begin");
            }
            TextureC textureC = new TextureC(texture);

            entityGroup.Add(entityController.CreateEntity(textureC, new TransformC(pos, scale), new UIC(), new ButtonC(textureC, test, new Rectangle(pos.ToPoint(), new Point((int)(texture.Width * scale.X), (int)(texture.Height * scale.Y))))));
        }
 public void ProcessEntity()
 {
     foreach (Entity e in compatableEntitys)
     {
         TextureC   Texture = e.GetComponent <TextureC>();
         TransformC Pos     = e.GetComponent <TransformC>();
         if (e.Active)
         {
             spriteBatch.Draw(Texture, new Rectangle((int)Pos.Position.X, (int)Pos.Position.Y, (int)(Texture.Texture.Width * Pos.Scale.X), (int)(Texture.Texture.Height * Pos.Scale.Y)), null, Color.White, 0, Vector2.Zero, SpriteEffects.None, 0f);
         }
     }
 }
        public void ProcessEntity()
        {
            foreach (Entity e in compatableEntitys)
            {
                TextureC  = e.GetComponent <TextureC>();
                Texture   = TextureC.Texture;
                Transform = e.GetComponent <TransformC>();

                float width  = Texture.Width * Transform.Scale.X;
                float height = Texture.Height * Transform.Scale.Y;
                spriteBatch.Draw(Texture, new Rectangle((int)Transform.Position.X, (int)Transform.Position.Y, (int)width, (int)height), Color.White);
            }
        }
        public  void ProcessEntity()
        {
            object[] components = chunkBeingProcessed.Blocks;

            for (int h = 0; h < diameter; h++)
            {
                for (int w = 0; w < diameter; w++)
                {
                    TextureC texture = ((TextureC)components[w + (h*diameter)]);
                   if(texture != null) chunkSpriteBatch.Draw(ChunkSystem.texture, new Rectangle(w * Grid.gridPixelSize + chunkBeingProcessed.bounds.X, h * Grid.gridPixelSize + chunkBeingProcessed.bounds.Y, Grid.gridPixelSize, Grid.gridPixelSize), Color.White);
                }
            }
        }
        public void ProcessEntity()
        {
            //Console.WriteLine(compatableEntitys.Count);
            foreach (Entity e in compatableEntitys)
            {
                TextureC    Texture    = e.GetComponent <TextureC>();
                TransformC  Transform  = e.GetComponent <TransformC>();
                BackGroundC backGround = e.GetComponent <BackGroundC>();

                Vector2 Position = new Vector2(Transform.Position.X + (camera.matrix.Translation.X * backGround.moveRatio), Transform.Position.Y);

                float width  = Texture.Texture.Width * Transform.Scale.X;
                float height = Texture.Texture.Height * Transform.Scale.Y;
                if (graphicsDevice.Viewport.Bounds.Contains(Transform.Position.X + (camera.matrix.Translation.X * -backGround.moveRatio) + width + 50, 0) && !backGround.leftNeighbour)
                {
                    entityController.CreateEntityDelayed(Texture, new TransformC(new Vector2(Transform.Position.X + width, Transform.Position.Y), new Vector2(3, 3)), new BackGroundC(backGround.moveRatio));
                    backGround.leftNeighbour = true;
                }
                spriteBatch.Draw(Texture.Texture, new Rectangle((int)Position.X, (int)Position.Y, (int)width, (int)height), Color.White);
            }
        }