mirror of
https://github.com/Retera/WarsmashModEngine.git
synced 2022-07-31 17:38:59 +02:00
Some small updates, fix shimmering portal render
This commit is contained in:
parent
d7cad72100
commit
c5b61afa28
@ -135,7 +135,7 @@ public class WarsmashGdxFDFTestRenderScreen implements InputProcessor, Screen, S
|
||||
this.uiViewport = new FitViewport(aspect3By4Width, aspect3By4Height, this.uiCamera);
|
||||
this.uiViewport.update(width, height);
|
||||
|
||||
this.uiCamera.position.set(this.getMinWorldWidth() / 2, this.getMinWorldHeight() / 2, 0);
|
||||
this.uiCamera.position.set(getMinWorldWidth() / 2, getMinWorldHeight() / 2, 0);
|
||||
this.uiCamera.update();
|
||||
|
||||
this.batch = new SpriteBatch();
|
||||
@ -166,8 +166,7 @@ public class WarsmashGdxFDFTestRenderScreen implements InputProcessor, Screen, S
|
||||
// WarsmashGdxMapGame.this.viewer.setGameUI(rootFrame);
|
||||
|
||||
if (WarsmashConstants.ENABLE_MUSIC) {
|
||||
final String musicField = rootFrame
|
||||
.getSkinField("GlueMusic_V" + WarsmashConstants.GAME_VERSION);
|
||||
final String musicField = rootFrame.getSkinField("GlueMusic");
|
||||
final String[] musics = musicField.split(";");
|
||||
String musicPath = musics[(int) (Math.random() * musics.length)];
|
||||
if (musicSLK.get(musicPath) != null) {
|
||||
@ -184,11 +183,9 @@ public class WarsmashGdxFDFTestRenderScreen implements InputProcessor, Screen, S
|
||||
WarsmashGdxFDFTestRenderScreen.this.currentMusic = music;
|
||||
}
|
||||
|
||||
WarsmashGdxFDFTestRenderScreen.this
|
||||
.singleModelScene(WarsmashGdxFDFTestRenderScreen.this.scene,
|
||||
War3MapViewer.mdx(rootFrame.getSkinField(
|
||||
"GlueSpriteLayerBackground_V" + WarsmashConstants.GAME_VERSION)),
|
||||
"Stand");
|
||||
WarsmashGdxFDFTestRenderScreen.this.singleModelScene(
|
||||
WarsmashGdxFDFTestRenderScreen.this.scene,
|
||||
War3MapViewer.mdx(rootFrame.getSkinField("GlueSpriteLayerBackground")), "Stand");
|
||||
WarsmashGdxFDFTestRenderScreen.this.modelCamera = WarsmashGdxFDFTestRenderScreen.this.mainModel.cameras
|
||||
.get(0);
|
||||
}
|
||||
@ -200,9 +197,9 @@ public class WarsmashGdxFDFTestRenderScreen implements InputProcessor, Screen, S
|
||||
libgdxContentInstance.setScene(this.uiScene);
|
||||
this.menuUI.main();
|
||||
|
||||
this.updateUIScene();
|
||||
updateUIScene();
|
||||
|
||||
this.resize(width, height);
|
||||
resize(width, height);
|
||||
}
|
||||
|
||||
Gdx.input.setInputProcessor(this);
|
||||
@ -234,8 +231,8 @@ public class WarsmashGdxFDFTestRenderScreen implements InputProcessor, Screen, S
|
||||
this.uiScene.camera.viewport(this.tempRect);
|
||||
final float worldWidth = this.uiViewport.getWorldWidth();
|
||||
final float worldHeight = this.uiViewport.getWorldHeight();
|
||||
final float xScale = worldWidth / this.getMinWorldWidth();
|
||||
final float yScale = worldHeight / this.getMinWorldHeight();
|
||||
final float xScale = worldWidth / getMinWorldWidth();
|
||||
final float yScale = worldHeight / getMinWorldHeight();
|
||||
final float uiSceneWidth = 0.8f * xScale;
|
||||
final float uiSceneHeight = 0.6f * yScale;
|
||||
final float uiSceneX = (0.8f - uiSceneWidth) / 2;
|
||||
@ -251,7 +248,7 @@ public class WarsmashGdxFDFTestRenderScreen implements InputProcessor, Screen, S
|
||||
return new SolvedPath(src, src.substring(src.lastIndexOf('.')), true);
|
||||
}
|
||||
}, null);
|
||||
this.makePerfectSquare(scene, model2, 15);
|
||||
makePerfectSquare(scene, model2, 15);
|
||||
}
|
||||
|
||||
private void singleAcolyteScene(final Scene scene) {
|
||||
@ -314,7 +311,7 @@ public class WarsmashGdxFDFTestRenderScreen implements InputProcessor, Screen, S
|
||||
this.mainModel = null;
|
||||
}
|
||||
else {
|
||||
this.singleModelScene(this.scene, War3MapViewer.mdx(path), "birth");
|
||||
singleModelScene(this.scene, War3MapViewer.mdx(path), "birth");
|
||||
WarsmashGdxFDFTestRenderScreen.this.modelCamera = WarsmashGdxFDFTestRenderScreen.this.mainModel.cameras
|
||||
.get(0);
|
||||
// this hack is because we only have the queued animation system in RenderWidget
|
||||
@ -569,10 +566,10 @@ public class WarsmashGdxFDFTestRenderScreen implements InputProcessor, Screen, S
|
||||
// super.resize(width, height);
|
||||
|
||||
this.uiViewport.update(width, height);
|
||||
this.uiCamera.position.set(this.getMinWorldWidth() / 2, this.getMinWorldHeight() / 2, 0);
|
||||
this.uiCamera.position.set(getMinWorldWidth() / 2, getMinWorldHeight() / 2, 0);
|
||||
|
||||
this.menuUI.resize();
|
||||
this.updateUIScene();
|
||||
updateUIScene();
|
||||
|
||||
}
|
||||
|
||||
@ -615,7 +612,7 @@ public class WarsmashGdxFDFTestRenderScreen implements InputProcessor, Screen, S
|
||||
this.quatHeap = new Quaternion();
|
||||
this.quatHeap2 = new Quaternion();
|
||||
|
||||
this.updateCamera();
|
||||
updateCamera();
|
||||
|
||||
// cameraUpdate();
|
||||
}
|
||||
@ -793,7 +790,7 @@ public class WarsmashGdxFDFTestRenderScreen implements InputProcessor, Screen, S
|
||||
|
||||
@Override
|
||||
public void renderTranslucent() {
|
||||
WarsmashGdxFDFTestRenderScreen.this.renderLibGDXContent();
|
||||
renderLibGDXContent();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -31,7 +31,6 @@ import com.etheller.warsmash.units.DataTable;
|
||||
import com.etheller.warsmash.units.Element;
|
||||
import com.etheller.warsmash.util.ImageUtils;
|
||||
import com.etheller.warsmash.util.StringBundle;
|
||||
import com.etheller.warsmash.util.WarsmashConstants;
|
||||
import com.etheller.warsmash.viewer5.Camera;
|
||||
import com.etheller.warsmash.viewer5.CanvasProvider;
|
||||
import com.etheller.warsmash.viewer5.Model;
|
||||
@ -207,9 +206,8 @@ public class WarsmashGdxMenuScreen implements InputProcessor, Screen, SingleMode
|
||||
public void onCreate(final GameUI rootFrame) {
|
||||
// WarsmashGdxMapGame.this.viewer.setGameUI(rootFrame);
|
||||
|
||||
singleModelScene(WarsmashGdxMenuScreen.this.scene, War3MapViewer.mdx(rootFrame
|
||||
.getSkinField("GlueSpriteLayerBackground_V" + WarsmashConstants.GAME_VERSION)),
|
||||
"Stand");
|
||||
singleModelScene(WarsmashGdxMenuScreen.this.scene,
|
||||
War3MapViewer.mdx(rootFrame.getSkinField("GlueSpriteLayerBackground")), "Stand");
|
||||
if (!WarsmashGdxMenuScreen.this.mainModel.cameras.isEmpty()) {
|
||||
WarsmashGdxMenuScreen.this.modelCamera = WarsmashGdxMenuScreen.this.mainModel.cameras
|
||||
.get(0);
|
||||
|
@ -22,6 +22,9 @@ public class SingleStringFrame extends AbstractRenderableFrame {
|
||||
public SingleStringFrame(final String name, final UIFrame parent, final Color color, final TextJustify justifyH,
|
||||
final TextJustify justifyV, final BitmapFont frameFont) {
|
||||
super(name, parent);
|
||||
if (color == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
this.color = color;
|
||||
this.justifyH = justifyH;
|
||||
this.justifyV = justifyV;
|
||||
@ -37,6 +40,9 @@ public class SingleStringFrame extends AbstractRenderableFrame {
|
||||
}
|
||||
|
||||
public void setColor(final Color color) {
|
||||
if (color == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
this.color = color;
|
||||
}
|
||||
|
||||
|
@ -82,6 +82,7 @@ import com.etheller.warsmash.viewer5.handlers.w3x.simulation.CUnitType;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.CWidget;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.CAbility;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.GetAbilityByRawcodeVisitor;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.generic.AbstractGenericAliasedAbility;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.generic.CLevelingAbility;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.inventory.CAbilityInventory;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.mine.CAbilityBlightedGoldMine;
|
||||
@ -649,6 +650,53 @@ public class Jass2 {
|
||||
return new StringJassValue("");
|
||||
}
|
||||
});
|
||||
jassProgramVisitor.getJassNativeManager().createNative("BlzGetUnitAbilityByIndex", new JassFunction() {
|
||||
@Override
|
||||
public JassValue call(final List<JassValue> arguments, final GlobalScope globalScope,
|
||||
final TriggerExecutionScope triggerScope) {
|
||||
final CUnit whichUnit = arguments.get(0).visit(ObjectJassValueVisitor.getInstance());
|
||||
final int whichAbilityIndex = arguments.get(1).visit(IntegerJassValueVisitor.getInstance());
|
||||
|
||||
final List<CAbility> abilities = whichUnit.getAbilities();
|
||||
if (whichAbilityIndex < abilities.size()) {
|
||||
return new HandleJassValue(abilityType, abilities.get(whichAbilityIndex));
|
||||
}
|
||||
else {
|
||||
return new HandleJassValue(abilityType, null);
|
||||
}
|
||||
}
|
||||
});
|
||||
jassProgramVisitor.getJassNativeManager().createNative("WarsmashGetAbilityTypeId", new JassFunction() {
|
||||
|
||||
@Override
|
||||
public JassValue call(final List<JassValue> arguments, final GlobalScope globalScope,
|
||||
final TriggerExecutionScope triggerScope) {
|
||||
final CAbility ability = arguments.get(0).visit(ObjectJassValueVisitor.getInstance());
|
||||
if (ability instanceof AbstractGenericAliasedAbility) {
|
||||
final AbstractGenericAliasedAbility aliasedAbility = (AbstractGenericAliasedAbility) ability;
|
||||
return new IntegerJassValue(aliasedAbility.getAlias().getValue());
|
||||
}
|
||||
return IntegerJassValue.ZERO;
|
||||
}
|
||||
});
|
||||
jassProgramVisitor.getJassNativeManager().createNative("WarsmashGetAbilityClassName", new JassFunction() {
|
||||
|
||||
@Override
|
||||
public JassValue call(final List<JassValue> arguments, final GlobalScope globalScope,
|
||||
final TriggerExecutionScope triggerScope) {
|
||||
final CAbility ability = arguments.get(0).visit(ObjectJassValueVisitor.getInstance());
|
||||
return new StringJassValue(ability.getClass().getSimpleName());
|
||||
}
|
||||
});
|
||||
jassProgramVisitor.getJassNativeManager().createNative("WarsmashGetRawcode2String", new JassFunction() {
|
||||
|
||||
@Override
|
||||
public JassValue call(final List<JassValue> arguments, final GlobalScope globalScope,
|
||||
final TriggerExecutionScope triggerScope) {
|
||||
final int rawcode = arguments.get(0).visit(IntegerJassValueVisitor.getInstance());
|
||||
return new StringJassValue(new War3ID(rawcode).toString());
|
||||
}
|
||||
});
|
||||
jassProgramVisitor.getJassNativeManager().createNative("GetObjectName", new JassFunction() {
|
||||
@Override
|
||||
public JassValue call(final List<JassValue> arguments, final GlobalScope globalScope,
|
||||
@ -1325,6 +1373,9 @@ public class Jass2 {
|
||||
.visit(ObjectJassValueVisitor.<List<CPlayerJass>>getInstance());
|
||||
final CPlayerJass player = arguments.get(1)
|
||||
.visit(ObjectJassValueVisitor.<CPlayerJass>getInstance());
|
||||
if (force == null) {
|
||||
throw new JassException(globalScope, "force is null", new NullPointerException());
|
||||
}
|
||||
force.add(player);
|
||||
return null;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ public class WarsmashConstants {
|
||||
// find it yet so I used this
|
||||
public static final String DEFAULT_STRING = "Default string";
|
||||
|
||||
public static final boolean CATCH_CURSOR = false;
|
||||
public static final boolean CATCH_CURSOR = true;
|
||||
public static final boolean VERBOSE_LOGGING = false;
|
||||
public static final boolean ENABLE_DEBUG = false;
|
||||
public static final char SPECIAL_ESCAPE_KEYCODE = 0x7E;
|
||||
@ -38,7 +38,7 @@ public class WarsmashConstants {
|
||||
// workaround to fix it if you need the local files
|
||||
// to take priority over built-ins for tilesets.
|
||||
public static final boolean FIX_FLAT_FILES_TILESET_LOADING = false;
|
||||
public static final boolean ENABLE_MUSIC = false;
|
||||
public static final boolean ENABLE_MUSIC = true;
|
||||
public static final boolean LOAD_UNITS_FROM_WORLDEDIT_DATA = false;
|
||||
public static final boolean CRASH_ON_INCOMPATIBLE_132_FEATURES = false;
|
||||
public static final boolean FIRE_DEATH_EVENTS_ON_REMOVEUNIT = false;
|
||||
|
@ -119,7 +119,8 @@ public abstract class SkeletalNode extends GenericNode {
|
||||
computedRotation.mul(scene.camera.inverseRotation);
|
||||
}
|
||||
|
||||
this.convertBasis(computedRotation);
|
||||
convertBasis(computedRotation);
|
||||
computedRotation.mul(this.localRotation);
|
||||
}
|
||||
else {
|
||||
computedRotation = rotationHeap.set(this.localRotation);
|
||||
|
@ -182,27 +182,27 @@ public class PlayerSlotPane {
|
||||
|
||||
public void setTextFromRacePreference(final GameUI rootFrame, final CPlayerJass player) {
|
||||
final MenuFrame menuFrame = (MenuFrame) this.raceMenu.getPopupMenuFrame();
|
||||
if (player.isRacePrefSet(CRacePreference.RANDOM)) {
|
||||
if (player.isRacePrefSet(CRacePreference.RANDOM) && (menuFrame.getMenuItemCount() > 0)) {
|
||||
rootFrame.setText(
|
||||
((StringFrame) ((GlueTextButtonFrame) this.raceMenu.getPopupTitleFrame()).getButtonText()),
|
||||
menuFrame.getMenuItem(0).getText());
|
||||
}
|
||||
else if (player.isRacePrefSet(CRacePreference.HUMAN)) {
|
||||
else if (player.isRacePrefSet(CRacePreference.HUMAN) && (menuFrame.getMenuItemCount() > 1)) {
|
||||
rootFrame.setText(
|
||||
((StringFrame) ((GlueTextButtonFrame) this.raceMenu.getPopupTitleFrame()).getButtonText()),
|
||||
menuFrame.getMenuItem(1).getText());
|
||||
}
|
||||
else if (player.isRacePrefSet(CRacePreference.ORC)) {
|
||||
else if (player.isRacePrefSet(CRacePreference.ORC) && (menuFrame.getMenuItemCount() > 2)) {
|
||||
rootFrame.setText(
|
||||
((StringFrame) ((GlueTextButtonFrame) this.raceMenu.getPopupTitleFrame()).getButtonText()),
|
||||
menuFrame.getMenuItem(2).getText());
|
||||
}
|
||||
else if (player.isRacePrefSet(CRacePreference.UNDEAD)) {
|
||||
else if (player.isRacePrefSet(CRacePreference.UNDEAD) && (menuFrame.getMenuItemCount() > 3)) {
|
||||
rootFrame.setText(
|
||||
((StringFrame) ((GlueTextButtonFrame) this.raceMenu.getPopupTitleFrame()).getButtonText()),
|
||||
menuFrame.getMenuItem(3).getText());
|
||||
}
|
||||
else if (player.isRacePrefSet(CRacePreference.NIGHTELF)) {
|
||||
else if (player.isRacePrefSet(CRacePreference.NIGHTELF) && (menuFrame.getMenuItemCount() > 4)) {
|
||||
rootFrame.setText(
|
||||
((StringFrame) ((GlueTextButtonFrame) this.raceMenu.getPopupTitleFrame()).getButtonText()),
|
||||
menuFrame.getMenuItem(4).getText());
|
||||
|
@ -3,6 +3,7 @@ package com.etheller.warsmash.viewer5.handlers.w3x.ui.mapsetup;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.utils.viewport.Viewport;
|
||||
import com.etheller.warsmash.datasources.DataSource;
|
||||
import com.etheller.warsmash.parsers.fdf.GameUI;
|
||||
@ -40,8 +41,8 @@ public class TeamSetupPane {
|
||||
int forceIndex = 0;
|
||||
for (final Force force : mapInfo.getForces()) {
|
||||
final StringFrame forceLabelString = rootFrame.createStringFrame(
|
||||
"SmashForce" + forceIndex + "NameLabel", rootFrame, null, TextJustify.LEFT, TextJustify.MIDDLE,
|
||||
0.01f);
|
||||
"SmashForce" + forceIndex + "NameLabel", rootFrame, Color.WHITE, TextJustify.LEFT,
|
||||
TextJustify.MIDDLE, 0.01f);
|
||||
rootFrame.setText(forceLabelString, rootFrame.getTrigStr(force.getName()));
|
||||
for (int i = 0; (i < WarsmashConstants.MAX_PLAYERS) && (usedSlots < playerCount); i++) {
|
||||
final CBasePlayer player = config.getPlayer(i);
|
||||
|
@ -21,6 +21,15 @@ application {
|
||||
applicationDefaultJvmArgs = []
|
||||
}
|
||||
|
||||
task runGame(dependsOn: classes, type: JavaExec) {
|
||||
main = project.mainClassName
|
||||
classpath = sourceSets.main.runtimeClasspath
|
||||
standardInput = System.in
|
||||
workingDir = project.assetsDir
|
||||
ignoreExitValue = true
|
||||
args cmdargs.split()
|
||||
}
|
||||
|
||||
task debug(dependsOn: classes, type: JavaExec) {
|
||||
main = project.mainClassName
|
||||
classpath = sourceSets.main.runtimeClasspath
|
||||
|
@ -43,6 +43,7 @@ import com.etheller.warsmash.viewer5.gl.WireframeExtension;
|
||||
|
||||
public class DesktopLauncher {
|
||||
public static void main(final String[] arg) {
|
||||
System.out.println("You ran it.");
|
||||
final LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
|
||||
config.useGL30 = true;
|
||||
config.gles30ContextMajorVersion = 3;
|
||||
@ -184,8 +185,8 @@ public class DesktopLauncher {
|
||||
}
|
||||
};
|
||||
Extensions.audio = new AudioExtension() {
|
||||
final FloatBuffer orientation = (FloatBuffer)BufferUtils.createFloatBuffer(6).clear();
|
||||
final FloatBuffer position = (FloatBuffer)BufferUtils.createFloatBuffer(3).clear();
|
||||
final FloatBuffer orientation = BufferUtils.createFloatBuffer(6).clear();
|
||||
final FloatBuffer position = BufferUtils.createFloatBuffer(3).clear();
|
||||
|
||||
@Override
|
||||
public float getDuration(final Sound sound) {
|
||||
|
@ -267,12 +267,12 @@ EXITWHEN : 'exitwhen';
|
||||
DEBUG : 'debug';
|
||||
|
||||
fragment ESCAPED_QUOTE : '\\"';
|
||||
STRING_LITERAL : '"' ( ESCAPED_QUOTE | ~('\n'|'\r') )*? '"';
|
||||
STRING_LITERAL : '"' ( ESCAPED_QUOTE | . )*? '"';
|
||||
|
||||
|
||||
INTEGER : [0]|([1-9][0-9]*) ;
|
||||
|
||||
HEX_CONSTANT : '0x'(([0-9]|[a-f])*) ;
|
||||
|
||||
HEX_CONSTANT : '0x'(([0-9]|[a-f]|[A-F])*) ;
|
||||
DOLLAR_HEX_CONSTANT : '$'(([0-9]|[A-F])*) ;
|
||||
|
||||
RAWCODE : ('\''.*?'\'');
|
||||
|
Loading…
Reference in New Issue
Block a user