mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-08 12:51:51 +09:00
successfully implemented fluidal movement resistance, batch command processing
Former-commit-id: 64282c01aac622cce25cf7c9a79f53059d8f6547 Former-commit-id: d96a602887400c91bfee7660c29f12118858e6f3
This commit is contained in:
@@ -255,7 +255,7 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
|
||||
veloY += clampCeil(
|
||||
((W - D) / mass) * SI_TO_GAME_ACC * G_MUL_PLAYABLE_CONST
|
||||
* mvmtRstcToMultiplier(fluidResistance) // eliminate shoot-up from fluids
|
||||
// * mvmtRstcToMultiplier(fluidResistance) // eliminate shoot-up from fluids
|
||||
, VELO_HARD_LIMIT
|
||||
);
|
||||
}
|
||||
@@ -493,7 +493,7 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
veloY -= ((fluidDensity - this.density)
|
||||
* map.getGravitation() * submergedVolume
|
||||
* Math.pow(mass, -1)
|
||||
* mvmtRstcToMultiplier(fluidResistance) // eliminate shoot-up
|
||||
// * mvmtRstcToMultiplier(fluidResistance) // eliminate shoot-up
|
||||
* SI_TO_GAME_ACC);
|
||||
}
|
||||
}
|
||||
@@ -615,8 +615,8 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
return density;
|
||||
}
|
||||
|
||||
private float mvmtRstcToMultiplier(int viscosity) {
|
||||
return 1f / (1 + (viscosity / 16f));
|
||||
private float mvmtRstcToMultiplier(int movementResistanceValue) {
|
||||
return 1f / (1 + (movementResistanceValue / 16f));
|
||||
}
|
||||
|
||||
private void clampHitbox() {
|
||||
@@ -634,9 +634,17 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
}
|
||||
|
||||
private void updateNextHitboxFromVelo() {
|
||||
float fluidResistance = mvmtRstcToMultiplier(getTileMvmtRstc());
|
||||
|
||||
nextHitbox.set(
|
||||
Math.round(hitbox.getPosX() + veloX)
|
||||
, Math.round(hitbox.getPosY() + veloY)
|
||||
Math.round(hitbox.getPosX()
|
||||
+ (veloX
|
||||
* (isNoSubjectToFluidResistance() ? 1 : fluidResistance)
|
||||
))
|
||||
, Math.round(hitbox.getPosY()
|
||||
+ (veloY
|
||||
* (isNoSubjectToFluidResistance() ? 1 : fluidResistance)
|
||||
))
|
||||
, Math.round(baseHitboxW * scale)
|
||||
, Math.round(baseHitboxH * scale)
|
||||
/** Full quantisation; wonder what havoc these statements would wreak...
|
||||
|
||||
@@ -15,11 +15,10 @@ public class Authenticator implements ConsoleCommand {
|
||||
public void execute(String[] args) {
|
||||
if (args.length == 2) {
|
||||
String pwd = args[1];
|
||||
|
||||
String hashedPwd = DigestUtils.sha256Hex(pwd);
|
||||
|
||||
if ("54c5b3dd459d5ef778bb2fa1e23a5fb0e1b62ae66970bcb436e8f81a1a1a8e41".equalsIgnoreCase(hashedPwd)) {
|
||||
// alpine
|
||||
if ("54c5b3dd459d5ef778bb2fa1e23a5fb0e1b62ae66970bcb436e8f81a1a1a8e41"
|
||||
.equalsIgnoreCase(hashedPwd)) { // alpine
|
||||
String msg = (a) ? "Locked" : "Authenticated";
|
||||
new Echo().execute(msg);
|
||||
System.out.println("[Authenticator] " + msg);
|
||||
|
||||
25
src/com/Torvald/Terrarum/ConsoleCommand/Batch.java
Normal file
25
src/com/Torvald/Terrarum/ConsoleCommand/Batch.java
Normal file
@@ -0,0 +1,25 @@
|
||||
package com.Torvald.Terrarum.ConsoleCommand;
|
||||
|
||||
import java.nio.file.FileSystems;
|
||||
import java.nio.file.Files;
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 16-03-07.
|
||||
*/
|
||||
public class Batch implements ConsoleCommand {
|
||||
@Override
|
||||
public void execute(String[] args) throws Exception {
|
||||
if (args.length == 2) {
|
||||
Files.lines(FileSystems.getDefault().getPath(args[1])).forEach
|
||||
(CommandInterpreter::execute);
|
||||
}
|
||||
else {
|
||||
printUsage();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printUsage() {
|
||||
new Echo().execute("batch path/to/batch.txt");
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@ public class CommandDict {
|
||||
public CommandDict() {
|
||||
dict = new Hashtable<>();
|
||||
|
||||
dict.put("echo", new Echo());
|
||||
dict.put("setav", new SetAV());
|
||||
dict.put("qqq", new QuitApp());
|
||||
dict.put("codex", new CodexEdictis());
|
||||
@@ -27,6 +28,7 @@ public class CommandDict {
|
||||
dict.put("setlocale", new SetLocale());
|
||||
dict.put("zoom", new Zoom());
|
||||
dict.put("teleport", new TeleportPlayer());
|
||||
dict.put("tp", dict.get("teleport"));
|
||||
dict.put("cat", new CatStdout());
|
||||
dict.put("exportav", new ExportAV());
|
||||
dict.put("gsontest", new GsonTest());
|
||||
@@ -34,6 +36,7 @@ public class CommandDict {
|
||||
dict.put("getfaction", new GetFactioning());
|
||||
dict.put("auth", Terrarum.game.auth);
|
||||
dict.put("spawnball", new SpawnPhysTestBall());
|
||||
dict.put("batch", new Batch());
|
||||
}
|
||||
|
||||
public static ConsoleCommand getCommand(String commandName) {
|
||||
|
||||
@@ -1,17 +1,24 @@
|
||||
package com.Torvald.Terrarum.ConsoleCommand;
|
||||
|
||||
import com.Torvald.Terrarum.Game;
|
||||
import com.Torvald.Terrarum.Terrarum;
|
||||
import com.Torvald.Terrarum.UserInterface.ConsoleWindow;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 16-01-16.
|
||||
*/
|
||||
class Echo implements ConsoleCommand {
|
||||
@Override
|
||||
public void execute(String[] args) {
|
||||
((ConsoleWindow) Terrarum.game.consoleHandler.getUI())
|
||||
.sendMessage(args.toString());
|
||||
String[] argsWoHeader = new String[args.length - 1];
|
||||
for (int i = 0; i < argsWoHeader.length; i++)
|
||||
argsWoHeader[i] = args[i + 1];
|
||||
|
||||
Arrays.asList(argsWoHeader).forEach(
|
||||
((ConsoleWindow) Terrarum.game.consoleHandler.getUI())::sendMessage
|
||||
);
|
||||
}
|
||||
|
||||
public void execute(String single_line) {
|
||||
|
||||
@@ -34,14 +34,14 @@
|
||||
"9"; "0";"TILE_SNOW" ; "8205"; "6"; "500"; "0"; "0"; "1"; "1"; "0"; "1"; "9"; "0"; "0";"16"
|
||||
"9"; "1";"TILE_ICE_FRAGILE" ; "3282"; "1"; "930"; "0"; "0"; "1"; "0"; "0"; "0"; "9"; "1"; "0";"16"
|
||||
"9"; "2";"TILE_ICE_NATURAL" ; "6564"; "25"; "930"; "0"; "0"; "1"; "1"; "0"; "1"; "9"; "2"; "0"; "8"
|
||||
"9"; "3";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25";"2785"; "0"; "0"; "1"; "1"; "5009"; "0"; "9"; "3"; "0"; "8"
|
||||
"9"; "3";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25";"3720"; "0"; "0"; "1"; "1"; "5009"; "0"; "9"; "3"; "0"; "8"
|
||||
"10"; "0";"TILE_PLATFORM_STONE" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "0"; "0";"16"
|
||||
"10"; "1";"TILE_PLATFORM_WOODEN" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "1"; "0";"16"
|
||||
"10"; "2";"TILE_PLATFORM_EBONY" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "2"; "0";"16"
|
||||
"10"; "3";"TILE_PLATFORM_BIRCH" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "3"; "0";"16"
|
||||
"10"; "4";"TILE_PLATFORM_BLOODROSE" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "4"; "0";"16"
|
||||
"11"; "0";"TILE_TORCH" ; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "63412"; "0"; "11"; "0"; "0";"16"
|
||||
"254"; "15";"TILE_WATER" ; "6522"; "100";"1000"; "1"; "16"; "0"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||
"254"; "15";"TILE_WATER" ; "6522"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||
"255"; "15";"TILE_LAVA" ; "62358"; "100";"2600"; "1"; "48"; "0"; "0"; "48320"; "0"; "N/A"; "N/A"; "0";"16"
|
||||
# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky
|
||||
# Opacity/Lumcolor: 40-step RGB
|
||||
@@ -50,7 +50,7 @@
|
||||
# movr: Movement resistance, (walkspeedmax) / (1 + (n/16)), 16 halves movement speed
|
||||
# spcg: specific gravity, aka density. [g/l]
|
||||
# Defalut torch should have a colour of 63412 (ffa44e) : real candlelight colour taken from properly configured camera.
|
||||
# Assume magical ice as Ice-X.
|
||||
# Magical ice: theoretical __metallic__ ice that might form under super-high pressure (> 5 TPa). Its density is a wild guess.
|
||||
# References:
|
||||
# * Density of various woods : http://www.engineeringtoolbox.com/wood-density-d_40.html
|
||||
# * Density of various phases of ice : http://www1.lsbu.ac.uk/water/ice_phases.html
|
||||
|
Can't render this file because it contains an unexpected character in line 1 and column 18.
|
Reference in New Issue
Block a user