public override BlockDebrisParticleSystem CreateDebrisParticleSystem(SubsystemTerrain subsystemTerrain, Vector3 position, int value, float strength) { return(GetItem(ref value).CreateDebrisParticleSystem(subsystemTerrain, position, value, strength)); }
public override BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value) { return(m_collisionBoxes); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { int type = GetType(value); return(type < 3 ? Utils.Get(Names[type]): "Soild " + ((Materials)(type - 3)).ToStr() + " Block"); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) => DefaultDisplayName;
public BurntDebrisParticleSystem(SubsystemTerrain terrain, int x, int y, int z) : this(terrain, new Vector3((float)x + 0.5f, (float)y + 0.5f, (float)z + 0.5f)) { }
public ElectricConnectorType?GetConnectorType(SubsystemTerrain terrain, int value, int face, int connectorFace, int x, int y, int z) { return(ElectricConnectorType.Input); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { return(Names[Terrain.ExtractData(value)]); }
public override BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult) { return(GetPlacementValue(6, componentMiner, value, raycastResult)); }
public ElectricConnectorType?GetConnectorType(SubsystemTerrain terrain, int value, int face, int connectorFace, int x, int y, int z) { return(face == 4 || face == 5 ? (ElectricConnectorType?)ElectricConnectorType.Input : null); }
public void OnBlockRemoved(SubsystemTerrain terrain, int value, int newValue) { Level = -1; value = 0; Simulate(ref value); }
public override void OnBlockAdded(SubsystemTerrain subsystemTerrain, int value, int oldValue) { base.OnBlockAdded(subsystemTerrain, value, oldValue); Component.Powered = false; }
public void OnBlockAdded(SubsystemTerrain terrain, int value, int oldValue) { }
public void OnBlockRemoved(SubsystemTerrain terrain, int value, int newValue) { }
public override BoundingBox[] GetCustomInteractionBoxes(SubsystemTerrain terrain, int value) { return(GetItem(ref value).GetCustomInteractionBoxes(terrain, value)); }
public int Paint(SubsystemTerrain terrain, int value, int?color) { return(Terrain.MakeBlockValue(BlockIndex, 0, SetColor(Terrain.ExtractData(value), color))); }
public override BlockDebrisParticleSystem CreateDebrisParticleSystem(SubsystemTerrain subsystemTerrain, Vector3 position, int value, float strength) { Color color = BlockColorsMap.GrassColorsMap.Lookup(subsystemTerrain.Terrain, Terrain.ToCell(position.X), Terrain.ToCell(position.Y), Terrain.ToCell(position.Z)); return(new BlockDebrisParticleSystem(subsystemTerrain, position, strength, DestructionDebrisScale, color, GetFaceTextureSlot(4, value))); }
void UpdateCornerState(int value, int x, int y, int z, int step) { var resultType = default(int?); var neighbors = new bool[4]; var raisedNeighbors = new bool[4]; for (int i = 0; i < 4; i++) { for (int k = 0; k < 3; k++) { var p = m_pointsToUpdate[i, k]; int val = SubsystemTerrain.Terrain.GetCellValueFastChunkExists(x + p.X, y + p.Y, z + p.Z); if (Terrain.ExtractContents(val) == RailBlock.Index) { if (k == 1) { raisedNeighbors[i] = RailBlock.CanConnectTo(RailBlock.GetRailType(Terrain.ExtractData(val)), i); } else { neighbors[i] = RailBlock.CanConnectTo(RailBlock.GetRailType(Terrain.ExtractData(val)), i); } if (step > 0) { UpdateCornerState(val, x + p.X, y + p.Y, z + p.Z, step - 1); } break; } } } if (neighbors[0] && neighbors[3]) { resultType = 1; } else if (neighbors[0] && neighbors[1]) { resultType = 2; } else if (neighbors[1] && neighbors[2]) { resultType = 3; } else if (neighbors[2] && neighbors[3]) { resultType = 0; } else if (raisedNeighbors[2]) { resultType = 6; } else if (raisedNeighbors[0]) { resultType = 8; } else if (raisedNeighbors[3]) { resultType = 7; } else if (raisedNeighbors[1]) { resultType = 9; } else if (neighbors[0] || neighbors[2]) { resultType = 4; } else if (neighbors[1] || neighbors[3]) { resultType = 5; } if (resultType.HasValue) { SubsystemTerrain.ChangeCell(x, y, z, Terrain.MakeBlockValue(RailBlock.Index, 0, RailBlock.SetRailType(0, resultType.Value))); } }
public int Paint(SubsystemTerrain subsystemTerrain, int value, int?color) { int data = Terrain.ExtractData(value); return(Terrain.ReplaceData(value, SetColor(data, color))); }
public override BlockDebrisParticleSystem CreateDebrisParticleSystem(SubsystemTerrain subsystemTerrain, Vector3 position, int value, float strength) { return(new BlockDebrisParticleSystem(subsystemTerrain, position, 0.75f * strength, DestructionDebrisScale, new Color(64, 64, 64), DefaultTextureSlot)); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { int?color = GetColor(Terrain.ExtractData(value)); return(SubsystemPalette.GetName(subsystemTerrain, color, LanguageControl.Get(fName, 1))); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { int data = Terrain.ExtractData(value); return(LanguageControl.GetBlock(fName + ":" + data, "DisplayName")); }
public override bool IsFaceTransparent(SubsystemTerrain subsystemTerrain, int face, int value) { int mountingFace = GetMountingFace(Terrain.ExtractData(value)); return(face != CellFace.OppositeFace(mountingFace)); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { int index = Terrain.ExtractData(value) >> 13 & 15; return(SubsystemPalette.GetName(subsystemTerrain, index == 0 ? default(int?) : index, GetType(value).ToString())); }
public override bool IsFaceTransparent(SubsystemTerrain subsystemTerrain, int face, int value) { return(false); }
public override BlockDebrisParticleSystem CreateDebrisParticleSystem(SubsystemTerrain subsystemTerrain, Vector3 position, int value, float strength) { return(new BlockDebrisParticleSystem(subsystemTerrain, position, strength, DestructionDebrisScale, Color.White, 2)); }
public override BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value) { int data = Terrain.ExtractData(value); return(m_collisionBoxes[GetVariant(data)]); }
public override bool IsFaceTransparent(SubsystemTerrain subsystemTerrain, int face, int value) => true;
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { int?color = GetColor(Terrain.ExtractData(value)); return(SubsystemPalette.GetName(subsystemTerrain, color, base.GetDisplayName(subsystemTerrain, value))); }
public override BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult) { return(new BlockPlacementData { Value = value, CellFace = raycastResult.CellFace }); }
public override void GetDropValues(SubsystemTerrain subsystemTerrain, int oldValue, int newValue, int toolLevel, List <BlockDropValue> dropValues, out bool showDebris) { GetItem(ref oldValue).GetDropValues(subsystemTerrain, oldValue, newValue, toolLevel, dropValues, out showDebris); }