All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mmb.engine.chance.RandomChance Maven / Gradle / Ivy

Go to download

Dependency for the MultiMachineBuilder, a voxel game about building an industrial empire in a finite world. THIS RELEASE IS NOT PLAYABLE. To play the game, donwload from >ITCH.IO LINK HERE< or >GH releases link here<

There is a newer version: 0.6
Show newest version
/**
 * 
 */
package mmb.engine.chance;

import java.util.Set;

import org.ainslec.picocog.PicoWriter;

import mmb.engine.inv.io.InventoryWriter;
import mmb.engine.item.ItemEntry;
import mmb.engine.worlds.world.World;

/**
 * @author oskar
 *
 */
public class RandomChance implements Chance {
	
	public final double chance;
	public final Chance wrap;

	/**
	 * Creates a random chance object
	 * @param chance the chance
	 * @param wrap the item which may be rewarded
	 */
	public RandomChance(double chance, Chance wrap) {
		super();
		this.chance = chance;
		this.wrap = wrap;
	}

	@Override
	public boolean drop(InventoryWriter inv, World map, int x, int y) {
		if(Math.random() < chance) return wrap.drop(inv, map, x, y);
		return true;
	}

	@Override
	public void produceResults(InventoryWriter tgt, int amount) {
		if(Math.random() < chance) wrap.produceResults(tgt, amount);
	}

	@Override
	public void represent(PicoWriter out) {
		out.write((chance*100)+"% chance [");
		wrap.represent(out);
		out.write("]");
	}

	@Override
	public boolean contains(ItemEntry item) {
		return wrap.contains(item);
	}

	@Override
	public Set items() {
		return wrap.items();
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy