Minor cleanup
This commit is contained in:
parent
4c70ba2800
commit
6df81726d1
18 changed files with 18 additions and 74 deletions
|
@ -1,8 +0,0 @@
|
||||||
# Refactors done
|
|
||||||
|
|
||||||
- chore: move to package `com.github.dtschust.zork`
|
|
||||||
- default package is bad
|
|
||||||
- remove 5 redundant `if` statements from `ZorkCommand`, `ZorkCommandHas`, `ZorkCondtionStatus'
|
|
||||||
- e.g. `if (blah) return true; else return false;` can be simplified to `return blah;`
|
|
||||||
- replaced 2 `for` with foreach loops in `ZorkCreature` and `ZorkTrigger`
|
|
||||||
- 23 use of diamond operator in `Zork`, `ZorkContainer`, `ZorkCreature`, `ZorkItem`, `ZorkObject`, `ZorkRoom`, `ZorkTrigger`
|
|
|
@ -2,7 +2,6 @@ package com.github.dtschust.zork;
|
||||||
|
|
||||||
import com.github.dtschust.zork.types.HasPrintsAndActions;
|
import com.github.dtschust.zork.types.HasPrintsAndActions;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
|
@ -13,10 +13,6 @@ public abstract class ZorkObject {
|
||||||
private final List<ZorkTrigger> trigger;
|
private final List<ZorkTrigger> trigger;
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
protected ZorkObject(String name, String description) {
|
|
||||||
this(name, description, null, Collections.emptyList());
|
|
||||||
}
|
|
||||||
|
|
||||||
protected ZorkObject(final String name,
|
protected ZorkObject(final String name,
|
||||||
final String description,
|
final String description,
|
||||||
final String status,
|
final String status,
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
package com.github.dtschust.zork.objects;
|
|
||||||
|
|
||||||
import java.util.EnumSet;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
public enum ZorkObjectTypes {
|
|
||||||
ROOM("room"),
|
|
||||||
ITEM("item"),
|
|
||||||
CONTAINER("container"),
|
|
||||||
CREATURE("creature");
|
|
||||||
|
|
||||||
private final String propertyName;
|
|
||||||
|
|
||||||
ZorkObjectTypes(final String propertyName) {
|
|
||||||
this.propertyName = propertyName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Optional<ZorkObjectTypes> fromPropertyName(final String propertyName) {
|
|
||||||
return EnumSet.allOf(ZorkObjectTypes.class).stream().filter(e -> e.propertyName.equals(propertyName)).findFirst();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -8,8 +8,6 @@ import com.github.dtschust.zork.types.ZorkDirection;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static com.github.dtschust.zork.objects.ZorkObjectTypes.*;
|
|
||||||
|
|
||||||
/* Room*/
|
/* Room*/
|
||||||
public class ZorkRoom extends ZorkObject implements ObjectCollector {
|
public class ZorkRoom extends ZorkObject implements ObjectCollector {
|
||||||
private final String type;
|
private final String type;
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
package com.github.dtschust.zork.parser;
|
package com.github.dtschust.zork.parser;
|
||||||
|
|
||||||
import com.github.dtschust.zork.ZorkCondition;
|
import com.github.dtschust.zork.ZorkCondition;
|
||||||
import com.github.dtschust.zork.parser.strategies.*;
|
|
||||||
import com.github.dtschust.zork.objects.ZorkContainer;
|
import com.github.dtschust.zork.objects.ZorkContainer;
|
||||||
import com.github.dtschust.zork.objects.ZorkCreature;
|
import com.github.dtschust.zork.objects.ZorkCreature;
|
||||||
import com.github.dtschust.zork.objects.ZorkItem;
|
import com.github.dtschust.zork.objects.ZorkItem;
|
||||||
import com.github.dtschust.zork.objects.ZorkRoom;
|
import com.github.dtschust.zork.objects.ZorkRoom;
|
||||||
|
import com.github.dtschust.zork.parser.strategies.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Inversion of control for Zork parse strategies
|
* Inversion of control for Zork parse strategies
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package com.github.dtschust.zork.parser;
|
package com.github.dtschust.zork.parser;
|
||||||
|
|
||||||
import com.github.dtschust.zork.parser.dom.DOMElement;
|
|
||||||
import com.github.dtschust.zork.objects.ZorkContainer;
|
import com.github.dtschust.zork.objects.ZorkContainer;
|
||||||
import com.github.dtschust.zork.objects.ZorkCreature;
|
import com.github.dtschust.zork.objects.ZorkCreature;
|
||||||
import com.github.dtschust.zork.objects.ZorkItem;
|
import com.github.dtschust.zork.objects.ZorkItem;
|
||||||
import com.github.dtschust.zork.objects.ZorkRoom;
|
import com.github.dtschust.zork.objects.ZorkRoom;
|
||||||
|
import com.github.dtschust.zork.parser.dom.DOMElement;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
|
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package com.github.dtschust.zork.parser.strategies;
|
package com.github.dtschust.zork.parser.strategies;
|
||||||
|
|
||||||
import com.github.dtschust.zork.ZorkTrigger;
|
import com.github.dtschust.zork.ZorkTrigger;
|
||||||
|
import com.github.dtschust.zork.objects.ZorkContainer;
|
||||||
import com.github.dtschust.zork.parser.Property;
|
import com.github.dtschust.zork.parser.Property;
|
||||||
import com.github.dtschust.zork.parser.PropertyParseStrategy;
|
import com.github.dtschust.zork.parser.PropertyParseStrategy;
|
||||||
import com.github.dtschust.zork.parser.TriggerPropertyParseStrategy;
|
import com.github.dtschust.zork.parser.TriggerPropertyParseStrategy;
|
||||||
import com.github.dtschust.zork.objects.ZorkContainer;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
|
@ -2,10 +2,10 @@ package com.github.dtschust.zork.parser.strategies;
|
||||||
|
|
||||||
import com.github.dtschust.zork.ZorkCondition;
|
import com.github.dtschust.zork.ZorkCondition;
|
||||||
import com.github.dtschust.zork.ZorkTrigger;
|
import com.github.dtschust.zork.ZorkTrigger;
|
||||||
|
import com.github.dtschust.zork.objects.ZorkCreature;
|
||||||
import com.github.dtschust.zork.parser.Property;
|
import com.github.dtschust.zork.parser.Property;
|
||||||
import com.github.dtschust.zork.parser.PropertyParseStrategy;
|
import com.github.dtschust.zork.parser.PropertyParseStrategy;
|
||||||
import com.github.dtschust.zork.parser.TriggerPropertyParseStrategy;
|
import com.github.dtschust.zork.parser.TriggerPropertyParseStrategy;
|
||||||
import com.github.dtschust.zork.objects.ZorkCreature;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package com.github.dtschust.zork.parser.strategies;
|
package com.github.dtschust.zork.parser.strategies;
|
||||||
|
|
||||||
import com.github.dtschust.zork.ZorkTrigger;
|
import com.github.dtschust.zork.ZorkTrigger;
|
||||||
|
import com.github.dtschust.zork.objects.ZorkItem;
|
||||||
import com.github.dtschust.zork.parser.Property;
|
import com.github.dtschust.zork.parser.Property;
|
||||||
import com.github.dtschust.zork.parser.PropertyParseStrategy;
|
import com.github.dtschust.zork.parser.PropertyParseStrategy;
|
||||||
import com.github.dtschust.zork.parser.TriggerPropertyParseStrategy;
|
import com.github.dtschust.zork.parser.TriggerPropertyParseStrategy;
|
||||||
import com.github.dtschust.zork.objects.ZorkItem;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
package com.github.dtschust.zork.parser.strategies;
|
package com.github.dtschust.zork.parser.strategies;
|
||||||
|
|
||||||
import com.github.dtschust.zork.ZorkTrigger;
|
import com.github.dtschust.zork.ZorkTrigger;
|
||||||
|
import com.github.dtschust.zork.objects.ZorkRoom;
|
||||||
import com.github.dtschust.zork.parser.Property;
|
import com.github.dtschust.zork.parser.Property;
|
||||||
import com.github.dtschust.zork.parser.PropertyParseStrategy;
|
import com.github.dtschust.zork.parser.PropertyParseStrategy;
|
||||||
import com.github.dtschust.zork.parser.TriggerPropertyParseStrategy;
|
import com.github.dtschust.zork.parser.TriggerPropertyParseStrategy;
|
||||||
import com.github.dtschust.zork.types.ZorkDirection;
|
import com.github.dtschust.zork.types.ZorkDirection;
|
||||||
import com.github.dtschust.zork.objects.ZorkRoom;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
@ -1,17 +1,10 @@
|
||||||
package com.github.dtschust.zork.repl.actions;
|
package com.github.dtschust.zork.repl.actions;
|
||||||
|
|
||||||
import com.github.dtschust.zork.ZorkGame;
|
import com.github.dtschust.zork.ZorkGame;
|
||||||
import com.github.dtschust.zork.objects.ZorkItem;
|
|
||||||
import com.github.dtschust.zork.repl.Action;
|
|
||||||
import com.github.dtschust.zork.types.ObjectCollector;
|
|
||||||
import com.github.dtschust.zork.objects.ZorkObjectTypes;
|
|
||||||
import com.github.dtschust.zork.objects.ZorkObject;
|
|
||||||
import com.github.dtschust.zork.objects.ZorkRoom;
|
import com.github.dtschust.zork.objects.ZorkRoom;
|
||||||
|
import com.github.dtschust.zork.repl.Action;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import static com.github.dtschust.zork.objects.ZorkObjectTypes.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete: figure out what object it is and delete it accordingly. Rooms are especially tricky
|
* Delete: figure out what object it is and delete it accordingly. Rooms are especially tricky
|
||||||
|
|
|
@ -2,12 +2,9 @@ package com.github.dtschust.zork.repl.actions;
|
||||||
|
|
||||||
import com.github.dtschust.zork.ZorkGame;
|
import com.github.dtschust.zork.ZorkGame;
|
||||||
import com.github.dtschust.zork.repl.Action;
|
import com.github.dtschust.zork.repl.Action;
|
||||||
import com.github.dtschust.zork.objects.ZorkItem;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.github.dtschust.zork.objects.ZorkObjectTypes.ITEM;
|
|
||||||
|
|
||||||
public class ReadAction implements Action {
|
public class ReadAction implements Action {
|
||||||
@Override
|
@Override
|
||||||
public boolean matchesInput(List<String> arguments) {
|
public boolean matchesInput(List<String> arguments) {
|
||||||
|
|
|
@ -24,8 +24,8 @@ public class StartGameAction implements Action {
|
||||||
public boolean run(ZorkGame game, List<String> arguments) {
|
public boolean run(ZorkGame game, List<String> arguments) {
|
||||||
final String room = arguments.get(2);
|
final String room = arguments.get(2);
|
||||||
|
|
||||||
if(!game.isRunning()){
|
if (!game.isRunning()) {
|
||||||
if(game.changeRoom(room)){
|
if (game.changeRoom(room)) {
|
||||||
game.stream.println(game.getCurrentRoom().getDescription());
|
game.stream.println(game.getCurrentRoom().getDescription());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,9 @@ package com.github.dtschust.zork.repl.actions;
|
||||||
|
|
||||||
import com.github.dtschust.zork.ZorkGame;
|
import com.github.dtschust.zork.ZorkGame;
|
||||||
import com.github.dtschust.zork.objects.ZorkContainer;
|
import com.github.dtschust.zork.objects.ZorkContainer;
|
||||||
import com.github.dtschust.zork.objects.ZorkItem;
|
|
||||||
import com.github.dtschust.zork.repl.Action;
|
import com.github.dtschust.zork.repl.Action;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
public class TakeAction implements Action {
|
public class TakeAction implements Action {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
package com.github.dtschust.zork.types;
|
package com.github.dtschust.zork.types;
|
||||||
|
|
||||||
import com.github.dtschust.zork.objects.ZorkObject;
|
import com.github.dtschust.zork.objects.ZorkObject;
|
||||||
import com.github.dtschust.zork.objects.ZorkObjectTypes;
|
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public interface ObjectCollector {
|
public interface ObjectCollector {
|
||||||
void addObject(final ZorkObject object);
|
void addObject(final ZorkObject object);
|
||||||
|
|
||||||
void removeObject(final ZorkObject object);
|
void removeObject(final ZorkObject object);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,6 @@ import com.github.dtschust.zork.utils.CommandReader;
|
||||||
import com.github.dtschust.zork.utils.IOWrapper;
|
import com.github.dtschust.zork.utils.IOWrapper;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.io.PrintStream;
|
|
||||||
|
|
||||||
import static com.github.stefanbirkner.systemlambda.SystemLambda.catchSystemExit;
|
import static com.github.stefanbirkner.systemlambda.SystemLambda.catchSystemExit;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
@ -19,16 +17,12 @@ class ZorkTest {
|
||||||
String gameConfig = "sampleGame.xml";
|
String gameConfig = "sampleGame.xml";
|
||||||
String gameExecution = "RunThroughResults.txt";
|
String gameExecution = "RunThroughResults.txt";
|
||||||
|
|
||||||
PrintStream out = System.out;
|
|
||||||
|
|
||||||
CommandReader run = new CommandReader(gameExecution);
|
CommandReader run = new CommandReader(gameExecution);
|
||||||
IOWrapper io = new IOWrapper(true);
|
IOWrapper io = new IOWrapper(true);
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
try {
|
try {
|
||||||
catchSystemExit(() -> new Zork(gameConfig));
|
catchSystemExit(() -> new Zork(gameConfig));
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {}
|
||||||
ignored.printStackTrace(out);
|
|
||||||
}
|
|
||||||
}).start();
|
}).start();
|
||||||
while(true){
|
while(true){
|
||||||
switch(run.getInstructionType()) {
|
switch(run.getInstructionType()) {
|
||||||
|
|
Reference in a new issue