Ejemplo n.º 1
0
 static void box_RequestCoordItem(ItemBox _sender, ref IntCoord _coord, bool _drag)
 {
     _coord.left = 0;
     _coord.top = 0;
     _coord.width = 70;
     _coord.height = 70;
 }
Ejemplo n.º 2
0
  public void OnTapInput(Vector2 tap)
  {
    RaycastHit hit;

    if (Physics.Raycast(GameManager.cam.ScreenPointToRay(tap), out hit, 500, layermask))
    {
      IntCoord hexCoordSelected = new IntCoord(Hex.TileAt(hit.point));

      if (hexCoordSelected.x == -1)
        return;

      //actorSpawner.SpawnUnit(null, unitToSpawn, hexCoordSelected);

      Debug.Log("Ray at "+hexCoordSelected.x+","+hexCoordSelected.y);
    }
    else
    {
      Debug.Log("No ray hit on Tap");
    }
  }
Ejemplo n.º 3
0
        public static void Test()
        {
            Widget widget = Gui.Instance.CreateWidget <Widget>("Button", new IntCoord(20, 220, 100, 100), Align.Default, "Main");
            Widget child  = widget.CreateWidget <Widget>("Button", new IntCoord(10, 10, 26, 26), Align.Default, "name1");

            widget.EventActionInfo             += new Widget.HandleActionInfo(widget_EventActionInfo);
            widget.EventToolTip                += new Widget.HandleToolTip(widget_EventToolTip);
            widget.EventRootKeyChangeFocus     += new Widget.HandleRootKeyChangeFocus(widget_EventRootKeyChangeFocus);
            widget.EventRootMouseChangeFocus   += new Widget.HandleRootMouseChangeFocus(widget_EventRootMouseChangeFocus);
            widget.EventKeyButtonPressed       += new Widget.HandleKeyButtonPressed(widget_EventKeyButtonPressed);
            widget.EventKeyButtonReleased      += new Widget.HandleKeyButtonReleased(widget_EventKeyButtonReleased);
            widget.EventKeySetFocus            += new Widget.HandleKeySetFocus(widget_EventKeySetFocus);
            widget.EventKeyLostFocus           += new Widget.HandleKeyLostFocus(widget_EventKeyLostFocus);
            widget.EventMouseButtonDoubleClick += new Widget.HandleMouseButtonDoubleClick(widget_EventMouseButtonDoubleClick);
            widget.EventMouseButtonClick       += new Widget.HandleMouseButtonClick(widget_EventMouseButtonClick);
            widget.EventMouseButtonPressed     += new Widget.HandleMouseButtonPressed(widget_EventMouseButtonPressed);
            widget.EventMouseButtonReleased    += new Widget.HandleMouseButtonReleased(widget_EventMouseButtonReleased);
            widget.EventMouseWheel             += new Widget.HandleMouseWheel(widget_EventMouseWheel);
            widget.EventMouseMove              += new Widget.HandleMouseMove(widget_EventMouseMove);
            widget.EventMouseDrag              += new Widget.HandleMouseDrag(widget_EventMouseDrag);
            widget.EventMouseSetFocus          += new Widget.HandleMouseSetFocus(widget_EventMouseSetFocus);
            widget.EventMouseLostFocus         += new Widget.HandleMouseLostFocus(widget_EventMouseLostFocus);

            bool flag = widget.IsUserString("key");

            widget.SetUserString("key", "value");
            flag = widget.IsUserString("key");
            string name = widget.GetUserString("key");

            widget.ClearUserString("key");
            flag = widget.IsUserString("key");
            name = widget.GetUserString("key");

            int height = widget.GetHeight();
            int width  = widget.GetWidth();
            int rigth  = widget.GetRight();
            int bottom = widget.GetBottom();
            int top    = widget.GetTop();

            top = widget.GetAbsoluteTop();
            int left = widget.GetLeft();

            left = widget.GetAbsoluteLeft();
            IntCoord coord = widget.GetAbsoluteCoord();
            IntRect  rect  = widget.GetAbsoluteRect();
            IntPoint point = widget.GetAbsolutePosition();

            Align align = widget.Align;

            widget.Align = Align.Center;

            widget.EnableToolTip = !widget.EnableToolTip;
            widget.NeedToolTip   = !widget.NeedToolTip;

            Widget client = widget.GetClientWidget();

            coord = widget.GetClientCoord();

            string pointer = widget.Pointer;

            widget.Pointer = "Beam";

            widget.SetEnabledSilent(true);
            widget.Enabled = !widget.Enabled;
            widget.Enabled = !widget.Enabled;

            widget.SetMaskPick("");
            widget.InheritsPick = !widget.InheritsPick;

            widget.NeedMouseFocus = !widget.NeedMouseFocus;
            widget.NeedMouseFocus = !widget.NeedMouseFocus;

            widget.NeedKeyFocus = !widget.NeedKeyFocus;
            widget.NeedKeyFocus = !widget.NeedKeyFocus;

            Widget find    = widget.FindWidget("name1");
            uint   count   = widget.GetChildCount();
            Widget childat = widget.GetChildAt(0);
            Widget parent  = widget.GetParent();

            parent = childat.GetParent();

            flag = widget.IsRootWidget();
            flag = childat.IsRootWidget();

            childat.SetState("disabled");

            childat.InheritsAlpha = !childat.InheritsAlpha;
            widget.Alpha          = 0.5f;

            widget.Caption = "Widget";

            widget.Visible = !widget.Visible;
            widget.Visible = !widget.Visible;

            widget.SetRealCoord(0, 0, 0.1f, 0.1f);
            widget.SetRealSize(0.2f, 0.2f);
            widget.SetRealPosition(0.1f, 0.1f);

            widget.SetPosition(10, 10);
            widget.SetSize(10, 10);
            widget.SetCoord(21, 221, 101, 101);

            widget.Position = new IntPoint(11, 11);
            widget.Size     = new IntSize(12, 12);
            widget.Coord    = new IntCoord(20, 220, 100, 100);

            name = widget.GetName();
        }
Ejemplo n.º 4
0
 static void container_RequestDragWidgetInfo(DDContainer _sender, ref Widget _item, ref IntCoord _dimension)
 {
     mWidget.Visible = true;
     _item           = mWidget;
     _dimension      = new IntCoord(0, 0, 20, 20);
 }
Ejemplo n.º 5
0
Archivo: Hex.cs Proyecto: cjcurrie/Hexa
 public static Vector3 TileCenter(IntCoord tileCoordinate)
 {
     return(TileOrigin(tileCoordinate) + new Vector3(halfWidth, 0, height / 2));
 }
Ejemplo n.º 6
0
    //public Transform waterTrans;

    public List <GameObject> RenderZone(Zone zone, TileSet tileSet)
    {
        // Set water
        //waterTrans.position = new Vector3(waterTrans.position.x, zone.waterHeight, waterTrans.position.z);

        List <GameObject> output = new List <GameObject>();

        // Determine
        int maxWidth     = 55;
        int sectionsWide = 1;

        if (zone.width > maxWidth)
        {
            sectionsWide = (int)Mathf.Ceil(zone.width / (float)maxWidth);
        }

        for (int secX = 0; secX < sectionsWide; secX++)
        {
            for (int secY = 0; secY < sectionsWide; secY++)
            {
                // Copy a section of tiles from zone
                Tile[,] tileSection = new Tile[maxWidth, maxWidth];
                for (int tx = secX * maxWidth; tx < secX * maxWidth + maxWidth && tx < zone.width; tx++)
                {
                    for (int ty = secY * maxWidth; ty < secY * maxWidth + maxWidth && ty < zone.width; ty++)
                    {
                        tileSection[tx - secX * maxWidth, ty - secY * maxWidth] = zone.tiles[tx, ty];
                    }
                }

                float xOff = 0;
                if (secY % 2 == 1)
                {
                    xOff += Hex.bisect;
                }

                Vector3    zonePlacement = new Vector3(Hex.bisect * 2 * maxWidth * secX + xOff, 0, Hex.sideAndAHalf * maxWidth * secY);
                GameObject render        = (GameObject)Instantiate(boardPrefab, zonePlacement, Quaternion.identity);

                MeshFilter   myFilter   = render.GetComponent <MeshFilter>();
                MeshCollider myCollider = render.GetComponent <MeshCollider>();
                Renderer     myRend     = render.GetComponent <Renderer>();

                List <Vector3> vertices  = new List <Vector3>();
                List <int>     triangles = new List <int>();
                List <Vector3> normals   = new List <Vector3>();
                List <Vector2> uvs       = new List <Vector2>();

                Vector3 origin,
                        v1 = new Vector3(0, 0, Hex.edge),
                        v2 = new Vector3(Hex.bisect, 0, Hex.halfSide),
                        v3 = new Vector3(Hex.bisect, 0, -Hex.halfSide),
                        v4 = new Vector3(0, 0, -Hex.edge),
                        v5 = new Vector3(-Hex.bisect, 0, -Hex.halfSide),
                        v6 = new Vector3(-Hex.bisect, 0, Hex.halfSide);

                float texHeight = tileSet.texture.height;
                float texWidth  = tileSet.texture.width;
                //float root3 = Mathf.Sqrt(3);
                float uvTileWidth  = 1f / 42f; //tileSet.tileWidth/texWidth;
                float uvTileHeight = 1f / 42f; //tileSet.tileWidth/texHeight;
                float side         = uvTileWidth / 2;
                float radius       = Mathf.Sqrt((3 * side * side) / 4);

                /* OLD UVS
                 * Vector2 uv0 = new Vector2(side,side),
                 *      uv1 = new Vector2(side, side+side),
                 *      uv2 = new Vector2(side+radius, side+side/2),
                 *      uv3 = new Vector2(side+radius, side/2),
                 *      uv4 = new Vector2(side, 0),
                 *      uv5 = new Vector2(side-radius, side/2),
                 *      uv6 = new Vector2(side-radius, side+side/2);
                 */
                Vector2 uv0 = new Vector2(uvTileWidth / 2.0f, uvTileHeight / 2.0f),
                        uv1 = new Vector2(10 / texWidth, 98 / texHeight),
                        uv2 = new Vector2(54 / texWidth, 22 / texHeight),
                        uv3 = new Vector2(141 / texWidth, 22 / texHeight),
                        uv4 = new Vector2(185 / texWidth, 98 / texHeight),
                        uv5 = new Vector2(141 / texWidth, 173 / texHeight),
                        uv6 = new Vector2(54 / texWidth, 173 / texHeight);
                int counter = 0;
                for (int x = 0; x < zone.width && x < tileSection.GetLength(0); x++)
                {
                    for (int y = 0; y < zone.width && y < tileSection.GetLength(1); y++)
                    {
                        if (tileSection[x, y] == null)
                        {
                            continue;
                        }

                        TileType tileType = tileSection[x, y].type;

                        if (tileType == TileType.None)
                        {
                            continue;
                        }

                        /*
                         *      1 = 0,side
                         *  6         2=height, side/2
                         *  origin(0)
                         *  5         3=height, -side/2
                         *      4= 0,-side
                         */

                        IntCoord uvCoord  = tileSet.GetUVForType(tileType);
                        Vector2  uvOffset = new Vector2(uvCoord.x * uvTileWidth, uvCoord.y * uvTileHeight);

                        IntCoord sideUV       = tileSet.GetSideUVForType(tileType);
                        Vector2  sideUVOffset = new Vector2(sideUV.x * uvTileWidth, sideUV.y * uvTileHeight);

                        float   xOffset    = x * Hex.doubleHeight;
                        Vector3 tileHeight = Vector3.up * tileSection[x, y].height;

                        if (y % 2 == 1)
                        {
                            xOffset += Hex.bisect;
                        }

                        origin = new Vector3(xOffset, 0, y * Hex.sideAndAHalf);

                        // Add the first hexagon (top)
                        vertices.Add(origin + tileHeight);
                        normals.Add(Vector3.up);
                        uvs.Add(uv0 + uvOffset);
                        //1
                        vertices.Add(origin + v1 + tileHeight);
                        normals.Add(Vector3.up);
                        uvs.Add(uv1 + uvOffset);
                        //2
                        vertices.Add(origin + v2 + tileHeight);
                        normals.Add(Vector3.up);
                        uvs.Add(uv2 + uvOffset);
                        //3
                        vertices.Add(origin + v3 + tileHeight);
                        normals.Add(Vector3.up);
                        uvs.Add(uv3 + uvOffset);
                        //4
                        vertices.Add(origin + v4 + tileHeight);
                        normals.Add(Vector3.up);
                        uvs.Add(uv4 + uvOffset);
                        //5
                        vertices.Add(origin + v5 + tileHeight);
                        normals.Add(Vector3.up);
                        uvs.Add(uv5 + uvOffset);
                        //6
                        vertices.Add(origin + v6 + tileHeight);
                        normals.Add(Vector3.up);
                        uvs.Add(uv6 + uvOffset);

                        /*
                         *    .....
                         *   / 6|  /\
                         *  / \ |1/  \
                         * / 5 \|/  2 \
                         \  /4|3\  /
                         \/..|..\/
                         */

                        // Hex 1 (top)
                        // Triangle 1
                        triangles.Add(counter);
                        triangles.Add(counter + 1);
                        triangles.Add(counter + 2);
                        // Triangle 2
                        triangles.Add(counter);
                        triangles.Add(counter + 2);
                        triangles.Add(counter + 3);
                        // Triangle 3
                        triangles.Add(counter);
                        triangles.Add(counter + 3);
                        triangles.Add(counter + 4);
                        // Triangle 4
                        triangles.Add(counter);
                        triangles.Add(counter + 4);
                        triangles.Add(counter + 5);
                        // Triangle 5
                        triangles.Add(counter);
                        triangles.Add(counter + 5);
                        triangles.Add(counter + 6);
                        // Triangle 6
                        triangles.Add(counter);
                        triangles.Add(counter + 6);
                        triangles.Add(counter + 1);

                        counter += 7;

                        // Don't render sides if it's water
                        if (tileType != TileType.Water)
                        {
                            // Second hex (bottom)
                            vertices.Add(origin);
                            normals.Add(Vector3.up);
                            uvs.Add(uv0 + sideUVOffset);
                            //8
                            vertices.Add(origin + v1);
                            normals.Add(Vector3.up);
                            uvs.Add(uv1 + sideUVOffset);
                            //9
                            vertices.Add(origin + v2);
                            normals.Add(Vector3.up);
                            uvs.Add(uv2 + sideUVOffset);
                            //10
                            vertices.Add(origin + v3);
                            normals.Add(Vector3.up);
                            uvs.Add(uv3 + sideUVOffset);
                            //11
                            vertices.Add(origin + v4);
                            normals.Add(Vector3.up);
                            uvs.Add(uv4 + sideUVOffset);
                            //12
                            vertices.Add(origin + v5);
                            normals.Add(Vector3.up);
                            uvs.Add(uv5 + sideUVOffset);
                            //13
                            vertices.Add(origin + v6);
                            normals.Add(Vector3.up);
                            uvs.Add(uv6 + sideUVOffset);

                            // Third hex for black border (top with black UVs)
                            vertices.Add(origin + tileHeight);
                            normals.Add(Vector3.up);
                            uvs.Add(uv0 + sideUVOffset);
                            //15
                            vertices.Add(origin + v1 + tileHeight);
                            normals.Add(Vector3.up);
                            uvs.Add(uv4 + sideUVOffset);
                            //16
                            vertices.Add(origin + v2 + tileHeight);
                            normals.Add(Vector3.up);
                            uvs.Add(uv5 + sideUVOffset);
                            //17
                            vertices.Add(origin + v3 + tileHeight);
                            normals.Add(Vector3.up);
                            uvs.Add(uv6 + sideUVOffset);
                            //18
                            vertices.Add(origin + v4 + tileHeight);
                            normals.Add(Vector3.up);
                            uvs.Add(uv1 + sideUVOffset);
                            //19
                            vertices.Add(origin + v5 + tileHeight);
                            normals.Add(Vector3.up);
                            uvs.Add(uv2 + sideUVOffset);
                            //20
                            vertices.Add(origin + v6 + tileHeight);
                            normals.Add(Vector3.up);
                            uvs.Add(uv3 + sideUVOffset);

                            // The 6 Parallelograms (12 triangles) which complete the hexagon
                            // Edge 1-2 on top
                            triangles.Add(counter + 1);
                            triangles.Add(counter + 8);
                            triangles.Add(counter + 13);
                            triangles.Add(counter + 1);
                            triangles.Add(counter + 13);
                            triangles.Add(counter + 6);

                            triangles.Add(counter + 2);
                            triangles.Add(counter + 8);
                            triangles.Add(counter + 1);
                            triangles.Add(counter + 2);
                            triangles.Add(counter + 9);
                            triangles.Add(counter + 8);

                            triangles.Add(counter + 3);
                            triangles.Add(counter + 9);
                            triangles.Add(counter + 2);
                            triangles.Add(counter + 3);
                            triangles.Add(counter + 10);
                            triangles.Add(counter + 9);

                            triangles.Add(counter + 4);
                            triangles.Add(counter + 10);
                            triangles.Add(counter + 3);
                            triangles.Add(counter + 4);
                            triangles.Add(counter + 11);
                            triangles.Add(counter + 10);

                            triangles.Add(counter + 5);
                            triangles.Add(counter + 11);
                            triangles.Add(counter + 4);
                            triangles.Add(counter + 5);
                            triangles.Add(counter + 12);
                            triangles.Add(counter + 11);

                            triangles.Add(counter + 6);
                            triangles.Add(counter + 12);
                            triangles.Add(counter + 5);
                            triangles.Add(counter + 6);
                            triangles.Add(counter + 13);
                            triangles.Add(counter + 12);

                            counter += 14;
                        }
                    }
                }


                Mesh m = new Mesh();
                m.vertices  = vertices.ToArray();
                m.triangles = triangles.ToArray();
                m.normals   = normals.ToArray();
                m.uv        = uvs.ToArray();

                myCollider.sharedMesh       = m;
                myFilter.sharedMesh         = m;
                myRend.material.mainTexture = tileSet.texture;

                output.Add(render);
            }
        }

        return(output);
    }
Ejemplo n.º 7
0
Archivo: Map.cs Proyecto: beardhero/HEX
 public Site(int i, string n, IntCoord c, List<int> ne, List<Line> e)
 {
     id = i;
       name = n;
       coordLocation = c;
       neighbors = ne;
       edges = e;
 }
Ejemplo n.º 8
0
 public abstract void setTextureInfo(String name, IntCoord coord);
 public override void setTextureInfo(string name, IntCoord coord)
 {
     window.setTextureInfo(name, coord);
 }
Ejemplo n.º 10
0
    public GameObject HexPlate(World world, TileSet tileSet, int i)
    {
        GameObject output = (GameObject)Instantiate(worldPrefab, Vector3.zero, Quaternion.identity);

        output.layer = 0;
        MeshFilter   myFilter   = output.GetComponent <MeshFilter>();
        MeshCollider myCollider = output.GetComponent <MeshCollider>();

        SerializableVector3 origin    = world.origin;
        List <Vector3>      vertices  = new List <Vector3>();
        List <int>          triangles = new List <int>();
        List <Vector3>      normals   = new List <Vector3>();
        List <Vector2>      uvs       = new List <Vector2>();

        //Switch between UV Modes
        if (hexagonal) //Hexagonal uvs
        {
            //Copypasta from worldrenderer
            float texHeight = 8192f;     //tileSet.texture.height;
            float texWidth  = 8192f;     //tileSet.texture.width;
            //float root3 = Mathf.Sqrt(3);
            uvTileWidth  = 1.0f / 42.0f; //tileSet.tileWidth / texWidth;
            uvTileHeight = 1.0f / 42.0f; //tileSet.tileHeight / texHeight;
            //float side = uvTileWidth / 2.0f;
            // float radius = Mathf.Sqrt((3.0f * side * side) / 4.0f);

            /*
             * Vector2 uv0 = new Vector2(side, side),
             *  uv1 = new Vector2(side, side + side),
             *  uv2 = new Vector2(side + radius, side + side / 2.0f),
             *  uv3 = new Vector2(side + radius, side / 2.0f),
             *  uv4 = new Vector2(side, 0),
             *  uv5 = new Vector2(side - radius, side / 2.0f),
             *  uv6 = new Vector2(side - radius, side + side / 2.0f);
             */
            uv0 = new Vector2(uvTileWidth / 2.0f, uvTileHeight / 2.0f);
            uv1 = new Vector2(10 / texWidth, 98 / texHeight);
            uv2 = new Vector2(54 / texWidth, 22 / texHeight);
            uv3 = new Vector2(141 / texWidth, 22 / texHeight);
            uv4 = new Vector2(185 / texWidth, 98 / texHeight);
            uv5 = new Vector2(141 / texWidth, 173 / texHeight);
            uv6 = new Vector2(54 / texWidth, 173 / texHeight);

            //Debug.Log (uv0.x + " " + uv0.y);
            //Debug.Log(uv1.x + " " + uv1.y);
            //Debug.Log(uv2.x + " " + uv2.y);
            //Debug.Log(uv3.x + " " + uv3.y);
            //Debug.Log(uv4.x + " " + uv4.y);
            //Debug.Log(uv5.x + " " + uv5.y);
            //Debug.Log (uv6.x + " " + uv6.y);
            foreach (HexTile ht in world.tiles)
            {
                if (ht.plate == i)
                {
                    IntCoord uvCoord = tileSet.GetUVForType(ht.type);
                    //Debug.Log("xCoord: "+ uvCoord.x + "  type: "+ ht.type);
                    Vector2 uvOffset = new Vector2(uvCoord.x * uvTileWidth, ht.generation * uvTileHeight);                  //uvCoord.y * uvTileHeight);

                    // Origin point, every tile unfortunately repeats origin (@TODO and one vertex) for uv purposes
                    int originIndex = vertices.Count;
                    vertices.Add(origin);
                    uvs.Add(uv0 + uvOffset);
                    normals.Add(ht.hexagon.center - origin);

                    // Center of hexagon
                    int centerIndex = vertices.Count;
                    ht.hexagon.uv0i = uvs.Count;
                    // Triangle 1
                    vertices.Add(ht.hexagon.center);
                    normals.Add((origin + ht.hexagon.center));
                    uvs.Add(uv0 + uvOffset);

                    ht.hexagon.uv1i = uvs.Count;

                    vertices.Add(ht.hexagon.v1);
                    normals.Add((origin + ht.hexagon.v1));
                    uvs.Add(uv1 + uvOffset);

                    ht.hexagon.uv2i = uvs.Count;

                    vertices.Add(ht.hexagon.v2);
                    normals.Add((origin + ht.hexagon.v2));
                    uvs.Add(uv2 + uvOffset);

                    triangles.Add(centerIndex);
                    triangles.Add(vertices.Count - 2);
                    triangles.Add(vertices.Count - 1);

                    // T2
                    ht.hexagon.uv3i = uvs.Count;
                    vertices.Add(ht.hexagon.v3);
                    normals.Add((origin + ht.hexagon.v3));
                    uvs.Add(uv3 + uvOffset);

                    triangles.Add(centerIndex);
                    triangles.Add(vertices.Count - 2);
                    triangles.Add(vertices.Count - 1);

                    // T3
                    ht.hexagon.uv4i = uvs.Count;
                    vertices.Add(ht.hexagon.v4);
                    normals.Add((origin + ht.hexagon.v4));
                    uvs.Add(uv4 + uvOffset);

                    triangles.Add(centerIndex);
                    triangles.Add(vertices.Count - 2);
                    triangles.Add(vertices.Count - 1);

                    // T4
                    ht.hexagon.uv5i = uvs.Count;
                    vertices.Add(ht.hexagon.v5);
                    normals.Add((origin + ht.hexagon.v5));
                    uvs.Add(uv5 + uvOffset);

                    triangles.Add(centerIndex);
                    triangles.Add(vertices.Count - 2);
                    triangles.Add(vertices.Count - 1);

                    // T5
                    ht.hexagon.uv6i = uvs.Count;
                    vertices.Add(ht.hexagon.v6);
                    normals.Add((origin + ht.hexagon.v6));
                    uvs.Add(uv6 + uvOffset);

                    triangles.Add(centerIndex);
                    triangles.Add(vertices.Count - 2);
                    triangles.Add(vertices.Count - 1);

                    // T6
                    triangles.Add(centerIndex);
                    triangles.Add(vertices.Count - 1);                       //1
                    triangles.Add(vertices.Count - 6);                       //6


                    // Side 1
                    triangles.Add(originIndex);
                    triangles.Add(vertices.Count - 1);
                    triangles.Add(vertices.Count - 2);

                    // Side 2
                    triangles.Add(originIndex);
                    triangles.Add(vertices.Count - 2);
                    triangles.Add(vertices.Count - 3);

                    // Side 3
                    triangles.Add(originIndex);
                    triangles.Add(vertices.Count - 3);
                    triangles.Add(vertices.Count - 4);

                    // Side 4
                    triangles.Add(originIndex);
                    triangles.Add(vertices.Count - 4);
                    triangles.Add(vertices.Count - 5);

                    // Side 5
                    triangles.Add(originIndex);
                    triangles.Add(vertices.Count - 5);
                    triangles.Add(vertices.Count - 6);

                    // Side 6 extra vertex
                    triangles.Add(originIndex);
                    triangles.Add(vertices.Count - 6);
                    triangles.Add(vertices.Count - 1);
                }
            }
        }
        else //Triangle, assumed that the texture's tiles have equilateral triangle dimensions
        {
            Debug.Log("triangle uvs");
            float   uv2x = 1.0f / tileCountW;
            float   uv1x = uv2x / 2;
            float   uv1y = 1.0f / tileCountH;
            Vector2 uv0  = Vector2.zero,
                    uv2  = new Vector2(uv2x, 0),
                    uv1  = new Vector2(uv1x, uv1y);
            //Generate quadrant
            foreach (HexTile ht in world.tiles)
            {
                if (ht.plate == i)
                {
                    IntCoord uvCoord = tileSet.GetUVForType(ht.type);
                    //Debug.Log("xCoord: "+ uvCoord.x + "  type: "+ ht.type);
                    Vector2 uvOffset = new Vector2((uvCoord.x * uv2.x), (uvCoord.y * uv1.y));

                    // Origin point
                    int originIndex = vertices.Count;
                    vertices.Add(origin);
                    uvs.Add(uv1 + uvOffset);
                    normals.Add(ht.hexagon.center - origin);

                    // Center of hexagon
                    int centerIndex = vertices.Count;

                    // Triangle 1
                    vertices.Add(ht.hexagon.center);
                    normals.Add((origin + ht.hexagon.center));
                    uvs.Add(uv1 + uvOffset);

                    vertices.Add(ht.hexagon.v1);
                    normals.Add((origin + ht.hexagon.v1));
                    uvs.Add(uv0 + uvOffset);

                    vertices.Add(ht.hexagon.v2);
                    normals.Add((origin + ht.hexagon.v2));
                    uvs.Add(uv2 + uvOffset);

                    triangles.Add(centerIndex);
                    triangles.Add(vertices.Count - 2);
                    triangles.Add(vertices.Count - 1);

                    // T2
                    vertices.Add(ht.hexagon.v3);
                    normals.Add((origin + ht.hexagon.v3));
                    uvs.Add(uv0 + uvOffset);

                    triangles.Add(centerIndex);
                    triangles.Add(vertices.Count - 2);
                    triangles.Add(vertices.Count - 1);

                    // T3
                    vertices.Add(ht.hexagon.v4);
                    normals.Add((origin + ht.hexagon.v4));
                    uvs.Add(uv2 + uvOffset);

                    triangles.Add(centerIndex);
                    triangles.Add(vertices.Count - 2);
                    triangles.Add(vertices.Count - 1);

                    // T4
                    vertices.Add(ht.hexagon.v5);
                    normals.Add((origin + ht.hexagon.v5));
                    uvs.Add(uv0 + uvOffset);

                    triangles.Add(centerIndex);
                    triangles.Add(vertices.Count - 2);
                    triangles.Add(vertices.Count - 1);

                    // T5
                    vertices.Add(ht.hexagon.v6);
                    normals.Add((origin + ht.hexagon.v6));
                    uvs.Add(uv2 + uvOffset);

                    triangles.Add(centerIndex);
                    triangles.Add(vertices.Count - 2);
                    triangles.Add(vertices.Count - 1);

                    // T6
                    triangles.Add(centerIndex);
                    triangles.Add(vertices.Count - 1);
                    triangles.Add(vertices.Count - 6);


                    // Side 1
                    triangles.Add(originIndex);
                    triangles.Add(vertices.Count - 1);
                    triangles.Add(vertices.Count - 2);

                    // Side 2
                    triangles.Add(originIndex);
                    triangles.Add(vertices.Count - 2);
                    triangles.Add(vertices.Count - 3);

                    // Side 3
                    triangles.Add(originIndex);
                    triangles.Add(vertices.Count - 3);
                    triangles.Add(vertices.Count - 4);

                    // Side 4
                    triangles.Add(originIndex);
                    triangles.Add(vertices.Count - 4);
                    triangles.Add(vertices.Count - 5);

                    // Side 5
                    triangles.Add(originIndex);
                    triangles.Add(vertices.Count - 5);
                    triangles.Add(vertices.Count - 6);

                    // Side 6
                    triangles.Add(originIndex);
                    triangles.Add(vertices.Count - 6);
                    triangles.Add(vertices.Count - 1);
                }
            }
        }
        //Debug.Log(uv1);
        //Debug.Log(uv2);
        //Debug.Log(uv0);
        //LabelCenters(sphere.finalTris);
        //LabelNeighbors(sphere);



        //GameObject centerMarker = (GameObject)GameObject.Instantiate(centerMarkerPrefab, tri.center, Quaternion.identity);
        Mesh m = new Mesh();

        m.vertices  = vertices.ToArray();
        m.triangles = triangles.ToArray();
        m.normals   = normals.ToArray();
        m.uv        = uvs.ToArray();

        myCollider.sharedMesh = m;
        myFilter.sharedMesh   = m;

        return(output);
    }
Ejemplo n.º 11
0
 public void setImageCoord(IntCoord intCoord)
 {
     ImageBox_setImageCoord(WidgetPtr, ref intCoord);
 }
Ejemplo n.º 12
0
 static void container_RequestDragWidgetInfo(DDContainer _sender, ref Widget _item, ref IntCoord _dimension)
 {
     mWidget.Visible = true;
     _item = mWidget;
     _dimension = new IntCoord(0, 0, 20, 20);
 }
Ejemplo n.º 13
0
 public void setImageInfo(String texture, IntCoord coord, IntSize2 tile)
 {
     ImageBox_setImageInfo(WidgetPtr, texture, ref coord, ref tile);
 }
Ejemplo n.º 14
0
 private static extern void ImageBox_setImageCoord(IntPtr staticImage, ref IntCoord coord);
Ejemplo n.º 15
0
 private static extern void ImageBox_setImageInfo(IntPtr staticImage, String _texture, ref IntCoord _coord, ref IntSize2 _tile);
Ejemplo n.º 16
0
Archivo: Hex.cs Proyecto: beardhero/HEX
 public static Vector3 TileOrigin(IntCoord tileCoordinate)
 {
     return new Vector3(
           (tileCoordinate.x * width) + ((tileCoordinate.y % 2 == 1) ? halfWidth : 0),
           GameManager.currentZone.tiles[tileCoordinate.x,tileCoordinate.y].height,
           tileCoordinate.y * rowHeight);
 }
Ejemplo n.º 17
0
Archivo: Hex.cs Proyecto: beardhero/HEX
 public static Vector3 TileCenter(IntCoord tileCoordinate)
 {
     return TileOrigin(tileCoordinate) + new Vector3(halfWidth, 0, height/2);
 }
 /// <summary>
 /// Get chunk by it's coordinate
 /// Complexity = O(1)
 /// </summary>
 public Chunk GetChunk(IntCoord chunkCoord)
 {
     return(new Chunk(this, chunkCoord, new IntCoord(chunkCoord.x * (chunkSize - 1), chunkCoord.y * (chunkSize - 1))));
 }
Ejemplo n.º 19
0
 internal void setTextureInfo(string name, IntCoord coord)
 {
     thumbnailImage.setImageTexture(name);
     thumbnailImage.setImageCoord(coord);
 }