public WallFixture GetWallFixtureAtLayer(WallFixtureLayers layer) { switch (layer) { case WallFixtureLayers.HighWallNorth: return(wallFixtureDefinition.highWallNorth); case WallFixtureLayers.HighWallEast: return(wallFixtureDefinition.highWallEast); case WallFixtureLayers.HighWallSouth: return(wallFixtureDefinition.highWallSouth); case WallFixtureLayers.HighWallWest: return(wallFixtureDefinition.highWallWest); case WallFixtureLayers.LowWallNorth: return(wallFixtureDefinition.lowWallNorth); case WallFixtureLayers.LowWallEast: return(wallFixtureDefinition.lowWallEast); case WallFixtureLayers.LowWallSouth: return(wallFixtureDefinition.lowWallSouth); case WallFixtureLayers.LowWallWest: return(wallFixtureDefinition.lowWallWest); } return(null); }
private void Start() { lightItem = lightItemPrefab.GetComponent <Item>(); // Set fixture related variables string layerString = name.Split('_')[2]; switch (layerString) { case "highwalleast": layer = WallFixtureLayers.HighWallEast; break; case "highwallnorth": layer = WallFixtureLayers.HighWallNorth; break; case "highwallsouth": layer = WallFixtureLayers.HighWallSouth; break; case "highwallwest": layer = WallFixtureLayers.HighWallWest; break; case "lowwalleast": layer = WallFixtureLayers.LowWallEast; break; case "lowwallnorth": layer = WallFixtureLayers.LowWallNorth; break; case "lowwallsouth": layer = WallFixtureLayers.LowWallSouth; break; case "lowwallwest": layer = WallFixtureLayers.LowWallWest; break; default: Debug.LogWarning("Light fixture at tile " + transform.parent.name + " has unknown wall fixture layer. Defaulting to HighWallNorth"); layer = WallFixtureLayers.HighWallNorth; break; } // Make sure default state is the actual state of the object normalLight.SetActive(lightInstalled && !lightBroken); brokenLight.SetActive(lightInstalled && lightBroken); }
public void SetWallFixtureAtLayer(WallFixture fixture, WallFixtureLayers layer) { switch (layer) { case WallFixtureLayers.HighWallNorth: wallFixtureDefinition.highWallNorth = (HighWallFixture)fixture; wallFixtureDefinition.highWallNorth?.SetOrientation(WallFixture.Orientation.North); break; case WallFixtureLayers.HighWallEast: wallFixtureDefinition.highWallEast = (HighWallFixture)fixture; wallFixtureDefinition.highWallEast?.SetOrientation(WallFixture.Orientation.East); break; case WallFixtureLayers.HighWallSouth: wallFixtureDefinition.highWallSouth = (HighWallFixture)fixture; wallFixtureDefinition.highWallSouth?.SetOrientation(WallFixture.Orientation.South); break; case WallFixtureLayers.HighWallWest: wallFixtureDefinition.highWallWest = (HighWallFixture)fixture; wallFixtureDefinition.highWallWest?.SetOrientation(WallFixture.Orientation.West); break; case WallFixtureLayers.LowWallNorth: wallFixtureDefinition.lowWallNorth = (LowWallFixture)fixture; wallFixtureDefinition.lowWallNorth?.SetOrientation(WallFixture.Orientation.North); break; case WallFixtureLayers.LowWallEast: wallFixtureDefinition.lowWallEast = (LowWallFixture)fixture; wallFixtureDefinition.lowWallEast?.SetOrientation(WallFixture.Orientation.East); break; case WallFixtureLayers.LowWallSouth: wallFixtureDefinition.lowWallSouth = (LowWallFixture)fixture; wallFixtureDefinition.lowWallSouth?.SetOrientation(WallFixture.Orientation.South); break; case WallFixtureLayers.LowWallWest: wallFixtureDefinition.lowWallWest = (LowWallFixture)fixture; wallFixtureDefinition.lowWallWest?.SetOrientation(WallFixture.Orientation.West); break; } }
public void SetWallFixtureAtLayer(WallFixture fixture, WallFixtureLayers layer) { switch (layer) { case WallFixtureLayers.HighWallNorth: wallFixtureDefinition.highWallNorth = (HighWallFixture)fixture; break; case WallFixtureLayers.HighWallEast: wallFixtureDefinition.highWallEast = (HighWallFixture)fixture; break; case WallFixtureLayers.HighWallSouth: wallFixtureDefinition.highWallSouth = (HighWallFixture)fixture; break; case WallFixtureLayers.HighWallWest: wallFixtureDefinition.highWallWest = (HighWallFixture)fixture; break; case WallFixtureLayers.LowWallNorth: wallFixtureDefinition.lowWallNorth = (LowWallFixture)fixture; break; case WallFixtureLayers.LowWallEast: wallFixtureDefinition.lowWallEast = (LowWallFixture)fixture; break; case WallFixtureLayers.LowWallSouth: wallFixtureDefinition.lowWallSouth = (LowWallFixture)fixture; break; case WallFixtureLayers.LowWallWest: wallFixtureDefinition.lowWallWest = (LowWallFixture)fixture; break; } }
public override void CreateInteractions(IInteractionTarget[] targets, List <InteractionEntry> interactions) { base.CreateInteractions(targets, interactions); if ((IGameObjectProvider)targets[0] != null) { TileObject tileReference = ((IGameObjectProvider)targets[0]).GameObject.GetComponentInParent <TileObject>(); int direction = tileReference.GetLayerDirectionByPlayerPosition(transform.position); switch (direction) { case 1: if (highWallFixture) { layer = WallFixtureLayers.HighWallNorth; } else { layer = WallFixtureLayers.LowWallNorth; } break; case 2: if (highWallFixture) { layer = WallFixtureLayers.HighWallSouth; } else { layer = WallFixtureLayers.LowWallSouth; } break; case 3: if (highWallFixture) { layer = WallFixtureLayers.HighWallEast; } else { layer = WallFixtureLayers.LowWallEast; } break; case 4: if (highWallFixture) { layer = WallFixtureLayers.HighWallWest; } else { layer = WallFixtureLayers.LowWallWest; } break; default: break; } if (direction != 0 && tileReference.Tile.turf.name.Substring(0, 4).ToLower() == "wall") { interactions.Insert(0, new InteractionEntry(targets[0], new FixtureConstructionInteraction { icon = icon, Delay = 0.5f, LoadingBarPrefab = loadingBarPrefab, ObstacleMask = obstacleMask, BuildDimensions = Vector3.zero, RangeCheck = true, Name = "Construct" + Name, Fixture = fixture, Overwrite = false, WallLayer = layer })); } } }