protected override void WriteData(ESPWriter writer) { Layer0.WriteBinary(writer); Layer1.WriteBinary(writer); Layer2.WriteBinary(writer); Layer3.WriteBinary(writer); }
protected override void WriteDataXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; ele.TryPathTo("Layer0", true, out subEle); subEle.Value = Layer0.ToString(); ele.TryPathTo("Layer1", true, out subEle); subEle.Value = Layer1.ToString(); ele.TryPathTo("Layer2", true, out subEle); subEle.Value = Layer2.ToString(); ele.TryPathTo("Layer3", true, out subEle); subEle.Value = Layer3.ToString(); }
protected override void WriteDataXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; ele.TryPathTo("Layer0", true, out subEle); Layer0.WriteXML(subEle, master); ele.TryPathTo("Layer1", true, out subEle); Layer1.WriteXML(subEle, master); ele.TryPathTo("Layer2", true, out subEle); Layer2.WriteXML(subEle, master); ele.TryPathTo("Layer3", true, out subEle); Layer3.WriteXML(subEle, master); }
protected override void ReadData(ESPReader reader) { using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size))) using (ESPReader subReader = new ESPReader(stream, reader.Plugin)) { try { Layer0.ReadBinary(subReader); Layer1.ReadBinary(subReader); Layer2.ReadBinary(subReader); Layer3.ReadBinary(subReader); } catch { return; } } }
protected override void ReadDataXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; if (ele.TryPathTo("Layer0", false, out subEle)) { Layer0.ReadXML(subEle, master); } if (ele.TryPathTo("Layer1", false, out subEle)) { Layer1.ReadXML(subEle, master); } if (ele.TryPathTo("Layer2", false, out subEle)) { Layer2.ReadXML(subEle, master); } if (ele.TryPathTo("Layer3", false, out subEle)) { Layer3.ReadXML(subEle, master); } }
public T GetOrGen(ushort x, ushort y, ushort z) { var indx = (x & 12) >> 2 | (y & 12) | ((z & 12) << 2); return((layers[indx] ?? (layers[indx] = new Layer0())).GetOrGen(x, y, z)); }
public void Gen(ushort x, ushort y, ushort z) { var indx = (x & 12) >> 2 | (y & 12) | ((z & 12) << 2); (layers[indx] ?? (layers[indx] = new Layer0())).Gen(x, y, z); }
public override int GetHashCode() { return(Layer0.GetHashCode()); }
void createTile(Layer0[] arr, Texture2D block){ for (int i = 0; i < xLength; ++i) { for (int j = 0; j < yLength; ++j) { if (arr[xLength*yLength-1-(j*xLength+i)] == Layer0.Dirt) { int[] tileOrder = { 13, 10, 14, 8, -18, 6, 16, 4, 17}; for (int k = 0; k < 3; ++k) { for (int l = 0; l < 3; ++l) { setTilePixels(i, k, j, l, getTilePixels(18, tileOrder[k*3+l])); } } } else if (arr[xLength*yLength-1-(j*xLength+i)] == Layer0.Water) { for (int k = 0; k < 3; ++k) { for (int l = 0; l < 3; ++l) { setTilePixels(i, k, j, l, getTilePixels(18*3, 3+k*3+l)); } } } else { // Grass for (int k = 0; k < 3; ++k) { for (int l = 0; l < 3; ++l) { setTilePixels(i, k, j, l, getTilePixels(18, Random.Range (0, 3))); } } } } } }
public void GenerateBlock (int x, int y, int seed, int posX, int posY) { //curPosX = posX; //curPosY = posY; int newSeed = (seed + x + y) ^ (y); Random.seed = newSeed; if (blockArray [(x - posX) + 4, (y - posY) + 4] != null) { return; } block = new Texture2D (xLength * pixelRes * 3, yLength * pixelRes * 3); float xshift = 3 * xLength / 2 - 1f; float yshift = 3 * yLength / 2 - 1f; GameObject child; GameObject parent = GameObject.CreatePrimitive(PrimitiveType.Plane); parent.transform.position = new Vector3 ((float)(x*3*xLength), 0, (float)(y*3*yLength)); parent.transform.localScale = new Vector3 (.3f*xLength, 1, .3f*yLength); parent.name = "("+x+", "+y+")"; x *= 3*xLength; y *= 3*yLength; Layer0[] arr = new Layer0[xLength*yLength]; for (int i = 0; i < xLength; ++i) { for (int j = 0; j < yLength; ++j) { float curVal = Random.value; if(curVal<.3){ arr[i*xLength+j] = Layer0.Dirt; } else if(curVal<.5) { arr[i*xLength+j] = Layer0.Water; child = Instantiate (River, new Vector3 ((float)(i*3-xshift + x), 0.1f, (float)(j*3-yshift + y)), Quaternion.identity) as GameObject; child.transform.parent = parent.transform; } else { arr[i*xLength+j] = Layer0.Grass; curVal = Random.value; if(curVal<.25) { child = Instantiate (Tree, new Vector3 ((float)(i*3-xshift + x), 0.1f, (float)(j*3-yshift + y)), Quaternion.identity) as GameObject; child.transform.parent = parent.transform; } else if(curVal<.5){ child = Instantiate (Bush, new Vector3 ((float)(i*3-xshift + x), 0.1f, (float)(j*3-yshift + y)), Quaternion.identity) as GameObject; child.transform.parent = parent.transform; } } } } createTile(arr, block); block.Apply (); parent.renderer.material.mainTexture = block; x /= 3*xLength; y /= 3*yLength; blockArray [(x-posX + 4), (y-posY + 4)] = parent; //lastPosX = curPosX; //lastPosY = curPosY; }