Also got client-server handshake working. Multiple clients can connect and control their own boat. The client's boat has a larger black triangle drawn around it. Probably needs tidying up. Added isClientBoat boolean to VisualiserBoat. WindGenerator is now an interface, implemented by ConstantWindGenerator (useful for testing) and RandomWindGenerator. Added ConstantWindGeneratorTest. RandomWindGenerator was formerly WindGenerator. The WindGenerator is passed in to MockRace. CommandFactory throws a CommandConstructionException if it cannot create a command. MessageSerialiser and MessageDeserialiser correctly terminate on error. Readded VisualiserInput's switch statement in the main loop, pending a refactor. Removed the sleep statement from LobbyController - it was blocking javaFX thread. Lobby.fxml: moved buttons and text input into grid panes, so they don't break when you resize screen. Added some test object creation functions in several test classes (MockRaceTest.createMockRace(), BoatXMLReaderTest.createBoatDataSource(), etc...). #story[1095]
30 lines
627 B
Java
30 lines
627 B
Java
package mock.model;
|
|
|
|
import shared.model.Wind;
|
|
|
|
|
|
/**
|
|
* Interface for wind generators. It allows for generating a baseline wind, and subsequent winds.
|
|
*/
|
|
public interface WindGenerator {
|
|
|
|
|
|
|
|
/**
|
|
* Generates a wind object using the baseline wind speed and bearing.
|
|
* @return Baseline wind object.
|
|
*/
|
|
Wind generateBaselineWind();
|
|
|
|
|
|
|
|
/**
|
|
* Generates the next Wind object, according to the implementation of the wind generator.
|
|
* @param currentWind The current wind to change. This is not modified.
|
|
* @return Generated wind object.
|
|
*/
|
|
Wind generateNextWind(Wind currentWind);
|
|
|
|
|
|
}
|