public void CreateBrush(BrushType type) { if (PEBuildingMan.Self == null) { return; } m_CurBrushType = type; if (type == BrushType.bt_null) { m_CurBrush = BuildingMan.CreateBrush(BuildingMan.EBrushType.None); } else if (type == BrushType.bt_box) { m_CurBrush = BuildingMan.CreateBrush(BuildingMan.EBrushType.Box); m_CurBrush.mode = boxMode; } else if (type == BrushType.bt_inclined) { m_CurBrush = BuildingMan.CreateBrush(BuildingMan.EBrushType.B45Diagonal); BSB45DiagonalBrush bd = m_CurBrush as BSB45DiagonalBrush; if (bd != null) { bd.m_Rot = diagonalRot; } } else if (type == BrushType.bt_point) { m_CurBrush = BuildingMan.CreateBrush(BuildingMan.EBrushType.Point); m_CurBrush.mode = pointMode; } else if (type == BrushType.bt_selectBlock) { PEBuildingMan.Self.selectVoxel = false; m_CurBrush = BuildingMan.CreateBrush(BuildingMan.EBrushType.Select); } else if (type == BrushType.bt_selectVoxel) { PEBuildingMan.Self.selectVoxel = true; m_CurBrush = BuildingMan.CreateBrush(BuildingMan.EBrushType.Select); } else if (type == BrushType.bt_selectInclined) { m_CurBrush = BuildingMan.CreateBrush(BuildingMan.EBrushType.None); } else if (type == BrushType.bt_selectAll) { PEBuildingMan.Self.selectVoxel = false; m_CurBrush = BuildingMan.CreateBrush(BuildingMan.EBrushType.IsoSelectBrush); } else if (type == BrushType.bt_iso) { m_CurBrush = BuildingMan.CreateBrush(BuildingMan.EBrushType.Iso); } }
void OnCreateBrush(BSBrush brush, BuildingMan.EBrushType type) { // if (type == BuildingMan.EBrushType.Select) // { // _updatePattern = false; // // Select mode for voxels // if (selectVoxel) // _manipulator.pattern = BSPattern.DefaultV1; // // Select mode for block // else // _manipulator.pattern = BSPattern.DefaultB1; // } // else if (type == BuildingMan.EBrushType.Iso) // { // _updatePattern = false; // // _manipulator.pattern = BSPattern.DefaultB1; // } // else // { // _updatePattern = true; // } }
/// <summary> /// Creates the specific brush. /// </summary> public static BSBrush CreateBrush(EBrushType type) { if (Self == null) { Debug.LogError("Building manipulator"); return(null); } if (type == Self.m_BrushType) { return(Self.m_ActiveBrush); } if (Self.m_ActiveBrush != null) { Destroy(Self.m_ActiveBrush.gameObject); } BSBrush brush = null; switch (type) { case EBrushType.Point: brush = BSBrush.Create <BSPointBrush>(Self.brushPrefabs.pointBrush, Self.brushGroup.transform); break; case EBrushType.Box: brush = BSBrush.Create <BSBoxBrush>(Self.brushPrefabs.boxBrush, Self.brushGroup.transform); break; case EBrushType.Select: brush = BSBrush.Create <BSMiscBrush>(Self.brushPrefabs.SelectBrush, Self.brushGroup.transform); break; case EBrushType.Iso: brush = BSBrush.Create <BSIsoBrush>(Self.brushPrefabs.IsoBrush, Self.brushGroup.transform); break; case EBrushType.B45Diagonal: brush = BSBrush.Create <BSB45DiagonalBrush>(Self.brushPrefabs.diagonalBrush, Self.brushGroup.transform); break; case EBrushType.IsoSelectBrush: brush = BSBrush.Create <BSIsoSelectBrush>(Self.brushPrefabs.IsoSelectBrush, Self.brushGroup.transform); break; default: break; } Self.m_BrushType = type; if (brush == null) { return(null); } Self.m_ActiveBrush = brush; brush.pattern = Self.pattern; brush.dataSource = Self.m_ActiveData; Self.voxelIndicator.minVol = brush.minvol; if (Self.onCreateBrush != null) { Self.onCreateBrush(brush, type); } return(brush); }