mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 14:28:43 +00:00
Packets are sent out when collision happens and receiver is able to interpret and display as visual alert. Updated visual alert to looks better.
- Created yacht event code message to be sent out as packet. - Added observers to main server thread on yacht so when collision detected, main server thread will send out yacht event message to all server to client threads. - Updated collision visual alert using circle and animation timer. #story[1117]
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
package seng302.gameServer;
|
||||
|
||||
import com.sun.corba.se.spi.activation.Server;
|
||||
import java.io.IOException;
|
||||
import java.net.ServerSocket;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Observable;
|
||||
import java.util.Observer;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
import seng302.model.GeoPoint;
|
||||
@@ -18,7 +20,8 @@ import seng302.visualiser.GameClient;
|
||||
* A class describing the overall server, which creates and collects server threads for each client
|
||||
* Created by wmu16 on 13/07/17.
|
||||
*/
|
||||
public class MainServerThread extends Observable implements Runnable, ClientConnectionDelegate {
|
||||
public class MainServerThread extends Observable implements Runnable, ClientConnectionDelegate,
|
||||
Observer {
|
||||
|
||||
private static final int PORT = 4942;
|
||||
private static final Integer CLIENT_UPDATES_PER_SECOND = 10;
|
||||
@@ -112,7 +115,7 @@ public class MainServerThread extends Observable implements Runnable, ClientConn
|
||||
serverToClientThreads.add(serverToClientThread);
|
||||
this.addObserver(serverToClientThread);
|
||||
setChanged();
|
||||
notifyObservers();
|
||||
notifyObservers("send setup message");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -136,11 +139,12 @@ public class MainServerThread extends Observable implements Runnable, ClientConn
|
||||
}
|
||||
}
|
||||
setChanged();
|
||||
notifyObservers();
|
||||
notifyObservers("send setup message");
|
||||
}
|
||||
|
||||
public void startGame() {
|
||||
initialiseBoatPositions();
|
||||
setupYachtObserver();
|
||||
|
||||
Timer t = new Timer();
|
||||
|
||||
@@ -210,4 +214,17 @@ public class MainServerThread extends Observable implements Runnable, ClientConn
|
||||
boatIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(Observable o, Object arg) {
|
||||
for (ServerToClientThread serverToClientThread : serverToClientThreads) {
|
||||
serverToClientThread.sendCollisionMessage((Integer) arg);
|
||||
}
|
||||
}
|
||||
|
||||
private void setupYachtObserver() {
|
||||
for (ServerToClientThread serverToClientThread : serverToClientThreads) {
|
||||
serverToClientThread.getYacht().addObserver(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user