Thread: [virtualcommons-svn] commit/foraging: alllee: merging save file fixes from default for limited visi
Status: Beta
Brought to you by:
alllee
From: Bitbucket <com...@bi...> - 2012-02-27 06:23:40
|
1 new commit in foraging: https://bitbucket.org/virtualcommons/foraging/changeset/9305b20c0d8b/ changeset: 9305b20c0d8b branch: stable user: alllee date: 2012-02-27 07:23:37 summary: merging save file fixes from default for limited vision condition affected #: 5 files diff -r 3a0ef9068485da2d5ad7d6a5cba1f736aa3bfb8a -r 9305b20c0d8b45612903fe086e961e20bf743220 ivy.xml --- a/ivy.xml +++ b/ivy.xml @@ -5,7 +5,7 @@ <ivy-module version="2.0"><info organisation="edu.asu.commons" module="foraging"/><dependencies> - <dependency org="edu.asu.commons" name="csidex" rev="0.4-SNAPSHOT" /> + <dependency org="edu.asu.commons" name="csidex" rev="0.5-SNAPSHOT" /><dependency org="net.java.dev.jogl" name="jogl" rev="1.1.1-rc6"/><dependency org="javax.media" name="jmf" rev="2.1.1e"/><dependency org="javax.jnlp" name="javaws" rev="1.6.0_30"/> diff -r 3a0ef9068485da2d5ad7d6a5cba1f736aa3bfb8a -r 9305b20c0d8b45612903fe086e961e20bf743220 pom.xml --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ <dependency><groupId>edu.asu.commons</groupId><artifactId>csidex</artifactId> - <version>0.4-SNAPSHOT</version> + <version>0.5-SNAPSHOT</version></dependency><dependency><groupId>net.java.dev.jogl</groupId> diff -r 3a0ef9068485da2d5ad7d6a5cba1f736aa3bfb8a -r 9305b20c0d8b45612903fe086e961e20bf743220 src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java --- a/src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java +++ b/src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java @@ -177,6 +177,10 @@ return getBooleanProperty("subjects-field-of-vision", false); } + /** + * FIXME: rename for consistency, getSubjectsFieldOfVisionRadius() + * @return + */ public int getViewSubjectsRadius() { if (isSubjectsFieldOfVisionEnabled()) { return getIntProperty("view-subjects-radius", 6); diff -r 3a0ef9068485da2d5ad7d6a5cba1f736aa3bfb8a -r 9305b20c0d8b45612903fe086e961e20bf743220 src/main/java/edu/asu/commons/foraging/data/AllDataProcessor.java --- a/src/main/java/edu/asu/commons/foraging/data/AllDataProcessor.java +++ b/src/main/java/edu/asu/commons/foraging/data/AllDataProcessor.java @@ -22,11 +22,12 @@ import edu.asu.commons.foraging.model.GroupDataModel; import edu.asu.commons.foraging.model.Resource; import edu.asu.commons.foraging.model.ServerDataModel; +import edu.asu.commons.foraging.ui.Circle; import edu.asu.commons.net.Identifier; import edu.asu.commons.util.Utils; /** - * $Id: AllDataProcessor.java 526 2010-08-06 01:25:27Z alllee $ + * $Id$ * * Serializes all data in the save file into a CSV string format, ordered by time. * @@ -44,24 +45,21 @@ @Override public void process(SavedRoundData savedRoundData, PrintWriter writer) { RoundConfiguration roundConfiguration = (RoundConfiguration) savedRoundData.getRoundParameters(); - if (roundConfiguration.is2dExperiment()) { - processData2d(savedRoundData, writer); - } - else { - processData3d(savedRoundData, writer); - } + processData(savedRoundData, writer); } - private void processData2d(SavedRoundData savedRoundData, PrintWriter writer) { - // RoundConfiguration roundConfiguration = (RoundConfiguration) savedRoundData.getRoundParameters(); + private void processData(SavedRoundData savedRoundData, PrintWriter writer) { + RoundConfiguration roundConfiguration = (RoundConfiguration) savedRoundData.getRoundParameters(); SortedSet<PersistableEvent> actions = savedRoundData.getActions(); - ServerDataModel model = (ServerDataModel) savedRoundData.getDataModel(); - Map<Identifier, ClientMovementTokenCount> clientMovementTokenCounts = ClientMovementTokenCount.createMap(model); -// List<GroupDataModel> groups = new ArrayList<GroupDataModel>(model.getGroups()); - Map<Identifier, ClientData> clientDataMap = model.getClientDataMap(); + ServerDataModel dataModel = (ServerDataModel) savedRoundData.getDataModel(); + Map<Identifier, ClientMovementTokenCount> clientMovementTokenCounts = ClientMovementTokenCount.createMap(dataModel); + Map<Identifier, ClientData> clientDataMap = dataModel.getClientDataMap(); + boolean restrictedVisibility = roundConfiguration.isSubjectsFieldOfVisionEnabled(); + dataModel.reinitialize(); for (PersistableEvent event: actions) { if (event instanceof MovementEvent) { MovementEvent movementEvent = (MovementEvent) event; + dataModel.apply(movementEvent); ClientData clientData = clientDataMap.get(event.getId()); ClientMovementTokenCount client = clientMovementTokenCounts.get(event.getId()); client.moves++; @@ -101,9 +99,27 @@ else if (event instanceof ChatRequest) { ChatRequest request = (ChatRequest) event; Identifier sourceId = request.getSource(); - Identifier targetId = request.getTarget(); + StringBuilder targetStringBuilder = new StringBuilder(); String message = request.toString(); - String line = String.format("%s, %s, %s, %s", savedRoundData.toSecondString(event), sourceId, targetId, message); + if (restrictedVisibility) { + int radius = roundConfiguration.getViewSubjectsRadius(); + ClientData clientData = clientDataMap.get(event.getId()); + GroupDataModel group = clientData.getGroupDataModel(); + Circle circle = new Circle(clientData.getPoint(), radius); + targetStringBuilder.append('['); + for (Map.Entry<Identifier, Point> entry: group.getClientPositions().entrySet()) { + Identifier id = entry.getKey(); + Point position = entry.getValue(); + if (circle.contains(position)) { + targetStringBuilder.append(id).append(','); + } + } + targetStringBuilder.setCharAt(targetStringBuilder.length() - 1, ']'); + } + else { + targetStringBuilder.append(request.getTarget()); + } + String line = String.format("%s, %s, %s, %s", savedRoundData.toSecondString(event), sourceId, targetStringBuilder.toString(), message); System.err.println(line); writer.println(line); } @@ -195,4 +211,4 @@ } } } -} \ No newline at end of file +} diff -r 3a0ef9068485da2d5ad7d6a5cba1f736aa3bfb8a -r 9305b20c0d8b45612903fe086e961e20bf743220 src/main/java/edu/asu/commons/foraging/model/ServerDataModel.java --- a/src/main/java/edu/asu/commons/foraging/model/ServerDataModel.java +++ b/src/main/java/edu/asu/commons/foraging/model/ServerDataModel.java @@ -334,11 +334,6 @@ } } - /** - * Resets this server data model by performing the following: - * - * 1. Sets event channel to a no-op event channel. - */ public void setNullEventChannel() { super.channel = new EventTypeChannel() { public void handle(Event event) { } @@ -350,7 +345,15 @@ group.resetResourceDistribution(); } } - + /** + * Reinitializes this server data model in preparation for a replay by: + * <ol> + * <li> Sets event channel to a no-op event channel.</li> + * <li> resets all group resource distributions </li> + * <li> reinitializes all client positions </li> + * </ol> + * FIXME: may be safer to return a clone() instead? + */ public void reinitialize() { setNullEventChannel(); resetGroupResourceDistributions(); Repository URL: https://bitbucket.org/virtualcommons/foraging/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. |