public void BeginSpreadingTransition(GasCloud parentCloud, IntVec3 targetPosition) { interpolatedOffsetX.value = parentCloud.Position.x - targetPosition.x; interpolatedOffsetY.value = parentCloud.Position.z - targetPosition.z; interpolatedOffsetX.StartInterpolation(0, SpreadingAnimationDuration, InterpolationCurves.QuinticEaseOut); interpolatedOffsetY.StartInterpolation(0, SpreadingAnimationDuration, InterpolationCurves.QuinticEaseOut); }
private bool TileIsGasTraversible(IntVec3 pos, Map map, GasCloud sourceCloud) { if (!pos.InBounds(map)) { return(false); } var edifice = map.edificeGrid[pos]; var walkable = map.pathGrid.WalkableFast(pos); TraversibilityTest travTest = null; if (edifice != null) { TraversibleBuildings.TryGetValue(edifice.GetType(), out travTest); } return((walkable && travTest == null) || (travTest != null && travTest(edifice, sourceCloud))); }