private void CreatePoint(int x, int y, Sprite sprite, BlockSetProfile.BlockInfo blockInfo, BlockSetProfile.BlockType isColliding, bool noLightEffect) { var textureSize = new Vector2(sprite.texture.width, sprite.texture.height); var uvRect = sprite.textureRect; var startVert = _vertices.Count; const float add = 0.01f; float z = isColliding == BlockSetProfile.BlockType.CollidingWall ? 0 : 5; _vertices.Add(new Vector3(x - add, y - add, z)); _vertices.Add(new Vector3(x + 1 + add, y - add, z)); _vertices.Add(new Vector3(x - add, y + 1 + add, z)); _vertices.Add(new Vector3(x + 1 + add, y + 1 + add, z)); _uvs.Add(new Vector2(uvRect.xMin / textureSize.x, uvRect.yMin / textureSize.y)); // 0, 0 _uvs.Add(new Vector2(uvRect.xMax / textureSize.x, uvRect.yMin / textureSize.y)); // 1, 0 _uvs.Add(new Vector2(uvRect.xMin / textureSize.x, uvRect.yMax / textureSize.y)); // 0, 1 _uvs.Add(new Vector2(uvRect.xMax / textureSize.x, uvRect.yMax / textureSize.y)); // 1, 1 _triangles.Add(startVert + 2); _triangles.Add(startVert + 1); _triangles.Add(startVert); _triangles.Add(startVert + 1); _triangles.Add(startVert + 2); _triangles.Add(startVert + 3); //for (int i = 0; i < 4; i++) //{ _lightAbsorptionColors.Add(noLightEffect ? new Color() : blockInfo.LightAbsorption); _lightEmissionColors.Add(noLightEffect ? new Color() : blockInfo.LightEmission); //} }
private void CreatePoint(int x, int y, BlockSetProfile.BlockInfo blockInfo, int compactInfo, bool noLightEffects, SimpleRNG rand, BlockSetProfile.BlockType?isColliding = null) { var sprite = blockInfo.SpriteInfo .RandomElement(ti => 1, rand); //if (tilingInfo == null) //{ // Debug.LogError("Tiling info not found"); // return; //} //var sprite = tilingInfo.Sprite; if (sprite == null) { Debug.LogError("Tiling info is broken"); return; } CreatePoint(x, y, sprite, blockInfo, isColliding == null ? blockInfo.BlockType : isColliding.Value, noLightEffects); }
public CollMapPoint(float noise) { Noise = noise; BlockInfo = null; BlockType = BlockSetProfile.BlockType.Empty; }