Create ContextHolder helper class

This commit is contained in:
2022-08-22 11:34:56 +02:00
parent 6b5df7ad24
commit dc68f3d4ed
2 changed files with 25 additions and 1 deletions

View File

@@ -0,0 +1,19 @@
package com.bartlomiejpluta.base.api.context;
import lombok.Getter;
import lombok.NonNull;
public enum ContextHolder {
INSTANCE;
@Getter
private Context context;
public void setContext(@NonNull Context context) {
if(this.context != null) {
throw new IllegalStateException("Context cannot be reassigned");
}
this.context = context;
}
}

View File

@@ -1,6 +1,7 @@
package com.bartlomiejpluta.base.engine.context.manager; package com.bartlomiejpluta.base.engine.context.manager;
import com.bartlomiejpluta.base.api.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.context.ContextHolder;
import com.bartlomiejpluta.base.api.runner.GameRunner; import com.bartlomiejpluta.base.api.runner.GameRunner;
import com.bartlomiejpluta.base.engine.audio.manager.SoundManager; import com.bartlomiejpluta.base.engine.audio.manager.SoundManager;
import com.bartlomiejpluta.base.engine.context.model.DefaultContext; import com.bartlomiejpluta.base.engine.context.model.DefaultContext;
@@ -66,7 +67,7 @@ public class DefaultContextManager implements ContextManager {
var gameRunner = runnerClass.getConstructor().newInstance(); var gameRunner = runnerClass.getConstructor().newInstance();
log.info("Building context up"); log.info("Building context up");
return DefaultContext.builder() var context = DefaultContext.builder()
.engine(engine) .engine(engine)
.entityManager(entityManager) .entityManager(entityManager)
.animationManager(animationManager) .animationManager(animationManager)
@@ -80,5 +81,9 @@ public class DefaultContextManager implements ContextManager {
.gameRunner(gameRunner) .gameRunner(gameRunner)
.projectName(project.getName()) .projectName(project.getName())
.build(); .build();
ContextHolder.INSTANCE.setContext(context);
return context;
} }
} }