//--------------------------------------------------------------------------- #endregion //--------------------------------------------------------------------------- #region Private Member Functions //--------------------------------------------------------------------------- private static bool IsFaceVisible(OpenCog.Map.OCMap map, Vector3i nearPos, OpenCog.BlockSet.BaseBlockSet.OCCubeBlock.CubeFace face) { if (face == OCCubeBlock.CubeFace.Top) { OpenCog.Map.OCBlockData block = map.GetBlock(nearPos); return(block.IsEmpty() || !block.IsFluid()); } else { return(map.GetBlock(nearPos).IsEmpty()); } }
public static void Build(Vector3i localPos, Vector3i worldPos, OpenCog.Map.OCMap map, OpenCog.Builder.OCMeshBuilder mesh, bool onlyLight) { OpenCog.Map.OCBlockData block = map.GetBlock(worldPos); OCCubeBlock cube = (OCCubeBlock)block.block; OpenCog.Map.OCBlockDirection direction = block.GetDirection(); for (int i = 0; i < 6; i++) { OCCubeBlock.CubeFace face = faces[i]; Vector3i dir = directions[i]; Vector3i nearPos = worldPos + dir; if (IsFaceVisible(map, nearPos)) { if (!onlyLight) { BuildFace(face, cube, direction, localPos, mesh); } BuildFaceLight(face, map, worldPos, mesh); } } }
public OCObjectMapInfo(int chunkX, int chunkY, int chunkZ, int blockGlobalX, int blockGlobalY, int blockGlobalZ, OpenCog.Map.OCBlockData blockData) { string blockName = "BLOCK_" + blockData.GetHashCode(); _height = 1; _width = 1; _length = 1; _type = OCEmbodimentXMLTags.STRUCTURE_OBJECT_TYPE; _id = blockName; //blockData.ID.ToString(); _name = blockName; //this.Velocity = UnityEngine.Vector3.zero; this.position = new UnityEngine.Vector3(blockGlobalX, blockGlobalY, blockGlobalZ); _rotation = new OpenCog.Utility.Rotation(0, 0, 0); // Add block properties // AddTag ("class", "block", System.Type.GetType("System.String")); // AddTag ("visibility-status", "visible", System.Type.GetType("System.String")); // AddTag ("detector", "true", System.Type.GetType("System.Boolean")); AddProperty("class", "block", System.Type.GetType("System.String")); AddProperty("visibility-status", "visible", System.Type.GetType("System.String")); AddProperty("detector", "true", System.Type.GetType("System.Boolean")); if (blockGlobalX == 9 && blockGlobalY == 140 && blockGlobalZ == 10) { UnityEngine.Debug.Log("Break here plz..."); } try { string blockType = blockData.block.GetName(); if (blockType.ToLower() != "air") { string balls = "lol"; string lol = balls + "lol"; } //UnityEngine.Debug.Log ("BlockData.GetType = " + blockType); } catch (System.Exception ex) { } if (blockData.block == null) { // Report air // this.AddTag (OCEmbodimentXMLTags.MATERIAL_ATTRIBUTE, "0", System.Type.GetType("System.String")); this.AddProperty(OCEmbodimentXMLTags.MATERIAL_ATTRIBUTE, "0", System.Type.GetType("System.String")); } else { this.AddProperty(OCEmbodimentXMLTags.MATERIAL_ATTRIBUTE, blockData.block.GetName().ToLower(), System.Type.GetType("System.String")); // if (blockData.block.GetName().ToLower () == "air") // { //// this.AddTag (OCEmbodimentXMLTags.MATERIAL_ATTRIBUTE, "0", System.Type.GetType("System.String")); // this.AddProperty (OCEmbodimentXMLTags.MATERIAL_ATTRIBUTE, "0", System.Type.GetType("System.String")); // } // else // { //// this.AddTag (OCEmbodimentXMLTags.MATERIAL_ATTRIBUTE, "13", System.Type.GetType("System.String")); // this.AddProperty (OCEmbodimentXMLTags.MATERIAL_ATTRIBUTE, "13", System.Type.GetType("System.String")); // } } //mapinfo.AddProperty("color_name", "green", PropertyType.STRING); }