this.physics = new BasicPhysics(this, state.getPhysics());
this.synchronizer = new BasicSynchronizerCore(state.getSynchronizerState());
this.dateHandler = new DateHandler(state.getDateHandler());
ConditionalTaskStateFactory taskStateFactory = new ConditionalTaskStateFactory();
ConditionalTaskState dateUpdaterState = taskStateFactory.createConditionalTaskState(DateUpdater.class);
DateUpdater dateUpdater = new DateUpdater(dateUpdaterState, dateHandler.getDate());
synchronizer.schedule(dateUpdater);
this.trees = new HashSet<Tree>();
Set<TreeState> treeStates = state.getTrees();
for (TreeState treeState : treeStates) {
BasicTree newTree = new BasicTree(this, treeState);