Use Transform command to rotate tiles

This commit is contained in:
fgnm
2020-10-15 10:44:09 +02:00
parent b754f30a1b
commit f149bf36aa
12 changed files with 27 additions and 37 deletions
Binary file not shown.
@@ -1,13 +1,12 @@
package games.rednblack.editor.utils;
package games.rednblack.h2d.common;
import com.badlogic.ashley.core.Entity;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array;
import games.rednblack.h2d.common.MsgAPI;
import games.rednblack.editor.HyperLap2DFacade;
import games.rednblack.editor.renderer.components.DimensionsComponent;
import games.rednblack.editor.renderer.components.TransformComponent;
import games.rednblack.editor.renderer.utils.ComponentRetriever;
import org.puremvc.java.interfaces.IFacade;
/**
* Created by Osman on 01.08.2015.
@@ -74,12 +73,12 @@ public class TransformCommandBuilder {
setOrigin(2, x, y);
}
public void execute() {
public void execute(IFacade facade) {
// check if payload is worth sending
Object[] newData = (Object[]) payload.get(2);
for(Object o : newData) {
if (o != null) {
HyperLap2DFacade.getInstance().sendNotification(MsgAPI.ACTION_ITEM_TRANSFORM_TO, payload);
facade.sendNotification(MsgAPI.ACTION_ITEM_TRANSFORM_TO, payload);
return;
}
}
@@ -11,6 +11,7 @@ import games.rednblack.editor.renderer.components.TextureRegionComponent;
import games.rednblack.editor.renderer.components.TransformComponent;
import games.rednblack.editor.renderer.data.ProjectInfoVO;
import games.rednblack.editor.renderer.utils.ComponentRetriever;
import games.rednblack.h2d.common.TransformCommandBuilder;
import games.rednblack.h2d.common.view.tools.Tool;
import org.puremvc.java.interfaces.INotification;
@@ -94,23 +95,19 @@ public class DrawTileTool implements Tool {
// there is already other tile under this one
if (textureRegionComponent.regionName.equals(tiledPlugin.getSelectedTileName())) {
//rotate
TransformCommandBuilder commandBuilder = new TransformCommandBuilder();
commandBuilder.begin(entity);
TransformComponent transformComponent = ComponentRetriever.get(entity, TransformComponent.class);
if (transformComponent.scaleX > 0 && transformComponent.scaleY > 0) {
transformComponent.scaleX *= -1f;
return;
}
if (transformComponent.scaleX < 0 && transformComponent.scaleY > 0) {
transformComponent.scaleY *= -1f;
return;
}
if (transformComponent.scaleX < 0 && transformComponent.scaleY < 0) {
transformComponent.scaleX *= -1f;
return;
}
if (transformComponent.scaleX > 0 && transformComponent.scaleY < 0) {
transformComponent.scaleY *= -1f;
return;
commandBuilder.setScale(transformComponent.scaleX * -1f, transformComponent.scaleY);
} else if (transformComponent.scaleX < 0 && transformComponent.scaleY > 0) {
commandBuilder.setScale(transformComponent.scaleX, transformComponent.scaleY * -1f);
} else if (transformComponent.scaleX < 0 && transformComponent.scaleY < 0) {
commandBuilder.setScale(transformComponent.scaleX * -1f, transformComponent.scaleY);
} else if (transformComponent.scaleX > 0 && transformComponent.scaleY < 0) {
commandBuilder.setScale(transformComponent.scaleX, transformComponent.scaleY * -1f);
}
commandBuilder.execute(tiledPlugin.facade);
}
}
}
@@ -1,10 +1,11 @@
package games.rednblack.editor.controller.commands;
import com.badlogic.ashley.core.Entity;
import games.rednblack.editor.HyperLap2DFacade;
import games.rednblack.editor.controller.SandboxCommand;
import games.rednblack.editor.renderer.components.TransformComponent;
import games.rednblack.editor.renderer.utils.ComponentRetriever;
import games.rednblack.editor.utils.TransformCommandBuilder;
import games.rednblack.h2d.common.TransformCommandBuilder;
import games.rednblack.editor.view.ui.validator.FloatInputValidator;
import games.rednblack.h2d.common.view.ui.dialog.MultipleInputDialog;
import games.rednblack.h2d.common.view.ui.listener.MultipleInputDialogListener;
@@ -25,7 +26,7 @@ public class ChangeOriginPointPosition extends SandboxCommand {
TransformCommandBuilder commandBuilder = new TransformCommandBuilder();
commandBuilder.begin(entity);
commandBuilder.setOrigin(Float.parseFloat(input[0]), Float.parseFloat(input[1]));
commandBuilder.execute();
commandBuilder.execute(HyperLap2DFacade.getInstance());
}
@Override
@@ -29,7 +29,7 @@ import games.rednblack.h2d.common.proxy.CursorManager;
import games.rednblack.editor.renderer.components.TransformComponent;
import games.rednblack.editor.renderer.factory.EntityFactory;
import games.rednblack.editor.renderer.utils.ComponentRetriever;
import games.rednblack.editor.utils.TransformCommandBuilder;
import games.rednblack.h2d.common.TransformCommandBuilder;
import games.rednblack.editor.utils.runtime.EntityUtils;
import games.rednblack.editor.view.stage.Sandbox;
import games.rednblack.editor.view.ui.FollowersUIMediator;
@@ -201,7 +201,7 @@ public class TransformTool extends SelectionTool implements FollowerTransformati
return;
}
commandBuilder.execute();
commandBuilder.execute(HyperLap2DFacade.getInstance());
if (transformStrategy == compositeStrategy) {
compositeStrategy.swapItemFinalAndInitialStates(follower.getEntity());
}
@@ -1,13 +1,10 @@
package games.rednblack.editor.view.stage.tools.transformStrategy;
import com.badlogic.ashley.core.Entity;
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Pool;
import games.rednblack.editor.renderer.components.TransformComponent;
import games.rednblack.editor.utils.TransformCommandBuilder;
import games.rednblack.editor.view.stage.Sandbox;
import games.rednblack.h2d.common.TransformCommandBuilder;
import games.rednblack.editor.view.ui.followers.NormalSelectionFollower;
/**
@@ -5,14 +5,10 @@ import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
import com.badlogic.gdx.math.Vector2;
import games.rednblack.editor.renderer.components.DimensionsComponent;
import games.rednblack.editor.renderer.components.PolygonComponent;
import games.rednblack.editor.renderer.components.TextureRegionComponent;
import games.rednblack.editor.renderer.components.TransformComponent;
import games.rednblack.editor.renderer.components.light.LightBodyComponent;
import games.rednblack.editor.renderer.components.physics.PhysicsBodyComponent;
import games.rednblack.editor.renderer.utils.ComponentRetriever;
import games.rednblack.editor.utils.RoundUtils;
import games.rednblack.editor.utils.TransformCommandBuilder;
import games.rednblack.h2d.common.TransformCommandBuilder;
import games.rednblack.editor.utils.runtime.EntityUtils;
import games.rednblack.editor.view.ui.followers.NormalSelectionFollower;
@@ -5,7 +5,7 @@ import com.badlogic.gdx.math.Vector2;
import games.rednblack.editor.renderer.components.DimensionsComponent;
import games.rednblack.editor.renderer.components.TransformComponent;
import games.rednblack.editor.renderer.utils.ComponentRetriever;
import games.rednblack.editor.utils.TransformCommandBuilder;
import games.rednblack.h2d.common.TransformCommandBuilder;
import games.rednblack.editor.view.ui.followers.NormalSelectionFollower;
public class ColorPrimitiveStrategy extends AbstractTransformStrategy {
@@ -14,7 +14,7 @@ import games.rednblack.editor.renderer.components.DimensionsComponent;
import games.rednblack.editor.renderer.components.NodeComponent;
import games.rednblack.editor.renderer.components.TransformComponent;
import games.rednblack.editor.renderer.utils.ComponentRetriever;
import games.rednblack.editor.utils.TransformCommandBuilder;
import games.rednblack.h2d.common.TransformCommandBuilder;
import games.rednblack.editor.utils.runtime.EntityUtils;
import games.rednblack.editor.view.ui.followers.NormalSelectionFollower;
@@ -2,7 +2,7 @@ package games.rednblack.editor.view.stage.tools.transformStrategy;
import com.badlogic.ashley.core.Entity;
import com.badlogic.gdx.math.Vector2;
import games.rednblack.editor.utils.TransformCommandBuilder;
import games.rednblack.h2d.common.TransformCommandBuilder;
/**
* Created by Sasun Poghosyan on 4/13/2016.
@@ -5,7 +5,7 @@ import com.badlogic.gdx.math.Vector2;
import games.rednblack.editor.renderer.components.DimensionsComponent;
import games.rednblack.editor.renderer.components.TransformComponent;
import games.rednblack.editor.renderer.utils.ComponentRetriever;
import games.rednblack.editor.utils.TransformCommandBuilder;
import games.rednblack.h2d.common.TransformCommandBuilder;
import games.rednblack.editor.view.ui.followers.NormalSelectionFollower;
public class LabelStrategy extends AbstractTransformStrategy {
@@ -6,7 +6,7 @@ import games.rednblack.editor.renderer.components.DimensionsComponent;
import games.rednblack.editor.renderer.components.NinePatchComponent;
import games.rednblack.editor.renderer.components.TransformComponent;
import games.rednblack.editor.renderer.utils.ComponentRetriever;
import games.rednblack.editor.utils.TransformCommandBuilder;
import games.rednblack.h2d.common.TransformCommandBuilder;
import games.rednblack.editor.view.ui.followers.NormalSelectionFollower;
/**