InteractionEntry class
Пакет: com.hypixel.hytale.server.core.entity
Файл: com/hypixel/hytale/server/core/entity/InteractionEntry.java
Поля (14)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
HytaleLogger |
LOGGER |
|
InteractionSyncData |
var1 |
|
boolean |
var1 |
|
boolean |
var1 |
|
float |
var2 |
|
HytaleLogger.Api |
var2 |
|
long |
var3 |
|
int |
var3 |
|
RootInteraction |
var3 |
|
Operation |
var4 |
|
long |
var5 |
|
String |
var5 |
|
|
var5 |
|
|
var5 |
Методы (22)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
boolean |
consumeDesyncFlagboolean consumeDesyncFlag() |
public |
boolean |
consumeSendInitialboolean consumeSendInitial() |
public |
void |
flagDesyncvoid flagDesync() |
public |
int |
getIndexint getIndex() |
public |
int |
getNextForkIdint getNextForkId() |
public |
int |
getServerDataHashCodeint getServerDataHashCode() |
public |
float |
getTimeInSecondsfloat getTimeInSeconds(long var1) |
public |
long |
getTimestamplong getTimestamp() |
public |
long |
getWaitingForClientFinishedlong getWaitingForClientFinished() |
public |
long |
getWaitingForServerFinishedlong getWaitingForServerFinished() |
public |
long |
getWaitingForSyncDatalong getWaitingForSyncData() |
|
|
if if(var3 == 0L) |
|
|
if if(this.useSimulationState) |
|
|
if if(this.simulationState == null) |
public |
boolean |
isUseSimulationStateboolean isUseSimulationState() |
public |
int |
nextForkIdint nextForkId() |
public |
boolean |
setClientStateboolean setClientState(@Nullable InteractionSyncData var1) |
public |
void |
setTimestampvoid setTimestamp(long var1, float var3) |
public |
void |
setUseSimulationStatevoid setUseSimulationState(boolean var1) |
public |
void |
setWaitingForClientFinishedvoid setWaitingForClientFinished(long var1) |
public |
void |
setWaitingForServerFinishedvoid setWaitingForServerFinished(long var1) |
public |
void |
setWaitingForSyncDatavoid setWaitingForSyncData(long var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.entity;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.protocol.InteractionState;
class="kw">import com.hypixel.hytale.protocol.InteractionSyncData;
class="kw">import com.hypixel.hytale.server.core.meta.DynamicMetaStore;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.Interaction;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.RootInteraction;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.operation.Operation;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class InteractionEntry {
class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
class="kw">private class="kw">final int index;
@Nonnull
class="kw">private class="kw">final DynamicMetaStore<Interaction> metaStore;
class="kw">private long timestamp;
class="kw">private long simulationTimestamp;
class="kw">private class="kw">final InteractionSyncData serverState = new InteractionSyncData();
class="kw">private InteractionSyncData simulationState;
@Nullable
class="kw">private InteractionSyncData clientState;
class="kw">private long waitingForSyncData;
class="kw">private long waitingForServerFinished;
class="kw">private long waitingForClientFinished;
class="kw">private boolean useSimulationState;
class="kw">private boolean desynced;
class="kw">private boolean shouldSendInitial = true;
class="kw">public InteractionEntry(int var1, int var2, int var3) {
this.index = var1;
this.metaStore = new DynamicMetaStore<>(null, Interaction.META_REGISTRY);
this.serverState.operationCounter = var2;
this.serverState.rootInteraction = var3;
this.serverState.state = InteractionState.NotFinished;
}
class="kw">public int getIndex() {
class="kw">return this.index;
}
class="kw">public int nextForkId() {
class="kw">return this.serverState.totalForks++;
}
class="kw">public int getNextForkId() {
class="kw">return this.serverState.totalForks;
}
@Nonnull
class="kw">public InteractionSyncData getState() {
class="kw">return this.useSimulationState ? this.getSimulationState() : this.getServerState();
}
class="kw">public void setUseSimulationState(boolean var1) {
this.useSimulationState = var1;
}
class="kw">public float getTimeInSeconds(long var1) {
long var3 = this.getTimestamp();
if (var3 == 0L) {
class="kw">return 0.0F;
}
long var5 = var1 - var3;
class="kw">return (float)var5 / 1.0E9F;
}
class="kw">public void setTimestamp(long var1, float var3) {
var1 -= (long)(var3 * 1.0E9F);
if (this.useSimulationState) {
this.simulationTimestamp = var1;
} else {
this.timestamp = var1;
}
}
class="kw">public long getTimestamp() {
class="kw">return this.useSimulationState ? this.simulationTimestamp : this.timestamp;
}
class="kw">public boolean isUseSimulationState() {
class="kw">return this.useSimulationState;
}
@Nullable
class="kw">public InteractionSyncData getClientState() {
class="kw">return this.clientState;
}
@Nonnull
class="kw">public DynamicMetaStore<Interaction> getMetaStore() {
class="kw">return this.metaStore;
}
class="kw">public int getServerDataHashCode() {
InteractionSyncData var1 = this.getState();
float var2 = var1.progress;
var1.progress = (int)var2;
int var3 = var1.hashCode();
var1.progress = var2;
class="kw">return var3;
}
@Nonnull
class="kw">public InteractionSyncData getServerState() {
class="kw">return this.serverState;
}
@Nonnull
class="kw">public InteractionSyncData getSimulationState() {
if (this.simulationState == null) {
this.simulationState = new InteractionSyncData();
this.simulationState.operationCounter = this.serverState.operationCounter;
this.simulationState.rootInteraction = this.serverState.rootInteraction;
this.simulationState.state = InteractionState.NotFinished;
}
class="kw">return this.simulationState;
}
class="kw">public boolean setClientState(@Nullable InteractionSyncData var1) {
if (var1 != null && (var1.operationCounter != this.serverState.operationCounter || var1.rootInteraction != this.serverState.rootInteraction)) {
HytaleLogger.Api var2 = LOGGER.at(Level.FINE);
if (var2.isEnabled()) {
RootInteraction var3 = RootInteraction.getAssetMap().getAsset(this.serverState.rootInteraction);
Operation var4 = var3.getOperation(this.serverState.operationCounter);
String var5;
if (var4.getInnerOperation() class="kw">instanceof Interaction var7) {
var5 = var7.getId() + " (" + var7.getClass().getSimpleName() + ")";
} else {
var5 = var4 + " (" + var4.getClass().getSimpleName() + ")";
}
var2.log(
"%d: Client/Server desync %d != %d, %d != %d (for %s)",
this.index,
this.serverState.operationCounter,
var1.operationCounter,
this.serverState.rootInteraction,
var1.rootInteraction,
var5
);
}
class="kw">return false;
} else {
this.clientState = var1;
class="kw">return true;
}
}
class="kw">public long getWaitingForSyncData() {
class="kw">return this.waitingForSyncData;
}
class="kw">public void setWaitingForSyncData(long var1) {
this.waitingForSyncData = var1;
}
class="kw">public long getWaitingForServerFinished() {
class="kw">return this.waitingForServerFinished;
}
class="kw">public void setWaitingForServerFinished(long var1) {
this.waitingForServerFinished = var1;
}
class="kw">public long getWaitingForClientFinished() {
class="kw">return this.waitingForClientFinished;
}
class="kw">public void setWaitingForClientFinished(long var1) {
this.waitingForClientFinished = var1;
}
class="kw">public boolean consumeDesyncFlag() {
boolean var1 = this.desynced;
this.desynced = false;
class="kw">return var1;
}
class="kw">public void flagDesync() {
this.desynced = true;
}
class="kw">public boolean consumeSendInitial() {
boolean var1 = this.shouldSendInitial;
this.shouldSendInitial = false;
class="kw">return var1;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "InteractionEntry{index="
+ this.index
+ ", metaStore="
+ this.metaStore
+ ", timestamp="
+ this.timestamp
+ ", getTimeInSeconds()="
+ this.getTimeInSeconds(System.nanoTime())
+ ", simulationTimestamp="
+ this.simulationTimestamp
+ ", serverState="
+ this.serverState
+ ", simulationState="
+ this.simulationState
+ ", clientState="
+ this.clientState
+ ", waitingForSyncData="
+ this.waitingForSyncData
+ ", waitingForServerFinished="
+ this.waitingForServerFinished
+ ", waitingForClientFinished="
+ this.waitingForClientFinished
+ ", useSimulationState="
+ this.useSimulationState
+ ", desynced="
+ this.desynced
+ "}";
}
}