private static void UpdatePos(SimpleCube simCubeInstance) { int currPosX = simCubeInstance.GetPosX; int currPosY = simCubeInstance.GetPosY; SimpleCube[] arrConj = simCubeInstance.GetConj; for (int i = 0; i < 4; i++) { if (arrConj[i] != null) { switch (i) { case 0: arrConj[0].SetPos(currPosX - 1, currPosY); break; case 1: arrConj[1].SetPos(currPosX, currPosY - 1); break; case 2: arrConj[2].SetPos(currPosX + 1, currPosY); break; case 3: arrConj[3].SetPos(currPosX, currPosY + 1); break; } UpdatePos(arrConj[i]); } } }
internal void Apply(CelestialBody celestialBody, Transform scaledCelestialTransform, float radius) { Remove(); this.celestialBody = celestialBody; this.scaledCelestialTransform = scaledCelestialTransform; SimpleCube hp = new SimpleCube(2000, ref AtmosphereMaterial, AtmosphereShader); AtmosphereMesh = hp.GameObject; atmosphereMaterial.Scale = 500f / (float)celestialBody.Radius; this.radius = radius; if (celestialBody.ocean) { atmosphereMaterial.OceanRadius = (float)celestialBody.Radius; } else { atmosphereMaterial.OceanRadius = 0; } atmosphereMaterial.SphereRadius = (float)celestialBody.Radius; Scaled = false; }
public void Render(SimpleCube sc) { this.Left = sc.GetPosX * BoxWidth; this.Top = sc.GetPosY * BoxHeight + FieldOffset; if (IsShowed) return; GameBoardstandard.Controls.Add(this); IsShowed = true; }
public void Render(SimpleCube sc) { this.Left = sc.GetPosX * BoxWidth; this.Top = sc.GetPosY * BoxHeight + FieldOffset; if (IsShowed) { return; } GameBoardstandard.Controls.Add(this); IsShowed = true; }
protected void FindCentralCube() { int i = 0; if (Cubes != null) { while (!Cubes[i++].IsCentral) { } } CentralCube = Cubes[--i]; }
public static SimpleCube[] GetPartDefinition(Definition name) { //initializetion probl ** Graph SimpleCube[] tetraPart = new SimpleCube[4]; for (int i = 1; i < 4; i++) { tetraPart[i] = new SimpleCube(); } tetraPart[0] = new SimpleCube(0, 0); switch (name) { case Definition.O_Detail: tetraPart[0].SetConj(null, null, tetraPart[1]); tetraPart[1].SetConj(null, null, null, tetraPart[2]); tetraPart[2].SetConj(tetraPart[3]); break; case Definition.I_Detail: tetraPart[0].SetConj(tetraPart[1], null, tetraPart[2]); tetraPart[2].SetConj(null, null, tetraPart[3]); break; case Definition.T_Detail: tetraPart[0].SetConj(tetraPart[1], tetraPart[2], tetraPart[3]); break; case Definition.J_Detail: tetraPart[0].SetConj(tetraPart[1], null, tetraPart[2]); tetraPart[1].SetConj(null, tetraPart[3]); break; case Definition.L_Detail: tetraPart[0].SetConj(tetraPart[1], null, tetraPart[2]); tetraPart[2].SetConj(null, tetraPart[3]); break; case Definition.S_Detail: tetraPart[0].SetConj(tetraPart[1], tetraPart[2]); tetraPart[2].SetConj(null, null, tetraPart[3]); break; case Definition.Z_Detail: tetraPart[0].SetConj(null, tetraPart[1], tetraPart[2]); tetraPart[1].SetConj(tetraPart[3]); break; default: return(null); } return(tetraPart); }
public static SimpleCube[] GetPartDefinition(Definition name) { //initializetion probl ** Graph SimpleCube[] tetraPart = new SimpleCube[4]; for (int i = 1; i < 4; i++) { tetraPart[i] = new SimpleCube(); } tetraPart[0] = new SimpleCube(0, 0); switch (name) { case Definition.ODetail: tetraPart[0].SetConj(null, null, tetraPart[1]); tetraPart[1].SetConj(null, null, null, tetraPart[2]); tetraPart[2].SetConj(tetraPart[3]); break; case Definition.Detail: tetraPart[0].SetConj(tetraPart[1], null, tetraPart[2]); tetraPart[2].SetConj(null, null, tetraPart[3]); break; case Definition.T_Detail: tetraPart[0].SetConj(tetraPart[1], tetraPart[2], tetraPart[3]); break; case Definition.JDetail: tetraPart[0].SetConj(tetraPart[1], null, tetraPart[2]); tetraPart[1].SetConj(null, tetraPart[3]); break; case Definition.LDetail: tetraPart[0].SetConj(tetraPart[1], null, tetraPart[2]); tetraPart[2].SetConj(null, tetraPart[3]); break; case Definition.SDetail: tetraPart[0].SetConj(tetraPart[1], tetraPart[2]); tetraPart[2].SetConj(null, null, tetraPart[3]); break; case Definition.ZDetail: tetraPart[0].SetConj(null, tetraPart[1], tetraPart[2]); tetraPart[1].SetConj(tetraPart[3]); break; default: return null; } return tetraPart; }
public ITetrisable Create(SimpleCube sc) { this.Render(sc); return(this); }
public void Sync(SimpleCube sc) { Render(sc); }
private static void UpdatePos(SimpleCube SimCubeInstance) { int currPosX = SimCubeInstance.getPosX; int currPosY = SimCubeInstance.getPosY; SimpleCube[] ArrConj =SimCubeInstance.getConj; for(int i = 0 ; i<4 ;i++) { if(ArrConj[i]!=null) { switch(i) { case 0: ArrConj[0].SetPos(currPosX - 1, currPosY); break; case 1: ArrConj[1].SetPos(currPosX, currPosY-1); break; case 2: ArrConj[2].SetPos(currPosX + 1, currPosY); break; case 3: ArrConj[3].SetPos(currPosX, currPosY + 1); break; } UpdatePos(ArrConj[i]); } } }
public static void Translate(GameObject cube, SimpleCube p) { cube.transform.position = new Vector3(-CubeSize / 2 + p.GetPosX * CubeSize, 0, -p.GetPosY * CubeSize); }
public ITetrisable Create(SimpleCube sc) { this.Render(sc); return this; }
public SimpleCubeUnity(SimpleCube mainCube, GameObject cube) { this.mainCube = mainCube; this.Cube = cube; }
internal void Apply(string body, TerrainMaterial terrainMaterial, OceanMaterial oceanMaterial) { celestialBody = Tools.GetCelestialBody(body); PQS pqs = null; if (celestialBody != null && celestialBody.pqsController != null) { pqs = celestialBody.pqsController; pqsSurfaceMaterial = GetPQSSurfaceMaterial(pqs); } else { pqs = PQSManagerClass.GetPQS(body); } Transform transform = Tools.GetScaledTransform(body); if (pqs != null) { this.sphere = pqs; this.transform.parent = pqs.transform; this.requirements = PQS.ModiferRequirements.Default; this.modEnabled = true; this.order += 10; this.transform.localPosition = Vector3.zero; this.transform.localRotation = Quaternion.identity; this.transform.localScale = Vector3.one; //Scaled space Renderer r = (Renderer)transform.GetComponent(typeof(Renderer)); if (r != null) { terrainMaterial.SaveTextures(r.material); originalPlanetShader = r.material.shader; TerrainManager.Log("planet shader: " + r.material.shader); r.sharedMaterial.shader = TerrainManager.PlanetShader; terrainMaterial.ApplyMaterialProperties(r.sharedMaterial); // terrainMaterial doesn't work anyway [1/3] if (pqs.ChildSpheres.Length != 0) { r.sharedMaterial.EnableKeyword("OCEAN_ON"); } else { r.sharedMaterial.DisableKeyword("OCEAN_ON"); } } // terrainMaterial doesn't work anyway [2/3] //terrainMaterial = null; //originalTerrainShader = null; terrainMaterial.SaveTextures(pqsSurfaceMaterial); originalTerrainShader = pqsSurfaceMaterial.shader; TerrainManager.Log("Terrain Shader Name: " + originalTerrainShader.name); String[] keywords = pqsSurfaceMaterial.shaderKeywords; pqsSurfaceMaterial.shader = TerrainManager.TerrainShader; // foreach (String keyword in keywords) // { // pqs.surfaceMaterial.EnableKeyword(keyword); // } terrainMaterial.ApplyMaterialProperties(pqsSurfaceMaterial); if (oceanMaterial != null && pqs.ChildSpheres.Length > 0) { PQS ocean = pqs.ChildSpheres[0]; OceanSurfaceMaterial = GetPQSSurfaceMaterial(ocean); pqsSurfaceMaterial.EnableKeyword("OCEAN_ON"); r.sharedMaterial.EnableKeyword("OCEAN_ON"); keywords = OceanSurfaceMaterial.shaderKeywords; originalOceanShader = OceanSurfaceMaterial.shader; TerrainManager.Log("Ocean Shader Name: " + originalOceanShader.name); OceanSurfaceMaterial.shader = TerrainManager.OceanShader; // foreach (String keyword in keywords) // { // OceanSurfaceMaterial.EnableKeyword(keyword); // } terrainMaterial.ApplyMaterialProperties(OceanSurfaceMaterial); oceanMaterial.ApplyMaterialProperties(OceanSurfaceMaterial); PQSLandControl landControl = (PQSLandControl)pqs.transform.GetComponentInChildren(typeof(PQSLandControl)); if (landControl != null) { PQSLandControl.LandClass[] landClasses = landControl.landClasses; if (landClasses != null) { PQSLandControl.LandClass lcBeach = landClasses.FirstOrDefault(lc => lc.landClassName == "BaseBeach"); PQSLandControl.LandClass lcOcean = landClasses.FirstOrDefault(lc => lc.landClassName == "Ocean Bottom"); if (lcBeach != null || lcOcean != null) { lcOcean.color = lcBeach.color; } } // PQS ocean = // sphere.ChildSpheres[0]; // GameObject go = new GameObject(); // FakeOceanPQS fakeOcean = go.AddComponent<FakeOceanPQS>(); // fakeOcean.Apply(ocean); } SimpleCube hp = new SimpleCube(2000, ref OceanBackingMaterial, TerrainManager.OceanBackingShader); OceanBacking = hp.GameObject; OceanBacking.transform.parent = FlightCamera.fetch.transform; OceanBacking.transform.localPosition = Vector3.zero; OceanBacking.transform.localScale = Vector3.one; OceanBacking.layer = (int)Tools.Layer.Local; OceanBackingMaterial.SetFloat("_OceanRadius", (float)celestialBody.Radius); terrainMaterial.ApplyMaterialProperties(OceanBackingMaterial); } else { pqsSurfaceMaterial.DisableKeyword("OCEAN_ON"); //r.sharedMaterial.DisableKeyword("OCEAN_ON"); // terrainMaterial doesn't work anyway [3/3] } PQSMod_CelestialBodyTransform cbt = (PQSMod_CelestialBodyTransform)pqs.transform.GetComponentInChildren(typeof(PQSMod_CelestialBodyTransform)); if (cbt != null) { pqsSurfaceMaterial.SetFloat("_MainTexHandoverDist", (float)(1f / cbt.deactivateAltitude)); if (oceanMaterial != null && pqs.ChildSpheres.Length > 0) { PQS ocean = pqs.ChildSpheres[0]; OceanSurfaceMaterial.SetFloat("_MainTexHandoverDist", (float)(1f / cbt.deactivateAltitude)); } pqsSurfaceMaterial.SetFloat("_OceanRadius", (float)celestialBody.Radius); } } this.OnSetup(); pqs.EnableSphere(); }
protected void findCentralCube() { int i = 0; if (cubes != null) while (!cubes[i++].isCentral) { } centralCube = cubes[--i]; }