diff --git a/src/java/com/threerings/puzzle/drop/client/DropControllerDelegate.java b/src/java/com/threerings/puzzle/drop/client/DropControllerDelegate.java index 3f6e5465..a638c890 100644 --- a/src/java/com/threerings/puzzle/drop/client/DropControllerDelegate.java +++ b/src/java/com/threerings/puzzle/drop/client/DropControllerDelegate.java @@ -144,7 +144,7 @@ public abstract class DropControllerDelegate extends PuzzleControllerDelegate // create the piece dropper if appropriate PieceDropLogic pdl = getPieceDropLogic(); if (pdl != null) { - _dropper = new PieceDropper(pdl); + _dropper = getPieceDropper(pdl); } } @@ -867,7 +867,7 @@ public abstract class DropControllerDelegate extends PuzzleControllerDelegate } /** - * Returns the piece dropper used to drop any pieces that need + * Returns the piece drop logic used to drop any pieces that need * dropping in the board. Derived classes that intend to make use of * {@link #dropPieces} must implement this method and return a * reference to their game-specific piece dropper implementation. @@ -877,6 +877,14 @@ public abstract class DropControllerDelegate extends PuzzleControllerDelegate return null; } + /** + * Returns the piece dropper used to drop any pieces that need dropping in the board. + */ + protected PieceDropper getPieceDropper (PieceDropLogic logic) + { + return new PieceDropper(logic); + } + // documentation inherited public void tick (long tickStamp) { diff --git a/src/java/com/threerings/puzzle/drop/server/DropManagerDelegate.java b/src/java/com/threerings/puzzle/drop/server/DropManagerDelegate.java index 94a5c210..84a2a857 100644 --- a/src/java/com/threerings/puzzle/drop/server/DropManagerDelegate.java +++ b/src/java/com/threerings/puzzle/drop/server/DropManagerDelegate.java @@ -106,7 +106,7 @@ public abstract class DropManagerDelegate extends PuzzleManagerDelegate // create the piece dropper if appropriate PieceDropLogic pdl = getPieceDropLogic(); if (pdl != null) { - _dropper = new PieceDropper(pdl); + _dropper = getPieceDropper(pdl); } } @@ -132,14 +132,22 @@ public abstract class DropManagerDelegate extends PuzzleManagerDelegate } /** - * Returns the piece drop logic used to drop any pieces that need - * dropping in the board. + * Returns the piece drop logic used to drop any pieces that need dropping in the board. */ protected PieceDropLogic getPieceDropLogic () { return null; } + /** + * Returns the piece dropper used to drop any pieces that need dropping in the board. + */ + protected PieceDropper getPieceDropper (PieceDropLogic logic) + { + return new PieceDropper(logic); + } + + /** * This method should be called by derived classes whenever the player * successfully places a drop block.