|
@@ -10,6 +10,7 @@ import me.hammerle.snuviengine.api.KeyBinding;
|
|
|
import me.hammerle.snuviengine.api.Shader;
|
|
|
import me.hammerle.snuviscript.code.SnuviParser;
|
|
|
import me.hammerle.supersnuvi.entity.Entity;
|
|
|
+import me.hammerle.supersnuvi.entity.EntityBuilder;
|
|
|
import me.hammerle.supersnuvi.gamelogic.Level;
|
|
|
import me.hammerle.supersnuvi.gamelogic.StartScreenLevel;
|
|
|
import me.hammerle.supersnuvi.savegame.SimpleConfig;
|
|
@@ -40,7 +41,7 @@ public class Game extends Engine
|
|
|
public static final NullTile FALLBACK_TILE = new NullTile();
|
|
|
|
|
|
// tiles
|
|
|
- private final Tile[] registeredTiles = new Tile[71];
|
|
|
+ private final Tile[] registeredTiles = new Tile[72];
|
|
|
|
|
|
// levels
|
|
|
private Level currentLevel = null;
|
|
@@ -626,6 +627,8 @@ public class Game extends Engine
|
|
|
|
|
|
// test interact tile
|
|
|
registeredTiles[70] = new InteractTile(0.5625f, 0.0f, 0.625f, 0.0625f);
|
|
|
+ // test hit tile
|
|
|
+ registeredTiles[71] = new HeadHitBlock(0.5625f, 0.0f, 0.625f, 0.0625f);
|
|
|
}
|
|
|
|
|
|
public Tile getTile(int id)
|
|
@@ -715,6 +718,7 @@ public class Game extends Engine
|
|
|
snuviParser.registerFunction("level.getheight", (sc, in) -> (double) currentLevel.getHeight());
|
|
|
snuviParser.registerFunction("level.getlayers", (sc, in) -> (double) currentLevel.getData().getLayers());
|
|
|
snuviParser.registerFunction("level.getbackgroundindex", (sc, in) -> (double) currentLevel.getData().getBackgroundIndex());
|
|
|
+ snuviParser.registerFunction("level.gettile", (sc, in) -> currentLevel.getData().getTile(in[0].getInt(sc), in[1].getInt(sc), in[2].getInt(sc)));
|
|
|
snuviParser.registerFunction("level.settile", (sc, in) ->
|
|
|
{
|
|
|
int layer = in[0].getInt(sc);
|
|
@@ -747,5 +751,39 @@ public class Game extends Engine
|
|
|
ent.setPosition(x, y);
|
|
|
return Void.TYPE;
|
|
|
});
|
|
|
+ snuviParser.registerFunction("entity.getmotionx", (sc, in) -> (double) ((Entity) in[0].get(sc)).getMotionX());
|
|
|
+ snuviParser.registerFunction("entity.getmotiony", (sc, in) -> (double) ((Entity) in[0].get(sc)).getMotionY());
|
|
|
+ snuviParser.registerFunction("entity.setmotionx", (sc, in) ->
|
|
|
+ {
|
|
|
+ ((Entity) in[0].get(sc)).setMotionX(in[1].getFloat(sc));
|
|
|
+ return Void.TYPE;
|
|
|
+ });
|
|
|
+ snuviParser.registerFunction("entity.setmotiony", (sc, in) ->
|
|
|
+ {
|
|
|
+ ((Entity) in[0].get(sc)).setMotionY(in[1].getFloat(sc));
|
|
|
+ return Void.TYPE;
|
|
|
+ });
|
|
|
+ snuviParser.registerFunction("entity.ishero", (sc, in) -> currentLevel.getHero() == in[0].get(sc));
|
|
|
+ snuviParser.registerFunction("entity.gethealth", (sc, in) -> ((Entity) in[0].get(sc)).getHealth().getHealthPercent());
|
|
|
+ snuviParser.registerFunction("entity.addhealth", (sc, in) ->
|
|
|
+ {
|
|
|
+ ((Entity) in[0].get(sc)).getHealth().addHealthPercent(in[1].getFloat(sc));
|
|
|
+ return Void.TYPE;
|
|
|
+ });
|
|
|
+ snuviParser.registerFunction("entity.getenergy", (sc, in) -> ((Entity) in[0].get(sc)).getEnergy().getEnergyPercent());
|
|
|
+ snuviParser.registerFunction("entity.addenergy", (sc, in) ->
|
|
|
+ {
|
|
|
+ ((Entity) in[0].get(sc)).getEnergy().addEnergyPercent(in[1].getFloat(sc));
|
|
|
+ return Void.TYPE;
|
|
|
+ });
|
|
|
+ snuviParser.registerFunction("entity.spawn", (sc, in) ->
|
|
|
+ {
|
|
|
+ Entity ent = EntityBuilder.fromId(in[0].getInt(sc), currentLevel, in[1].getFloat(sc), in[2].getFloat(sc));
|
|
|
+ if(ent != null)
|
|
|
+ {
|
|
|
+ currentLevel.spawnEntity(ent);
|
|
|
+ }
|
|
|
+ return ent;
|
|
|
+ });
|
|
|
}
|
|
|
}
|