public void Spawn(Vector3 location, Compound compound, float amount) { int resolution = Settings.Instance.CloudResolution; // This spreads out the cloud spawn a bit clouds.AddCloud(compound, amount, location + new Vector3(0 + resolution, 0, 0)); clouds.AddCloud(compound, amount, location + new Vector3(0 - resolution, 0, 0)); clouds.AddCloud(compound, amount, location + new Vector3(0, 0, 0 + resolution)); clouds.AddCloud(compound, amount, location + new Vector3(0, 0, 0 - resolution)); clouds.AddCloud(compound, amount, location + new Vector3(0, 0, 0)); }
/// <summary> /// Ejects compounds from the microbes behind position, into the environment /// </summary> /// <remarks> /// <para> /// Note that the compounds ejected are created in this world /// and not taken from the microbe. This is purely for adding /// the compound to the cloud system at the right position. /// </para> /// </remarks> private void SpawnEjectedCompound(Compound compound, float amount) { var amountToEject = amount * Constants.MICROBE_VENT_COMPOUND_MULTIPLIER; if (amountToEject <= 0) { return; } cloudSystem.AddCloud(compound, amountToEject, CalculateNearbyWorldPosition()); }
private void VentCompound(Vector3 pos, Compound compound, float amount) { compoundClouds.AddCloud( compound, amount * Constants.CHUNK_VENT_COMPOUND_MULTIPLIER, pos); }