Beispiel #1
0
    override public void SetBasement(Plane b, PixelPosByte pos)
    {
        if (b == null)
        {
            return;
        }
        basement    = b;
        surfaceRect = new SurfaceRect(pos.x, pos.y, surfaceRect.size);
        if (spriter == null && modelHolder == null)
        {
            SetModel();
        }
        b.AddStructure(this);

        if (!typeRegistered)
        {
            GameMaster.realMaster.mainChunk.InitializeNature().RegisterNewLifeform(type);
            typeRegistered = true;
        }

        if (!subscribedToVisibilityEvent)
        {
            basement.visibilityChangedEvent += this.SetVisibility;
            subscribedToVisibilityEvent      = true;
            oaksCount++;
        }
    }
Beispiel #2
0
 override public void SetBasement(Plane b, PixelPosByte pos)
 {
     if (b == null)
     {
         return;
     }
     basement    = b;
     surfaceRect = new SurfaceRect(pos.x, pos.y, 1);
     if (model == null)
     {
         SetModel();
     }
     b.AddStructure(this);
 }
 override public void SetBasement(Plane b, PixelPosByte pos)
 {
     if (b == null)
     {
         return;
     }
     //#setStructureData
     basement    = b;
     surfaceRect = new SurfaceRect(pos.x, pos.y, surfaceRect.size);
     if (transform.childCount == 0)
     {
         SetModel();
     }
     b.AddStructure(this);
 }
Beispiel #4
0
 override public void SetBasement(Plane b, PixelPosByte pos)
 {
     if (b == null)
     {
         return;
     }
     //#setStructureData
     if (lodComponent != null && basement != null)
     {
         lodComponent.ChangeBasement(b);
     }
     basement    = b;
     surfaceRect = new SurfaceRect(pos.x, pos.y, surfaceRect.size);
     b.AddStructure(this);
     SetModel();
 }
    override public void SetBasement(Plane p, PixelPosByte pos)
    {
        if (p == null)
        {
            return;
        }
        //
        basement = p;
        if (transform.childCount == 0)
        {
            var fi = basement.faceIndex;
            if (fi == Block.SURFACE_FACE_INDEX || fi == Block.UP_FACE_INDEX || fi == Block.CEILING_FACE_INDEX || fi == Block.DOWN_FACE_INDEX)
            {
                model       = Instantiate(Resources.Load <GameObject>("Structures/Column"));
                surfaceRect = new SurfaceRect(0, 0, 4);
                surfaceRect = new SurfaceRect((byte)(PlaneExtension.INNER_RESOLUTION / 2 - surfaceRect.size / 2), (byte)(PlaneExtension.INNER_RESOLUTION / 2 - surfaceRect.size / 2), surfaceRect.size);
            }
            else
            {
                model = Instantiate(Resources.Load <GameObject>("Structures/ColumnEdge"));
                switch (fi)
                {
                case Block.FWD_FACE_INDEX: model.transform.rotation = Quaternion.Euler(0f, 180f, 0f); break;

                case Block.RIGHT_FACE_INDEX: model.transform.rotation = Quaternion.Euler(0f, -90f, 0f); break;

                case Block.LEFT_FACE_INDEX: model.transform.rotation = Quaternion.Euler(0f, 90f, 0f); break;

                case Block.BACK_FACE_INDEX: model.transform.rotation = Quaternion.Euler(Vector3.zero); break;
                }
                surfaceRect = SurfaceRect.full;
            }
            model.transform.parent        = transform;
            model.transform.localPosition = Vector3.zero;
            if (!PoolMaster.useDefaultMaterials)
            {
                PoolMaster.ReplaceMaterials(model);
            }
        }
        placeInCenter = true;
        basement.AddStructure(this);
        //
        if (!GameMaster.loading)
        {
            IPlanableSupportClass.AddBlockRepresentation(this, basement, ref myBlock, true);
        }
    }
Beispiel #6
0
 override public void SetBasement(Plane b, PixelPosByte pos)
 {
     if (b == null)
     {
         return;
     }
     basement    = b;
     surfaceRect = new SurfaceRect(pos.x, pos.y, surfaceRect.size);
     if (spriter == null)
     {
         SetModel();
     }
     b.AddStructure(this);
     if (!addedToClassList)
     {
         oaks.Add(this);
         addedToClassList = true;
         if (!typeRegistered)
         {
             GameMaster.realMaster.mainChunk.GetNature().RegisterNewLifeform(type);
             typeRegistered = true;
         }
     }
 }
 override public void SetBasement(Plane b, PixelPosByte pos)
 {
     if (b == null)
     {
         return;
     }
     basement    = b;
     surfaceRect = new SurfaceRect(pos.x, pos.y, surfaceRect.size);
     if (!GameMaster.loading)
     {
         float f = Random.value;
         if (f > 0.5f)
         {
             if (f > 0.75f)
             {
                 modelRotation = 6;
             }
             else
             {
                 modelRotation = 4;
             }
         }
         else
         {
             if (f < 0.25f)
             {
                 modelRotation = 2;
             }
         }
     }
     if (transform.childCount == 0)
     {
         SetModel();
     }
     basement.AddStructure(this);
 }