fixed error with SelectObjectOutliner
This commit is contained in:
		@@ -66,7 +66,6 @@ private void handleLobby(Notification notification) {
 | 
			
		||||
            //lobbyView.setReady(lobbyReadyNotification.getColor(), lobbyReadyNotification.isReady()):
 | 
			
		||||
        } else if (notification instanceof GameNotification n) {
 | 
			
		||||
            app.enter(MdgaState.GAME);
 | 
			
		||||
            ((GameView) app.getView()).setOwnColor(n.getOwnColor());
 | 
			
		||||
        } else {
 | 
			
		||||
            throw new RuntimeException("notification not expected: " + notification.toString());
 | 
			
		||||
        }
 | 
			
		||||
@@ -77,8 +76,8 @@ private void handleGame(Notification notification) {
 | 
			
		||||
        GuiHandler guiHandler = gameView.getGuiHandler();
 | 
			
		||||
        BoardHandler boardHandler = gameView.getBoardHandler();
 | 
			
		||||
 | 
			
		||||
        if (notification instanceof AcquireCardNotification) {
 | 
			
		||||
            // Handle AcquireCardNotification
 | 
			
		||||
        if (notification instanceof AcquireCardNotification n) {
 | 
			
		||||
            guiHandler.addCard(n.getBonusCard());
 | 
			
		||||
        } else if (notification instanceof ActivePlayerNotification n) {
 | 
			
		||||
            gameView.getGuiHandler().setActivePlayer(n.getColor());
 | 
			
		||||
        } else if (notification instanceof CeremonyNotification ceremonyNotification) {
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@
 | 
			
		||||
import com.jme3.renderer.RenderManager;
 | 
			
		||||
import com.jme3.renderer.ViewPort;
 | 
			
		||||
import com.jme3.scene.Spatial;
 | 
			
		||||
import pp.mdga.client.MdgaApp;
 | 
			
		||||
 | 
			
		||||
public class SelectObjectOutliner {
 | 
			
		||||
 | 
			
		||||
@@ -19,14 +20,16 @@ public class SelectObjectOutliner {
 | 
			
		||||
    private ViewPort outlineViewport = null;
 | 
			
		||||
//    private OutlineFilter outlineFilter = null;
 | 
			
		||||
    private OutlineProFilter outlineFilter = null;
 | 
			
		||||
    private final MdgaApp app;
 | 
			
		||||
 | 
			
		||||
    public SelectObjectOutliner(int width, FilterPostProcessor fpp, RenderManager renderManager, AssetManager assetManager, Camera cam) {
 | 
			
		||||
    public SelectObjectOutliner(int width, FilterPostProcessor fpp, RenderManager renderManager, AssetManager assetManager, Camera cam, MdgaApp app) {
 | 
			
		||||
        this.selected = false;
 | 
			
		||||
        this.fpp = fpp;
 | 
			
		||||
        this.renderManager = renderManager;
 | 
			
		||||
        this.assetManager = assetManager;
 | 
			
		||||
        this.cam = cam;
 | 
			
		||||
        this.width = width;
 | 
			
		||||
        this.app = app;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void deselect(Spatial model) {
 | 
			
		||||
@@ -51,30 +54,35 @@ public void select(Spatial model, ColorRGBA color, int width) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void hideOutlineFilterEffect(Spatial model) {
 | 
			
		||||
        outlineFilter.setEnabled(false);
 | 
			
		||||
        outlineFilter.getOutlinePreFilter().setEnabled(false);
 | 
			
		||||
        fpp.removeFilter(outlineFilter);
 | 
			
		||||
        outlineViewport.detachScene(model);
 | 
			
		||||
        outlineViewport.clearProcessors();
 | 
			
		||||
        renderManager.removePreView(outlineViewport);
 | 
			
		||||
        outlineViewport = null;
 | 
			
		||||
        app.enqueue(() -> {
 | 
			
		||||
            outlineFilter.setEnabled(false);
 | 
			
		||||
            outlineFilter.getOutlinePreFilter().setEnabled(false);
 | 
			
		||||
            fpp.removeFilter(outlineFilter);
 | 
			
		||||
            outlineViewport.detachScene(model);
 | 
			
		||||
            outlineViewport.clearProcessors();
 | 
			
		||||
            renderManager.removePreView(outlineViewport);
 | 
			
		||||
            outlineViewport = null;
 | 
			
		||||
            return null;
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void showOutlineFilterEffect(Spatial model, int width, ColorRGBA color) {
 | 
			
		||||
        outlineViewport = renderManager.createPreView("outlineViewport", cam);
 | 
			
		||||
        FilterPostProcessor outlineFpp = new FilterPostProcessor(assetManager);
 | 
			
		||||
        app.enqueue(() -> {
 | 
			
		||||
            outlineViewport = renderManager.createPreView("outlineViewport", cam);
 | 
			
		||||
            FilterPostProcessor outlineFpp = new FilterPostProcessor(assetManager);
 | 
			
		||||
 | 
			
		||||
        OutlinePreFilter outlinePreFilter = new OutlinePreFilter();
 | 
			
		||||
        outlineFpp.addFilter(outlinePreFilter);
 | 
			
		||||
            OutlinePreFilter outlinePreFilter = new OutlinePreFilter();
 | 
			
		||||
            outlineFpp.addFilter(outlinePreFilter);
 | 
			
		||||
 | 
			
		||||
        outlineViewport.attachScene(model);
 | 
			
		||||
        outlineViewport.addProcessor(outlineFpp);
 | 
			
		||||
            outlineViewport.attachScene(model);
 | 
			
		||||
            outlineViewport.addProcessor(outlineFpp);
 | 
			
		||||
 | 
			
		||||
//        outlineFilter = new OutlineFilter(outlinePreFilter);
 | 
			
		||||
        outlineFilter = new OutlineProFilter(outlinePreFilter);
 | 
			
		||||
        outlineFilter.setOutlineColor(color);
 | 
			
		||||
        outlineFilter.setOutlineWidth(width);
 | 
			
		||||
            outlineFilter = new OutlineProFilter(outlinePreFilter);
 | 
			
		||||
            outlineFilter.setOutlineColor(color);
 | 
			
		||||
            outlineFilter.setOutlineWidth(width);
 | 
			
		||||
 | 
			
		||||
        fpp.addFilter(outlineFilter);
 | 
			
		||||
            fpp.addFilter(outlineFilter);
 | 
			
		||||
            return null;
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -18,17 +18,17 @@ public class OutlineControl extends AbstractControl {
 | 
			
		||||
 | 
			
		||||
    public OutlineControl(MdgaApp app, FilterPostProcessor fpp){
 | 
			
		||||
        this.app = app;
 | 
			
		||||
        outlineOwn = new SelectObjectOutliner(THICKNESS_DEFAULT, fpp, app.getRenderManager(), app.getAssetManager(), app.getCamera());
 | 
			
		||||
        outlineOwn = new SelectObjectOutliner(THICKNESS_DEFAULT, fpp, app.getRenderManager(), app.getAssetManager(), app.getCamera(), app);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public OutlineControl(MdgaApp app, FilterPostProcessor fpp, Camera cam){
 | 
			
		||||
        this.app = app;
 | 
			
		||||
        outlineOwn = new SelectObjectOutliner(THICKNESS_DEFAULT, fpp, app.getRenderManager(), app.getAssetManager(), cam);
 | 
			
		||||
        outlineOwn = new SelectObjectOutliner(THICKNESS_DEFAULT, fpp, app.getRenderManager(), app.getAssetManager(), cam, app);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public OutlineControl(MdgaApp app, FilterPostProcessor fpp, Camera cam, int thickness){
 | 
			
		||||
        this.app = app;
 | 
			
		||||
        outlineOwn = new SelectObjectOutliner(thickness, fpp, app.getRenderManager(), app.getAssetManager(), cam);
 | 
			
		||||
        outlineOwn = new SelectObjectOutliner(thickness, fpp, app.getRenderManager(), app.getAssetManager(), cam, app);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void outline(ColorRGBA color){
 | 
			
		||||
 
 | 
			
		||||
@@ -84,9 +84,6 @@ public Node getRoot() {
 | 
			
		||||
    public void initSpatial(){
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public void outline(){
 | 
			
		||||
        super.outline(OUTLINE_COLOR);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -88,8 +88,6 @@ public void render(RenderManager rm) {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void update( float tpf ) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        if (init && !cardBuffer.isEmpty()) {
 | 
			
		||||
            for(Spatial spatial : cardBuffer){
 | 
			
		||||
                root.attachChild(spatial);
 | 
			
		||||
@@ -114,4 +112,4 @@ public Camera getOverlayCam(){
 | 
			
		||||
    public Node getRootNode(){
 | 
			
		||||
        return root;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,9 +9,14 @@
 | 
			
		||||
import pp.mdga.client.button.ButtonLeft;
 | 
			
		||||
import pp.mdga.client.button.ButtonRight;
 | 
			
		||||
import pp.mdga.client.gui.GuiHandler;
 | 
			
		||||
import pp.mdga.game.BonusCard;
 | 
			
		||||
import pp.mdga.game.Color;
 | 
			
		||||
import pp.mdga.notification.AcquireCardNotification;
 | 
			
		||||
import pp.mdga.notification.GameNotification;
 | 
			
		||||
import pp.mdga.notification.MovePieceNotification;
 | 
			
		||||
import pp.mdga.notification.PlayerInGameNotification;
 | 
			
		||||
import pp.mdga.notification.SelectableCardsNotification;
 | 
			
		||||
import pp.mdga.notification.SelectableMoveNotification;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@@ -44,6 +49,27 @@ public GameView(MdgaApp app) {
 | 
			
		||||
        this.boardHandler = new BoardHandler(app, rootNode, fpp);
 | 
			
		||||
 | 
			
		||||
        guiHandler = new GuiHandler(app, guiNode, ownColor);
 | 
			
		||||
 | 
			
		||||
        //Test
 | 
			
		||||
        setOwnColor(Color.AIRFORCE);
 | 
			
		||||
 | 
			
		||||
        List<UUID> uuid1 = new ArrayList<>();
 | 
			
		||||
        UUID p1 = UUID.randomUUID();
 | 
			
		||||
        UUID p2 = UUID.randomUUID();
 | 
			
		||||
        uuid1.add(p1);
 | 
			
		||||
        uuid1.add(p2);
 | 
			
		||||
        uuid1.add(UUID.randomUUID());
 | 
			
		||||
        uuid1.add(UUID.randomUUID());
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        app.getNotificationSynchronizer().addTestNotification(new PlayerInGameNotification(Color.AIRFORCE, uuid1, "Cedric"));
 | 
			
		||||
        app.getNotificationSynchronizer().addTestNotification(new MovePieceNotification(p1, 0, true));
 | 
			
		||||
        app.getNotificationSynchronizer().addTestNotification(new SelectableMoveNotification(List.of(p1), List.of(4), List.of(false)));
 | 
			
		||||
        app.getNotificationSynchronizer().addTestNotification(new AcquireCardNotification(BonusCard.SHIELD));
 | 
			
		||||
        app.getNotificationSynchronizer().addTestNotification(new SelectableCardsNotification(List.of(BonusCard.SHIELD)));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
 
 | 
			
		||||
@@ -9,24 +9,13 @@
 | 
			
		||||
 */
 | 
			
		||||
public class AcquireCardNotification extends Notification{
 | 
			
		||||
 | 
			
		||||
    private UUID cardId;
 | 
			
		||||
    private BonusCard bonusCard;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Constructor.
 | 
			
		||||
     * @param cardId The id of the card that was acquired.
 | 
			
		||||
     */
 | 
			
		||||
    public AcquireCardNotification(BonusCard bonusCard, UUID cardId) {
 | 
			
		||||
    public AcquireCardNotification(BonusCard bonusCard) {
 | 
			
		||||
        this.bonusCard = bonusCard;
 | 
			
		||||
        this.cardId = cardId;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get the id of the card that was acquired.
 | 
			
		||||
     * @return The id of the card that was acquired.
 | 
			
		||||
     */
 | 
			
		||||
    public UUID getCardId() {
 | 
			
		||||
        return cardId;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public BonusCard getBonusCard() {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user