Exemplo n.º 1
0
        public static void putType(GeoWriter writer, bool l2j, byte type)
        {
            if (l2j)
            {
                writer.put(type);
            }
            else
            {
                switch (type)
                {
                case GeoEngine.GEO_BLOCK_TYPE_FLAT:
                    writer.putShort((short)0x0000);
                    break;

                case GeoEngine.GEO_BLOCK_TYPE_COMPLEX:
                    writer.putShort((short)0x0040);
                    break;

                case GeoEngine.GEO_BLOCK_TYPE_MULTILAYER:
                    writer.putShort((short)0x0080);      // TODO check this
                    break;

                default:
                    throw new ArgumentException("Unkown type: " + type);
                }
            }
        }
 public override void writeTo(GeoWriter writer, bool l2j)
 {
     GeoCell[] layers;
     GeoRegion.putType(writer, l2j, getType());
     for (int x = 0, y, z; x < GeoEngine.GEO_BLOCK_SHIFT; x++)
     {
         for (y = 0; y < GeoEngine.GEO_BLOCK_SHIFT; y++)
         {
             layers = _cells3D[x, y];
             if (l2j)
             {
                 writer.put((byte)layers.Length);
             }
             else
             {
                 writer.putShort((short)layers.Length);
             }
             //
             for (z = layers.Length; z-- > 0;)
             {
                 writer.putShort(layers[z].getHeightAndNSWE());
             }
         }
     }
 }
Exemplo n.º 3
0
 public override void writeTo(GeoWriter writer, bool l2j)
 {
     GeoRegion.putType(writer, l2j, getType());
     writer.putShort(_cells[0].getHeight());
     if (!l2j)
     {
         writer.putShort(_cells[0].getHeight());
     }
 }
Exemplo n.º 4
0
 public override void writeTo(GeoWriter writer, bool l2j)
 {
     GeoRegion.putType(writer, l2j, getType());
     for (int x = 0, y; x < GeoEngine.GEO_BLOCK_SHIFT; x++)
     {
         for (y = 0; y < GeoEngine.GEO_BLOCK_SHIFT; y++)
         {
             writer.putShort(_cells[indexOf(x, y)].getHeightAndNSWE());
         }
     }
 }
Exemplo n.º 5
0
        public void saveTo(Stream stream, bool l2j)   //, DialogSave observ) {
        {
            if (!l2j)
            {
                Util.writeByte(_regionX + 10, stream);
                Util.writeByte(_regionY + 10, stream);
                //
                // TODO put real data here
                Util.writeBytes(new byte[16], stream);
            }
            //
            GeoWriter writer = GeoStreamWriter.wrap(stream);

            for (int blockX = 0, blockY; blockX < GeoEngine.GEO_REGION_SIZE; blockX++)
            {
                for (blockY = 0; blockY < GeoEngine.GEO_REGION_SIZE; blockY++)
                {
                    _geoBlocks[blockX, blockY].writeTo(writer, l2j);
                    //observ.updateProgressRegion(blockX * GeoEngine.GEO_REGION_SIZE + blockY, "["+blockX+"-"+blockY+"]");
                }
            }
        }
Exemplo n.º 6
0
 public abstract void writeTo(GeoWriter writer, bool l2j);