PIPOsen
01/05/2023, 4:32 AMPIPOsen
01/05/2023, 4:33 AMjavascript
syncDataMapInt(entity,["Button6","Button7","Button8","Button9","Button10"]);
function syncDataMapInt(entity,dataMapList){
if(entity == null)return;
var formation = entity.getFormation();
if(formation == null || formation.entries.length < 2)return;
var controlCar = NGTUtil.getMethod(formation.getClass(),formation,formation,"getControlCar",[]);
if(controlCar == null || entity.getVehicleState(TrainState.TrainStateType.Role) == 0)return;
var currentCarDataMap = entity.getResourceState().getDataMap();
var controlCarDataMap = controlCar.getResourceState().getDataMap();
for(var i = 0; i < dataMapList.length; ++i){
if(controlCarDataMap.getInt(dataMapList[i]) !== null && controlCarDataMap.getInt(dataMapList[i]) != currentCarDataMap.getInt(dataMapList[i])){
currentCarDataMap.setInt(dataMapList[i],controlCarDataMap.getInt(dataMapList[i]),3);
}
}
}
Button0~5は共通部分、6~10は先頭車のみで同期したい部分です。先頭車と中間車は同じrenderScriptを使用しています。PIPOsen
01/05/2023, 4:36 AMPIPOsen
01/05/2023, 4:40 AM坐/Kaiz_JP
01/05/2023, 10:39 AMjava
if (DataMap#contains(key)) {
//存在する
} else {
//存在しない
}
といった形でDataMapの中に指定したキーの値が含まれているかを判定できますPIPOsen
01/05/2023, 11:06 AM