public VoxelObject SpawnAsteroid(Swordfish.Position _position) { VoxelComponent component = Instantiate(voxelObjectPrefab, _position.toVector3(), Quaternion.identity).GetComponent <VoxelComponent>(); component.setName("asteroid" + voxelMaster.voxelObjects.Count); component.setSize(4); component.setStatic(true); component.Initialize(VoxelObjectType.ASTEROID); return(component.voxelObject); }
public VoxelObject SpawnVoxelObject(Swordfish.Position _position) { VoxelComponent component = Instantiate(voxelObjectPrefab, _position.toVector3(), Quaternion.identity).GetComponent <VoxelComponent>(); component.setName("voxelObject" + voxelMaster.voxelObjects.Count); component.setSize(2); component.setStatic(false); component.Initialize(VoxelObjectType.GENERIC); return(component.voxelObject); }
public Item DropItemNaturally(Swordfish.Position _position, Item _item, int _count = 1) { Vector3 offset = new Vector3(UnityEngine.Random.value - 0.5f, UnityEngine.Random.value - 0.5f, UnityEngine.Random.value - 0.5f) * 0.5f; GameObject temp = (GameObject)Instantiate(droppedItemPrefab, _position.toVector3() + offset, Quaternion.identity); DroppedItem dropped = temp.GetComponent <DroppedItem>(); Item item = _item.copy(); item.setAmount(_count); dropped.setItem(item); return(item); }
public Item DropItemNaturally(Swordfish.Position _position, ItemType _type, int _count = 1) { return(DropItemNaturally(_position, _type.toItem(), _count)); }
public Item DropItemNaturally(Swordfish.Position _position, Voxel _voxel, int _count = 1) { return(((BLOCKITEM)DropItemNaturally(_position, _voxel.toItem(), _count)).setVoxel(_voxel)); }
public void CreateVoxelThumbnails() { Voxel[] voxels = (Voxel[])Enum.GetValues(typeof(Voxel)); voxelThumbnails = new CachedImage[voxels.Length]; for (int i = 0; i < voxels.Length; i++) { Voxel voxel = voxels[i]; Block thisBlock = voxel.toBlock(); int width = 512, height = 512; Texture2D result = new Texture2D(width, height); Camera renderCamera = new GameObject().AddComponent <Camera>(); renderCamera.transform.position = new Vector3(-1, 1, -1); renderCamera.transform.LookAt(Vector3.zero); renderCamera.orthographic = true; renderCamera.orthographicSize = 1.0f; renderCamera.clearFlags = CameraClearFlags.SolidColor; renderCamera.backgroundColor = Color.green; // renderCamera.allowMSAA = false; RenderTexture temp = RenderTexture.active; RenderTexture renderTex = RenderTexture.GetTemporary(width, height, 32); RenderTexture.active = renderTex; renderCamera.targetTexture = renderTex; // GL.Clear(true, true, Color.green); Mesh mesh = ModelBuilder.GetVoxelMesh(voxel); Swordfish.Position offset = thisBlock.getViewOffset(); Graphics.DrawMesh(mesh, Matrix4x4.TRS(new Vector3(offset.x, offset.y, offset.z), Quaternion.identity, Vector3.one), thumbnailMaterials[0], 0, renderCamera); renderCamera.Render(); renderCamera.targetTexture = null; result = new Texture2D(width, height, TextureFormat.RGBA32, false); result.ReadPixels(new Rect(0, 0, width, height), 0, 0, false); result.Apply(false, false); RenderTexture.active = temp; RenderTexture.ReleaseTemporary(renderTex); Color clearColor = new Color(0, 0, 0, 0); for (int x = 0; x < width; x++) { for (int y = 0; y < width; y++) { if (result.GetPixel(x, y).g >= 0.7f && result.GetPixel(x, y).r <= 0.4f && result.GetPixel(x, y).b <= 0.4f) { clearColor = result.GetPixel(x, y); clearColor.a = 0.0f; result.SetPixel(x, y, clearColor); } } } result.Apply(false, false); result.filterMode = FilterMode.Point; voxelThumbnails[i] = new CachedImage(result, voxel.ToString()); Destroy(renderCamera.gameObject); } }