示例#1
0
        //---------------------------------------------------------------------------

        #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());
            }
        }
示例#2
0
        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);
        }