1 package model; 2 3 import java.util.LinkedList; 4 import java.util.List; 5 import java.util.Scanner; 6 7 class SimpleMachine extends Machine { 8 final static int WATER_MAX = Integer.MAX_VALUE; 9 final static int COFFEE_MAX = 10; 10 11 private Ingredient hotwater, coffee; 12 private BasicDisplay display; 13 14 SimpleMachine() { 15 super("Dave's Less Famous Coffee Machine"); 16 17 } 18 19 void initialiseIngredients() { 20 hotwater = new Ingredient("Water", WATER_MAX, dispenser); 21 coffee = new Ingredient("Coffee", COFFEE_MAX, dispenser); 22 display = new BasicDisplay(); 23 24 coffee.onEmpty( s -> { display.setRed(); } ); 25 } 26 27 void populateMenu() { 28 menu.add(new Button(1, "Tea", b -> this.tea())); 29 menu.add(new Button(2, "Coffee", b -> this.coffee())); 30 menu.add(new TextItem("")); 31 menu.add(new Button(100, "Dispense", b -> this.dispense())); 32 } 33 34 void tea() { 35 display.setGreen(); 36 hotwater.use(); 37 } 38 39 void coffee() { 40 display.setYellow(); 41 coffee.use(); 42 } 43 44 45 void dispense() { 46 dispenser.dispense(); 47 display.unsetAll(); 48 } 49 50 public static void main(String[] args) { 51 SimpleMachine machine = new SimpleMachine(); 52 machine.run(); 53 } 54 }