Add right click editor removal
Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com> Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
cd993296e6
commit
65d7ed8cce
Binary file not shown.
@ -62,7 +62,7 @@ public class KeyBind {
|
||||
}
|
||||
} else
|
||||
if (RabiClone.CONTROLLERS.length>port && id instanceof Identifier.Axis) {
|
||||
return Math.abs(RabiClone.CONTROLLERS[port].getComponent(id).getPollData())>=RabiClone.CONTROLLERS[port].getComponent(id).getDeadZone()&&Math.signum(RabiClone.CONTROLLERS[port].getComponent(id).getPollData())==Math.signum(val);
|
||||
return Math.abs(RabiClone.CONTROLLERS[port].getComponent(id).getPollData())>=Math.max(RabiClone.CONTROLLERS[port].getComponent(id).getDeadZone(),0.2)&&Math.signum(RabiClone.CONTROLLERS[port].getComponent(id).getPollData())==Math.signum(val);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
|
10
src/sig/events/DataEvent.java
Normal file
10
src/sig/events/DataEvent.java
Normal file
@ -0,0 +1,10 @@
|
||||
package sig.events;
|
||||
|
||||
public class DataEvent implements Event{
|
||||
|
||||
@Override
|
||||
public boolean perform(int x, int y) {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
@ -1,9 +1,6 @@
|
||||
package sig.events;
|
||||
|
||||
import sig.engine.String;
|
||||
|
||||
public interface Event{
|
||||
public String getDescription();
|
||||
/**
|
||||
* Perform this event at position {@code (x,y)}.
|
||||
* @return {@code True} to keep this event alive after it runs.
|
||||
|
@ -3,23 +3,15 @@ package sig.events;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
import sig.RabiClone;
|
||||
import sig.engine.String;
|
||||
import sig.engine.objects.Object;
|
||||
import sig.map.Tile;
|
||||
|
||||
public class SpawnEvent implements Event{
|
||||
|
||||
Class<?> entity;
|
||||
String description;
|
||||
|
||||
public SpawnEvent(java.lang.String description,Class<?> o) {
|
||||
public SpawnEvent(Class<?> o) {
|
||||
this.entity=o;
|
||||
this.description=new String(description);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
13
src/sig/events/WaterEvent.java
Normal file
13
src/sig/events/WaterEvent.java
Normal file
@ -0,0 +1,13 @@
|
||||
package sig.events;
|
||||
|
||||
import sig.RabiClone;
|
||||
|
||||
public class WaterEvent implements Event{
|
||||
|
||||
@Override
|
||||
public boolean perform(int x, int y) {
|
||||
RabiClone.CURRENT_MAP.getMap().setWaterLevel(RabiClone.CURRENT_MAP.getMap().getDataTileValue(x+1, y));
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
@ -1,8 +1,10 @@
|
||||
package sig.map;
|
||||
|
||||
import sig.engine.String;
|
||||
import sig.events.DataEvent;
|
||||
import sig.events.Event;
|
||||
import sig.events.SpawnEvent;
|
||||
import sig.events.WaterEvent;
|
||||
import sig.objects.enemies.BlueBun;
|
||||
import sig.objects.Erinoah;
|
||||
import sig.objects.enemies.GreenBun;
|
||||
@ -11,11 +13,13 @@ import sig.objects.enemies.YellowBun;
|
||||
|
||||
public enum DataTile {
|
||||
NULL, //File is populated by 0s by default. This represents nothing.
|
||||
BUN0(new SpawnEvent("Spawns an Erinoa bun",Erinoah.class)),
|
||||
BUN1(new SpawnEvent("Spawns a red bun",RedBun.class)),
|
||||
BUN2(new SpawnEvent("Spawns a blue bun",BlueBun.class)),
|
||||
BUN3(new SpawnEvent("Spawns a yellow bun",YellowBun.class)),
|
||||
BUN4(new SpawnEvent("Spawns a green bun",GreenBun.class));
|
||||
BUN0("Spawns an Erinoa bun",new SpawnEvent(Erinoah.class)),
|
||||
BUN1("Spawns a red bun",new SpawnEvent(RedBun.class)),
|
||||
BUN2("Spawns a blue bun",new SpawnEvent(BlueBun.class)),
|
||||
BUN3("Spawns a yellow bun",new SpawnEvent(YellowBun.class)),
|
||||
BUN4("Spawns a green bun",new SpawnEvent(GreenBun.class)),
|
||||
WATERLEVEL("Sets the water level according to the data tile at X+1",new WaterEvent()),
|
||||
DATATILE("Uses a value between 32768-65536 to represent extra data.",new DataEvent());
|
||||
|
||||
String description;
|
||||
Event event;
|
||||
@ -23,8 +27,8 @@ public enum DataTile {
|
||||
DataTile(){
|
||||
this.description=new String("");
|
||||
}
|
||||
DataTile(Event e) {
|
||||
this.description=e.getDescription();
|
||||
DataTile(java.lang.String description,Event e) {
|
||||
this.description=new String(description);
|
||||
this.event=e;
|
||||
}
|
||||
public String getDescription() {
|
||||
|
@ -37,6 +37,8 @@ public class Map {
|
||||
byte[] types = new byte[MAP_SCREENS_X*MAP_SCREENS_Y];
|
||||
char[] data = new char[MAP_WIDTH*MAP_HEIGHT];
|
||||
|
||||
char waterLevel = 144;
|
||||
|
||||
int eventTileCount=0;
|
||||
|
||||
final static byte MAP_DATA = 0;
|
||||
@ -238,4 +240,23 @@ public class Map {
|
||||
data[y*Map.MAP_WIDTH+x]=(char)(t.ordinal());
|
||||
//System.out.println("Tile "+(y*MAP_WIDTH+x)+" is now "+tiles[y*MAP_WIDTH+x]+".");
|
||||
}
|
||||
|
||||
public char getWaterLevel() {
|
||||
return waterLevel;
|
||||
}
|
||||
|
||||
public void setWaterLevel(char waterLevel) {
|
||||
this.waterLevel = waterLevel;
|
||||
}
|
||||
|
||||
/*
|
||||
* This will return the tile's value minus 32768.
|
||||
* This value represents a data tile value, but not
|
||||
* necessarily a data tile.
|
||||
*/
|
||||
public char getDataTileValue(int x,int y) {
|
||||
return (char)(data[y*Map.MAP_WIDTH+x]-32768);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -32,6 +32,10 @@ public class EditorRenderer extends LevelRenderer{
|
||||
final static char CAMERA_SPD = 512;
|
||||
|
||||
boolean dataTileView=false;
|
||||
boolean inputDataTileValue=false;
|
||||
char dataTileValue=0;
|
||||
|
||||
String inputMessageLogDisplay = new String();
|
||||
|
||||
public EditorRenderer(Panel panel) {
|
||||
super(panel);
|
||||
@ -58,27 +62,42 @@ public class EditorRenderer extends LevelRenderer{
|
||||
if (up-down!=0) {
|
||||
setY(Math.max(0,getY()+(down-up)*CAMERA_SPD*updateMult));
|
||||
}
|
||||
boolean left_mb = MouseHeld(MouseEvent.BUTTON1);
|
||||
// boolean middle_mb = MouseHeld(MouseEvent.BUTTON2);
|
||||
// boolean right_mb = MouseHeld(MouseEvent.BUTTON3);
|
||||
|
||||
if(left_mb){
|
||||
int tileX = (int)(RabiClone.MOUSE_POS.getX()+getX())/Tile.TILE_WIDTH;
|
||||
int tileY = (int)(RabiClone.MOUSE_POS.getY()+getY())/Tile.TILE_HEIGHT;
|
||||
if (dataTileView) {
|
||||
RabiClone.CURRENT_MAP.ModifyDataTile(tileX, tileY, selectedDataTile);
|
||||
} else {
|
||||
RabiClone.CURRENT_MAP.ModifyTile(tileX, tileY, selectedTile);
|
||||
if (!inputDataTileValue) {
|
||||
boolean left_mb = MouseHeld(MouseEvent.BUTTON1);
|
||||
// boolean middle_mb = MouseHeld(MouseEvent.BUTTON2);
|
||||
boolean right_mb = MouseHeld(MouseEvent.BUTTON3);
|
||||
|
||||
if(left_mb){
|
||||
int tileX = (int)(RabiClone.MOUSE_POS.getX()+getX())/Tile.TILE_WIDTH;
|
||||
int tileY = (int)(RabiClone.MOUSE_POS.getY()+getY())/Tile.TILE_HEIGHT;
|
||||
if (dataTileView) {
|
||||
RabiClone.CURRENT_MAP.ModifyDataTile(tileX, tileY, selectedDataTile);
|
||||
if (selectedDataTile==DataTile.DATATILE) {
|
||||
inputDataTileValue=true;
|
||||
}
|
||||
} else {
|
||||
RabiClone.CURRENT_MAP.ModifyTile(tileX, tileY, selectedTile);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(KeyHeld(Action.SLIDE)&&KeyHeld(Action.FALL)){
|
||||
AddMessage("Saving map...");
|
||||
try {
|
||||
Map.SaveMap(RabiClone.CURRENT_MAP);
|
||||
AddMessage(RabiClone.CURRENT_MAP.toString()," has been saved successfully.");
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
AddMessage(PaletteColor.RED,"Map failed to save: ",e.getLocalizedMessage());
|
||||
if (right_mb) {
|
||||
int tileX = (int)(RabiClone.MOUSE_POS.getX()+getX())/Tile.TILE_WIDTH;
|
||||
int tileY = (int)(RabiClone.MOUSE_POS.getY()+getY())/Tile.TILE_HEIGHT;
|
||||
if (dataTileView) {
|
||||
RabiClone.CURRENT_MAP.ModifyDataTile(tileX, tileY, DataTile.NULL);
|
||||
} else {
|
||||
RabiClone.CURRENT_MAP.ModifyTile(tileX, tileY, Tile.VOID);
|
||||
}
|
||||
}
|
||||
if(KeyHeld(Action.SLIDE)&&KeyHeld(Action.FALL)){
|
||||
AddMessage("Saving map...");
|
||||
try {
|
||||
Map.SaveMap(RabiClone.CURRENT_MAP);
|
||||
AddMessage(RabiClone.CURRENT_MAP.toString()," has been saved successfully.");
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
AddMessage(PaletteColor.RED,"Map failed to save: ",e.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
updateMessageLog();
|
||||
|
Loading…
x
Reference in New Issue
Block a user