/// <summary> /// /// </summary> /// <param name="baseLoc"></param> /// <param name="front"></param> /// <param name="side"></param> public void Destroy(Location baseLoc, Direction front, PlaceSide side) { HalfDividedVoxel v = WorldDefinition.World[baseLoc] as HalfDividedVoxel; if (v != null) { v.owner.remove(side); } }
/// <summary> /// /// /// </summary> /// <param name="baseLoc"></param> /// <param name="front"></param> /// <param name="side"></param> /// <returns></returns> public Structure Create(Location baseLoc, Direction front, PlaceSide side) { ContributionReference reffer = new ContributionReference(this, currentColor, currentHighlight, front, side); HalfDividedVoxel v = WorldDefinition.World[baseLoc] as HalfDividedVoxel; if (v == null) { return(new HVStructure(reffer, baseLoc)); } else { if (!v.owner.add(reffer)) { MessageBox.Show("Not enough space or no fit"); } return(v.owner); } }
/// <summary> /// /// </summary> /// <param name="baseLoc"></param> /// <returns></returns> public static bool CanBeBuilt(Location baseLoc) { Voxel v = WorldDefinition.World[baseLoc]; if (v != null) { HalfDividedVoxel hv = v as HalfDividedVoxel; if (hv != null) { return(hv.hasSpace); } else { return(false); } } else { return(true); } }