public static void share(Object object) { Share share = object.getClass().getAnnotation(Share.class); if (share != null && share.value() != null) { for (Class interfaceType : share.value()) { CoreRegistry.put(interfaceType, object); } } }
public void setupWorldProvider(WorldGenerator generator) { generator.initialize(); WorldProviderCore stub = new MapWorldProvider(generator, context.get(BlockManager.class), Mockito.mock(BiomeManager.class), context.get(ExtraBlockDataManager.class)); WorldProvider world = new WorldProviderWrapper(stub, context.get(ExtraBlockDataManager.class)); CoreRegistry.put(WorldProvider.class, world); CoreRegistry.put(BlockEntityRegistry.class, new EntityAwareWorldProvider(stub, context)); }
@Override public BehaviorTreeData load(ResourceUrn resourceUrn, List<AssetDataFile> list) throws IOException { BehaviorTreeBuilder builder = CoreRegistry.get(BehaviorTreeBuilder.class); if (builder == null) { builder = new BehaviorTreeBuilder(); CoreRegistry.put(BehaviorTreeBuilder.class, builder); } try (InputStream stream = list.get(0).openStream()) { return load(stream); } }
public BehaviorTreeData load(InputStream stream) { BehaviorTreeBuilder builder = CoreRegistry.get(BehaviorTreeBuilder.class); if (builder == null) { builder = new BehaviorTreeBuilder(); CoreRegistry.put(BehaviorTreeBuilder.class, builder); } BehaviorNode node = builder.fromJson(stream); BehaviorTreeData data = new BehaviorTreeData(); data.setRoot(node); return data; } }
/** * Check if CoreRegistry returns null on its methods when the context is not defined. */ @Test public void testNullReturnOnMissingContext() { CoreRegistry.setContext(null); assertEquals(CoreRegistry.put(Integer.class, 10), null); assertEquals(CoreRegistry.get(Integer.class), null); }
@Before public void setup() throws Exception { super.setup(); AssetManager assetManager = CoreRegistry.get(AssetManager.class); blockManager = new BlockManagerImpl(new NullWorldAtlas(), assetManager); CoreRegistry.put(BlockManager.class, blockManager); this.assetManager = assetManager; }
@BeforeClass public static void setUpClass() throws Exception { Config config = new Config(new MockContext()); CoreRegistry.setContext(new ContextImpl()); CoreRegistry.put(Config.class, config); }
@Test public void testStoreAndRestoreChunkStore() { Chunk chunk = new ChunkImpl(CHUNK_POS, blockManager, biomeManager, extraDataManager); chunk.setBlock(0, 0, 0, testBlock); chunk.markReady(); ChunkProvider chunkProvider = mock(ChunkProvider.class); when(chunkProvider.getAllChunks()).thenReturn(Arrays.asList(chunk)); CoreRegistry.put(ChunkProvider.class, chunkProvider); esm.waitForCompletionOfPreviousSaveAndStartSaving(); esm.finishSavingAndShutdown(); ChunkStore restored = esm.loadChunkStore(CHUNK_POS); assertNotNull(restored); assertEquals(CHUNK_POS, restored.getChunkPosition()); assertNotNull(restored.getChunk()); assertEquals(testBlock, restored.getChunk().getBlock(0, 0, 0)); }
@Test public void testChunkSurvivesStorageSaveAndRestore() throws Exception { Chunk chunk = new ChunkImpl(CHUNK_POS, blockManager, biomeManager, extraDataManager); chunk.setBlock(0, 0, 0, testBlock); chunk.setBlock(0, 4, 2, testBlock2); chunk.markReady(); ChunkProvider chunkProvider = mock(ChunkProvider.class); when(chunkProvider.getAllChunks()).thenReturn(Arrays.asList(chunk)); when(chunkProvider.getChunk(Matchers.any(Vector3i.class))).thenReturn(chunk); CoreRegistry.put(ChunkProvider.class, chunkProvider); boolean storeChunkInZips = true; esm.setStoreChunksInZips(storeChunkInZips); esm.waitForCompletionOfPreviousSaveAndStartSaving(); esm.finishSavingAndShutdown(); EntitySystemSetupUtil.addReflectionBasedLibraries(context); EntitySystemSetupUtil.addEntityManagementRelatedClasses(context); EngineEntityManager newEntityManager = context.get(EngineEntityManager.class); StorageManager newSM = new ReadWriteStorageManager(savePath, moduleEnvironment, newEntityManager, blockManager, biomeManager, extraDataManager, storeChunkInZips, recordAndReplaySerializer, recordAndReplayUtils, recordAndReplayCurrentStatus); newSM.loadGlobalStore(); ChunkStore restored = newSM.loadChunkStore(CHUNK_POS); assertNotNull(restored); assertEquals(CHUNK_POS, restored.getChunkPosition()); assertNotNull(restored.getChunk()); assertEquals(testBlock, restored.getChunk().getBlock(0, 0, 0)); assertEquals(testBlock2, restored.getChunk().getBlock(0, 4, 2)); }
@Before public void setup() throws IOException { AssetManager assetManager = CoreRegistry.get(AssetManager.class); blockManager = new BlockManagerImpl(new NullWorldAtlas(), assetManager); CoreRegistry.put(BlockManager.class, blockManager); airBlock = blockManager.getBlock(BlockManager.AIR_ID); biomeManager = Mockito.mock(BiomeManager.class); extraDataManager = new ExtraBlockDataManager(); BlockFamilyDefinitionData solidData = new BlockFamilyDefinitionData(); solidData.getBaseSection().setDisplayName("Stone"); solidData.getBaseSection().setShape(assetManager.getAsset("engine:cube", BlockShape.class).get()); solidData.getBaseSection().setTranslucent(false); solidData.setBlockFamily(SymmetricFamily.class); assetManager.loadAsset(new ResourceUrn("engine:stone"), solidData, BlockFamilyDefinition.class); solidBlock = blockManager.getBlock(new BlockUri(new ResourceUrn("engine:stone"))); }
ChunkProvider chunkProvider = mock(ChunkProvider.class); when(chunkProvider.getAllChunks()).thenReturn(Arrays.asList(chunk)); CoreRegistry.put(ChunkProvider.class, chunkProvider); EntityRef entity = entityManager.create(); long id = entity.getId();
@Before public void setup() throws Exception { super.setup(); AssetManager assetManager = CoreRegistry.get(AssetManager.class); blockManager = new BlockManagerImpl(new NullWorldAtlas(), assetManager); CoreRegistry.put(BlockManager.class, blockManager); BiomeManager biomeManager = Mockito.mock(BiomeManager.class); ExtraBlockDataManager extraDataManager = new ExtraBlockDataManager(); chunk = new ChunkImpl(new Vector3i(0, 0, 0), blockManager, biomeManager, extraDataManager); BlockFamilyDefinitionData solidData = new BlockFamilyDefinitionData(); solidData.getBaseSection().setDisplayName("Stone"); solidData.getBaseSection().setShape(assetManager.getAsset("engine:cube", BlockShape.class).get()); solidData.getBaseSection().setTranslucent(false); solidData.setBlockFamily(SymmetricFamily.class); assetManager.loadAsset(new ResourceUrn("engine:stone"), solidData, BlockFamilyDefinition.class); solid = blockManager.getBlock(new BlockUri(new ResourceUrn("engine:stone"))); }
/** * Check if the CoreRegistry is calling the methods of its Context */ @Test public void testContextMethodsCalled() { // Load value in context Integer value = 10; CoreRegistry.put(Integer.class, value); assertEquals(value, context.get(Integer.class)); assertEquals(context.get(Integer.class), CoreRegistry.get(Integer.class)); // Change context CoreRegistry.setContext(new ContextImplementation()); assertNotEquals(CoreRegistry.get(Context.class), context); assertEquals(CoreRegistry.get(Integer.class), null); // Restore first context CoreRegistry.setContext(context); assertEquals(CoreRegistry.get(Integer.class), value); }
@Before public void setup() throws Exception { super.setup(); regenRules = new SunlightRegenPropagationRules(); AssetManager assetManager = CoreRegistry.get(AssetManager.class); blockManager = new BlockManagerImpl(new NullWorldAtlas(), assetManager, true); CoreRegistry.put(BlockManager.class, blockManager); BlockFamilyDefinitionData solidData = new BlockFamilyDefinitionData(); solidData.getBaseSection().setDisplayName("Stone"); solidData.getBaseSection().setShape(assetManager.getAsset("engine:cube", BlockShape.class).get()); solidData.getBaseSection().setTranslucent(false); solidData.setBlockFamily(SymmetricFamily.class); assetManager.loadAsset(new ResourceUrn("engine:stone"), solidData, BlockFamilyDefinition.class); solid = blockManager.getBlock(new BlockUri(new ResourceUrn("engine:stone"))); air = blockManager.getBlock(BlockManager.AIR_ID); Map<Vector3i, Block> blockData = Maps.newHashMap(); regenWorldView = new StubPropagatorWorldView(ChunkConstants.CHUNK_REGION, air, blockData); lightWorldView = new StubPropagatorWorldView(ChunkConstants.CHUNK_REGION, air, blockData); lightRules = new SunlightPropagationRules(regenWorldView); sunlightPropagator = new StandardBatchPropagator(lightRules, lightWorldView); propagator = new SunlightRegenBatchPropagator(regenRules, regenWorldView, sunlightPropagator, lightWorldView); }
@Before @Override public void setup() throws Exception { super.setup(); AssetManager assetManager = CoreRegistry.get(AssetManager.class); regenRules = new SunlightRegenPropagationRules(); blockManager = new BlockManagerImpl(new NullWorldAtlas(), assetManager, true); biomeManager = Mockito.mock(BiomeManager.class); CoreRegistry.put(BlockManager.class, blockManager); extraDataManager = new ExtraBlockDataManager(); BlockFamilyDefinitionData solidData = new BlockFamilyDefinitionData(); solidData.getBaseSection().setDisplayName("Stone"); solidData.getBaseSection().setShape(assetManager.getAsset("engine:cube", BlockShape.class).get()); solidData.getBaseSection().setTranslucent(false); solidData.setBlockFamily(SymmetricFamily.class); assetManager.loadAsset(new ResourceUrn("engine:stone"), solidData, BlockFamilyDefinition.class); solid = blockManager.getBlock(new BlockUri(new ResourceUrn("engine:stone"))); regenWorldView = new SunlightRegenWorldView(provider); lightWorldView = new SunlightWorldView(provider); lightRules = new SunlightPropagationRules(regenWorldView); sunlightPropagator = new StandardBatchPropagator(lightRules, lightWorldView); propagator = new SunlightRegenBatchPropagator(regenRules, regenWorldView, sunlightPropagator, lightWorldView); }
@Before public void setup() throws Exception { super.setup(); AssetManager assetManager = CoreRegistry.get(AssetManager.class); blockManager = new BlockManagerImpl(new NullWorldAtlas(), assetManager); CoreRegistry.put(BlockManager.class, blockManager); airBlock = blockManager.getBlock(BlockManager.AIR_ID); biomeManager = Mockito.mock(BiomeManager.class); extraDataManager = new ExtraBlockDataManager(); BlockFamilyDefinitionData solidData = new BlockFamilyDefinitionData(); solidData.getBaseSection().setDisplayName("Stone"); solidData.getBaseSection().setShape(assetManager.getAsset("engine:cube", BlockShape.class).get()); solidData.getBaseSection().setTranslucent(false); solidData.setBlockFamily(SymmetricFamily.class); assetManager.loadAsset(new ResourceUrn("engine:stone"), solidData, BlockFamilyDefinition.class); solidBlock = blockManager.getBlock(new BlockUri(new ResourceUrn("engine:stone"))); BlockFamilyDefinitionData fullLightData = new BlockFamilyDefinitionData(); fullLightData.getBaseSection().setDisplayName("Torch"); fullLightData.getBaseSection().setShape(assetManager.getAsset("engine:cube", BlockShape.class).get()); fullLightData.getBaseSection().setLuminance(ChunkConstants.MAX_LIGHT); fullLightData.setBlockFamily(SymmetricFamily.class); assetManager.loadAsset(new ResourceUrn("engine:torch"), fullLightData, BlockFamilyDefinition.class); fullLight = blockManager.getBlock(new BlockUri(new ResourceUrn("engine:torch"))); }
AssetManager assetManager = CoreRegistry.get(AssetManager.class); blockManager = new BlockManagerImpl(new NullWorldAtlas(), assetManager, true); CoreRegistry.put(BlockManager.class, blockManager); BlockFamilyDefinitionData fullLightData = new BlockFamilyDefinitionData(); fullLightData.getBaseSection().setDisplayName("Torch");
@Test public void testRegionPositions() { CoreRegistry.setContext(new ContextImpl()); CoreRegistry.put(Config.class, new Config(new MockContext())); assertEquals(1, ChunkMath.calcChunkPos(Region3i.createFromMinMax(new Vector3i(0, 0, 0), new Vector3i(0, 0, 0))).length); assertEquals(1, ChunkMath.calcChunkPos(Region3i.createFromMinMax(new Vector3i(0, 0, 0), new Vector3i(31, 63, 31))).length); assertEquals(2, ChunkMath.calcChunkPos(Region3i.createFromMinMax(new Vector3i(0, 0, 0), new Vector3i(32, 63, 31))).length); assertEquals(4, ChunkMath.calcChunkPos(Region3i.createFromMinMax(new Vector3i(0, 0, 0), new Vector3i(32, 63, 32))).length); assertEquals(8, ChunkMath.calcChunkPos(Region3i.createFromMinMax(new Vector3i(0, 0, 0), new Vector3i(32, 64, 32))).length); assertEquals(12, ChunkMath.calcChunkPos(Region3i.createFromMinMax(new Vector3i(-1, 0, 0), new Vector3i(32, 64, 32))).length); Vector3i[] chunks = ChunkMath.calcChunkPos(Region3i.createFromMinMax(new Vector3i(0, 0, 0), new Vector3i(32, 63, 31))); assertEquals(new Vector3i(0, 0, 0), chunks[0]); assertEquals(new Vector3i(1, 0, 0), chunks[1]); } }