Skip to content

Commit

Permalink
Merge branch 'master' into release0.5
Browse files Browse the repository at this point in the history
  • Loading branch information
exch-bms2 committed Sep 7, 2017
2 parents fbdc19e + 6d974c9 commit d2f08da
Show file tree
Hide file tree
Showing 28 changed files with 898 additions and 708 deletions.
80 changes: 79 additions & 1 deletion src/bms/player/beatoraja/MainController.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import java.util.logging.Logger;

import bms.player.beatoraja.play.TargetProperty;
import bms.player.beatoraja.select.bar.TableBar;
import bms.player.beatoraja.skin.SkinLoader;
import bms.player.beatoraja.skin.SkinProperty;
import com.badlogic.gdx.Graphics;
Expand Down Expand Up @@ -338,7 +339,12 @@ public void render() {
systemfont.draw(sprite, "Screen shot saved : " + screenshot.path, 100,
config.getResolution().height - 2);
sprite.end();
}
} else if(updateSong != null && updateSong.isAlive()) {
sprite.begin();
systemfont.setColor(0,1,1,0.5f + (System.currentTimeMillis() % 500) / 1000.0f);
systemfont.draw(sprite, updateSong.message, 100, config.getResolution().height - 2);
sprite.end();
}

final long time = System.currentTimeMillis();
if(time > prevtime) {
Expand Down Expand Up @@ -530,4 +536,76 @@ public void run() {
savetime = System.currentTimeMillis();
}
}

private UpdateThread updateSong;

public void updateSong(String path) {
if (updateSong == null || !updateSong.isAlive()) {
updateSong = new SongUpdateThread(path);
updateSong.start();
} else {
Logger.getGlobal().warning("楽曲更新中のため、更新要求は取り消されました");
}
}

public void updateTable(TableBar reader) {
if (updateSong == null || !updateSong.isAlive()) {
updateSong = new TableUpdateThread(reader);
updateSong.start();
} else {
Logger.getGlobal().warning("楽曲更新中のため、更新要求は取り消されました");
}
}

abstract class UpdateThread extends Thread {

private String message;

public UpdateThread(String message) {
this.message = message;
}
}

/**
* 楽曲データベース更新用スレッド
*
* @author exch
*/
class SongUpdateThread extends UpdateThread {

private final String path;

public SongUpdateThread(String path) {
super("updating folder : " + (path == null ? "ALL" : path));
this.path = path;
}

public void run() {
getSongDatabase().updateSongDatas(path, false, getInfoDatabase());
}
}

/**
* 難易度表更新用スレッド
*
* @author exch
*/
class TableUpdateThread extends UpdateThread {

private final TableBar accessor;

public TableUpdateThread(TableBar bar) {
super("updating table : " + bar.getReader().name);
accessor = bar;
}

public void run() {
TableData td = accessor.getReader().read();
if (td != null) {
new TableDataAccessor().write(td);
accessor.setTableData(td);
}
}
}

}
17 changes: 16 additions & 1 deletion src/bms/player/beatoraja/PlayConfigurationView.fxml
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,22 @@
</HBox>
<CheckBox fx:id="usecim" mnemonicParsing="false" prefHeight="25.0" prefWidth="360.0" text="%CACHE_SKIN_IMAGE" />
<CheckBox fx:id="useSongInfo" mnemonicParsing="false" prefHeight="18.0" prefWidth="275.0" text="%USE_SONGINFO" />
<HBox prefHeight="37.0" prefWidth="723.0">

<HBox prefHeight="37.0" prefWidth="723.0">
<children>
<Label contentDisplay="CENTER" prefHeight="18.0" prefWidth="200.0" text="%MISSLAYER_DURATION" textAlignment="CENTER">
<tooltip>
<Tooltip text="Set miss layer display time (ms)" textAlignment="CENTER" />
</tooltip></Label>
<Spinner fx:id="misslayertime" editable="true">
<valueFactory>
<SpinnerValueFactory.IntegerSpinnerValueFactory amountToStepBy="1" initialValue="500" max="10000" min="0" />
</valueFactory>
</Spinner>
</children>
</HBox>

<HBox prefHeight="37.0" prefWidth="723.0">
<children>
<Label prefHeight="18.0" prefWidth="127.0" text="%AUTO_SAVE_REPLAY1" />
<ComboBox fx:id="autosavereplay1" prefWidth="150.0" />
Expand Down
7 changes: 7 additions & 0 deletions src/bms/player/beatoraja/PlayConfigurationView.java
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,8 @@ public class PlayConfigurationView implements Initializable {
private Slider bgvolume;
@FXML
private ComboBox<Integer> judgealgorithm;
@FXML
private Spinner<Integer> misslayertime;

@FXML
private ComboBox<Integer> autosavereplay1;
Expand Down Expand Up @@ -371,6 +373,8 @@ public void updatePlayer() {
judgeregion.setSelected(player.isShowjudgearea());
markprocessednote.setSelected(player.isMarkprocessednote());

misslayertime.getValueFactory().setValue(player.getMisslayerDuration());

irname.setValue(player.getIrname());
iruserid.setText(player.getUserid());
irpassword.setText(player.getPassword());
Expand Down Expand Up @@ -454,6 +458,9 @@ public void commitPlayer() {
player.setMarkprocessednote(markprocessednote.isSelected());

player.setShowjudgearea(judgeregion.isSelected());

player.setMisslayerDuration(getValue(misslayertime));

player.setIrname(irname.getValue());
player.setUserid(iruserid.getText());
player.setPassword(irpassword.getText());
Expand Down
6 changes: 4 additions & 2 deletions src/bms/player/beatoraja/PlayerConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,10 @@ public class PlayerConfig {
* 選曲時のモードフィルター
*/
private Mode mode = null;

private int misslayerDuration = 0;
/**
* 指定がない場合のミスレイヤー表示時間(ms)
*/
private int misslayerDuration = 500;

/**
* アシストオプション:コンスタント
Expand Down
22 changes: 17 additions & 5 deletions src/bms/player/beatoraja/TableDataAccessor.java
Original file line number Diff line number Diff line change
Expand Up @@ -147,16 +147,23 @@ public TableData read(String name) {
return td;
}

public interface TableReader {
public static abstract class TableReader {

public TableData read();
public final String name;

public TableReader(String name) {
this.name = name;
}

public abstract TableData read();
}

public static class DifficultyTableReader implements TableReader {
public static class DifficultyTableReader extends TableReader {

private final String url;
private String url;

public DifficultyTableReader(String url) {
super(url);
this.url = url;
}

Expand Down Expand Up @@ -210,7 +217,12 @@ public TableData read() {
SongData[] songs = new SongData[g.getHash().length];
for(int i = 0;i < songs.length;i++) {
songs[i] = new SongData();
songs[i].setMd5(g.getHash()[i]);
final String hash = g.getHash()[i];
if (hash.length() == 32) {
songs[i].setMd5(hash);
} else if (hash.length() == 64) {
songs[i].setSha256(hash);
}
}
cd.setSong(songs);
List<CourseData.CourseDataConstraint> l = new ArrayList<>();
Expand Down
8 changes: 6 additions & 2 deletions src/bms/player/beatoraja/external/BMSSearchAccessor.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,12 @@
import bms.player.beatoraja.*;
import bms.player.beatoraja.TableData.TableFolder;

public class BMSSearchAccessor implements TableDataAccessor.TableReader {

public class BMSSearchAccessor extends TableDataAccessor.TableReader {

public BMSSearchAccessor() {
super("BMS Search");
}

public TableData read() {
TableData td = null;
try (InputStream input = new URL("http://qstol.info/bmssearch/api/services/?method=bms.new").openStream()) {
Expand Down
5 changes: 4 additions & 1 deletion src/bms/player/beatoraja/play/JudgeManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,9 @@ public void update(final int time) {
}
}
for(Note note = lanemodel.getNote();note != null && note.getTime() <= time;note = lanemodel.getNote()) {
if(note.getTime() <= prevtime) {
continue;
}
if (note instanceof LongNote) {
// HCN判定
final LongNote lnote = (LongNote) note;
Expand All @@ -203,7 +206,7 @@ public void update(final int time) {
passing[lane] = null;
passingcount[lane] = 0;
} else {
passing[lane] = lnote;
passing[lane] = lnote;
}
}
} else if (note instanceof MineNote && pressed) {
Expand Down
Loading

0 comments on commit d2f08da

Please sign in to comment.