├── .gitattributes ├── .gitignore ├── .travis.yml ├── HEADER.txt ├── LICENSE.txt ├── api ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── spout │ │ └── api │ │ ├── Client.java │ │ ├── ClientOnly.java │ │ ├── Engine.java │ │ ├── Platform.java │ │ ├── Server.java │ │ ├── ServerOnly.java │ │ ├── Spout.java │ │ ├── ai │ │ ├── AStarGoal.java │ │ ├── AStarMachine.java │ │ ├── AStarNode.java │ │ ├── AStarStorage.java │ │ ├── Agent.java │ │ ├── Plan.java │ │ ├── Sensor.java │ │ ├── SimpleAStarStorage.java │ │ ├── UnboundedAStarGoal.java │ │ ├── goap │ │ │ ├── Action.java │ │ │ ├── ActionPlan.java │ │ │ ├── ActionPlanner.java │ │ │ ├── Goal.java │ │ │ ├── GoapAIComponent.java │ │ │ ├── PlannerAgent.java │ │ │ ├── PlannerGoal.java │ │ │ ├── PlannerNode.java │ │ │ ├── SimpleActionPlanner.java │ │ │ └── WorldState.java │ │ └── pathfinder │ │ │ ├── AbstractBlockSource.java │ │ │ ├── BlockExaminer.java │ │ │ ├── BlockSource.java │ │ │ ├── Path.java │ │ │ ├── PathPoint.java │ │ │ ├── SpoutBlockSource.java │ │ │ ├── VectorGoal.java │ │ │ └── VectorNode.java │ │ ├── audio │ │ ├── Sound.java │ │ ├── SoundListener.java │ │ ├── SoundManager.java │ │ ├── SoundSource.java │ │ └── SoundState.java │ │ ├── collision │ │ └── SpoutContactInfo.java │ │ ├── command │ │ ├── Command.java │ │ ├── CommandArguments.java │ │ ├── CommandBatch.java │ │ ├── CommandFlags.java │ │ ├── CommandManager.java │ │ ├── CommandSource.java │ │ ├── Executor.java │ │ ├── annotated │ │ │ ├── AnnotatedCommandExecutor.java │ │ │ ├── AnnotatedCommandExecutorFactory.java │ │ │ ├── Binding.java │ │ │ ├── CommandDescription.java │ │ │ ├── Filter.java │ │ │ ├── Flag.java │ │ │ ├── Permissible.java │ │ │ └── Platforms.java │ │ └── filter │ │ │ ├── CommandFilter.java │ │ │ ├── CommandSourceFilter.java │ │ │ └── PlayerFilter.java │ │ ├── component │ │ ├── BaseComponentOwner.java │ │ ├── BlockComponentOwner.java │ │ ├── Component.java │ │ ├── ComponentOwner.java │ │ ├── block │ │ │ └── BlockComponent.java │ │ ├── entity │ │ │ ├── AIComponent.java │ │ │ ├── AnimationComponent.java │ │ │ ├── CameraComponent.java │ │ │ ├── EntityComponent.java │ │ │ ├── InteractComponent.java │ │ │ ├── ModelComponent.java │ │ │ ├── NavigationComponent.java │ │ │ ├── NetworkComponent.java │ │ │ ├── PhysicsComponent.java │ │ │ ├── PlayerNetworkComponent.java │ │ │ └── TextModelComponent.java │ │ ├── widget │ │ │ ├── ControlComponent.java │ │ │ ├── LabelComponent.java │ │ │ ├── RenderPartComponent.java │ │ │ ├── RenderPartPacksComponent.java │ │ │ ├── SliderComponent.java │ │ │ ├── SpinnerComponent.java │ │ │ ├── TextFieldComponent.java │ │ │ ├── WidgetComponent.java │ │ │ ├── button │ │ │ │ ├── ButtonComponent.java │ │ │ │ ├── CheckBoxComponent.java │ │ │ │ └── RadioComponent.java │ │ │ └── list │ │ │ │ ├── ComboBoxComponent.java │ │ │ │ └── ItemListComponent.java │ │ └── world │ │ │ ├── SkydomeComponent.java │ │ │ └── WorldComponent.java │ │ ├── data │ │ ├── Data.java │ │ ├── DataProvider.java │ │ ├── DataSubject.java │ │ ├── DataValue.java │ │ ├── ValueHolder.java │ │ ├── ValueHolderBase.java │ │ └── defaultedkeys │ │ │ └── ItemStackDefaultedKey.java │ │ ├── datatable │ │ ├── ManagedHashMap.java │ │ ├── ManagedMap.java │ │ ├── SerializableHashMap.java │ │ ├── SerializableMap.java │ │ └── delta │ │ │ └── DeltaMap.java │ │ ├── entity │ │ ├── Entity.java │ │ ├── EntityPrefab.java │ │ ├── EntitySnapshot.java │ │ ├── Player.java │ │ ├── PlayerSnapshot.java │ │ ├── spawn │ │ │ ├── CircleSpawnArrangement.java │ │ │ ├── DiscSpawnArrangement.java │ │ │ ├── GenericSpawnArrangement.java │ │ │ ├── SpawnArrangement.java │ │ │ └── SpiralSpawnArrangement.java │ │ └── state │ │ │ └── PlayerInputState.java │ │ ├── event │ │ ├── Cancellable.java │ │ ├── Cause.java │ │ ├── Event.java │ │ ├── EventExecutor.java │ │ ├── EventHandler.java │ │ ├── EventManager.java │ │ ├── HandlerList.java │ │ ├── Listener.java │ │ ├── ListenerRegistration.java │ │ ├── Order.java │ │ ├── ProtocolEvent.java │ │ ├── Result.java │ │ ├── SimpleEventManager.java │ │ ├── audio │ │ │ ├── SoundBindEvent.java │ │ │ ├── SoundDisposeEvent.java │ │ │ ├── SoundEvent.java │ │ │ └── SoundStateChangeEvent.java │ │ ├── block │ │ │ ├── BlockChangeEvent.java │ │ │ ├── BlockEvent.java │ │ │ └── CuboidChangeEvent.java │ │ ├── cause │ │ │ ├── BlockCause.java │ │ │ ├── EntityCause.java │ │ │ ├── MaterialCause.java │ │ │ ├── PlayerCause.java │ │ │ ├── PluginCause.java │ │ │ └── WorldCause.java │ │ ├── chunk │ │ │ ├── ChunkEvent.java │ │ │ ├── ChunkLoadEvent.java │ │ │ ├── ChunkPopulateEvent.java │ │ │ ├── ChunkUnloadEvent.java │ │ │ └── ChunkUpdatedEvent.java │ │ ├── engine │ │ │ ├── EngineStartEvent.java │ │ │ └── EngineStopEvent.java │ │ ├── entity │ │ │ ├── AbstractEntityEvent.java │ │ │ ├── AnimationEndEvent.java │ │ │ ├── EntityChangeWorldEvent.java │ │ │ ├── EntityCollideBlockEvent.java │ │ │ ├── EntityCollideEntityEvent.java │ │ │ ├── EntityCollideEvent.java │ │ │ ├── EntityDespawnEvent.java │ │ │ ├── EntityEvent.java │ │ │ ├── EntityHiddenEvent.java │ │ │ ├── EntityInteractBlockEvent.java │ │ │ ├── EntityInteractEntityEvent.java │ │ │ ├── EntityInteractEvent.java │ │ │ ├── EntityShownEvent.java │ │ │ ├── EntitySpawnEvent.java │ │ │ └── EntityTeleportEvent.java │ │ ├── inventory │ │ │ ├── InventoryCloseEvent.java │ │ │ ├── InventoryEvent.java │ │ │ └── InventoryOpenEvent.java │ │ ├── object │ │ │ ├── Eventable.java │ │ │ ├── EventableBase.java │ │ │ ├── EventableListener.java │ │ │ └── ObjectEvent.java │ │ ├── player │ │ │ ├── AbstractPlayerEvent.java │ │ │ ├── Action.java │ │ │ ├── ClientPlayerConnectedEvent.java │ │ │ ├── PlayerBanKickEvent.java │ │ │ ├── PlayerChatEvent.java │ │ │ ├── PlayerConnectEvent.java │ │ │ ├── PlayerEvent.java │ │ │ ├── PlayerInteractBlockEvent.java │ │ │ ├── PlayerInteractEntityEvent.java │ │ │ ├── PlayerJoinEvent.java │ │ │ ├── PlayerKickEvent.java │ │ │ ├── PlayerLeaveEvent.java │ │ │ ├── PlayerLoginEvent.java │ │ │ ├── PlayerWhitelistKickEvent.java │ │ │ └── input │ │ │ │ ├── PlayerClickEvent.java │ │ │ │ ├── PlayerInputEvent.java │ │ │ │ └── PlayerKeyEvent.java │ │ ├── server │ │ │ ├── CompletionRequestEvent.java │ │ │ ├── NodeBasedEvent.java │ │ │ ├── PreCommandEvent.java │ │ │ ├── RetrieveDataEvent.java │ │ │ ├── access │ │ │ │ ├── BanChangeEvent.java │ │ │ │ └── WhitelistChangeEvent.java │ │ │ ├── permissions │ │ │ │ ├── PermissionGetAllWithNodeEvent.java │ │ │ │ ├── PermissionGroupsEvent.java │ │ │ │ └── PermissionNodeEvent.java │ │ │ ├── plugin │ │ │ │ ├── PluginDisableEvent.java │ │ │ │ ├── PluginEnableEvent.java │ │ │ │ └── PluginEvent.java │ │ │ ├── protection │ │ │ │ ├── EntityCanBeHarmedEvent.java │ │ │ │ ├── EntityCanBreakEvent.java │ │ │ │ ├── EntityCanBuildEvent.java │ │ │ │ ├── EntityCanInteractBlockEvent.java │ │ │ │ ├── EntityCanInteractEntityEvent.java │ │ │ │ ├── EntityEnterProtection.java │ │ │ │ └── EntityLeaveProtection.java │ │ │ └── service │ │ │ │ ├── ServiceEvent.java │ │ │ │ ├── ServiceRegisterEvent.java │ │ │ │ ├── ServiceUnregisterEvent.java │ │ │ │ └── economy │ │ │ │ ├── AccountChangeEvent.java │ │ │ │ └── EconomyEvent.java │ │ ├── storage │ │ │ ├── PlayerLoadEvent.java │ │ │ └── PlayerSaveEvent.java │ │ └── world │ │ │ ├── AbstractWorldEvent.java │ │ │ ├── EntityEnterWorldEvent.java │ │ │ ├── EntityExitWorldEvent.java │ │ │ ├── RegionLoadEvent.java │ │ │ ├── RegionUnloadEvent.java │ │ │ ├── WorldEvent.java │ │ │ ├── WorldLoadEvent.java │ │ │ ├── WorldSaveEvent.java │ │ │ └── WorldUnloadEvent.java │ │ ├── exception │ │ ├── ArgumentParseException.java │ │ ├── BoneNotFoundException.java │ │ ├── CommandException.java │ │ ├── CommandUsageException.java │ │ ├── ComputerIsPotatoException.java │ │ ├── EventException.java │ │ ├── IllegalPluginAccessException.java │ │ ├── IllegalTickSequenceException.java │ │ ├── InvalidControllerException.java │ │ ├── InvalidDescriptionFileException.java │ │ ├── InvalidPluginException.java │ │ ├── MissingCommandException.java │ │ ├── RestrictedClassException.java │ │ ├── SpoutException.java │ │ ├── SpoutRuntimeException.java │ │ ├── UnknownDependencyException.java │ │ ├── UnknownPacketException.java │ │ ├── UnknownSoftDependencyException.java │ │ └── WrappedCommandException.java │ │ ├── generator │ │ ├── EmptyWorldGenerator.java │ │ ├── FlatWorldGenerator.java │ │ ├── GeneratorPopulator.java │ │ ├── LayeredWorldGenerator.java │ │ ├── Populator.java │ │ ├── WorldGenerator.java │ │ ├── WorldGeneratorObject.java │ │ ├── WorldGeneratorUtils.java │ │ └── biome │ │ │ ├── Biome.java │ │ │ ├── BiomeGenerator.java │ │ │ ├── BiomeManager.java │ │ │ ├── BiomeMap.java │ │ │ ├── BiomePopulator.java │ │ │ ├── BiomeRegistry.java │ │ │ ├── BiomeSelector.java │ │ │ ├── Decorator.java │ │ │ ├── EmptyBiomeManager.java │ │ │ ├── Simple2DBiomeManager.java │ │ │ ├── WrappedBiomeManager.java │ │ │ └── selector │ │ │ ├── BiomeSelectorLayer.java │ │ │ ├── LayeredBiomeSelector.java │ │ │ ├── LayeredBiomeSelectorElement.java │ │ │ ├── NoiseRangeLayer.java │ │ │ ├── PerBlockBiomeSelector.java │ │ │ ├── PerlinRangeLayer.java │ │ │ ├── RidgedMultiRangeLayer.java │ │ │ └── VoronoiLayer.java │ │ ├── geo │ │ ├── AreaBlockAccess.java │ │ ├── AreaBlockSource.java │ │ ├── AreaChunkAccess.java │ │ ├── AreaPhysicsAccess.java │ │ ├── AreaRegionAccess.java │ │ ├── LoadOption.java │ │ ├── LocalAreaAccess.java │ │ ├── Protection.java │ │ ├── World.java │ │ ├── WorldSource.java │ │ ├── cuboid │ │ │ ├── Block.java │ │ │ ├── BlockComponentContainer.java │ │ │ ├── BlockContainer.java │ │ │ ├── Chunk.java │ │ │ ├── ChunkSnapshot.java │ │ │ ├── ChunkSnapshotModel.java │ │ │ ├── ContainerFillOrder.java │ │ │ ├── Cube.java │ │ │ ├── CubicContainer.java │ │ │ ├── Cuboid.java │ │ │ ├── LightContainer.java │ │ │ ├── Region.java │ │ │ ├── UpdateOption.java │ │ │ ├── Voxel.java │ │ │ └── reference │ │ │ │ └── RegionReference.java │ │ └── discrete │ │ │ ├── Point.java │ │ │ ├── Transform.java │ │ │ └── Transform2D.java │ │ ├── gui │ │ ├── Container.java │ │ ├── DebugHud.java │ │ ├── FocusReason.java │ │ ├── Focusable.java │ │ ├── FullScreen.java │ │ ├── RenderPartContainer.java │ │ ├── Screen.java │ │ ├── ScreenStack.java │ │ ├── Widget.java │ │ └── render │ │ │ ├── RenderPart.java │ │ │ └── RenderPartPack.java │ │ ├── input │ │ ├── Binding.java │ │ ├── InputActionExecutor.java │ │ ├── InputManager.java │ │ ├── Keyboard.java │ │ ├── LocalBinding.java │ │ ├── Mouse.java │ │ └── MovementExecutor.java │ │ ├── inventory │ │ ├── Container.java │ │ ├── Inventory.java │ │ ├── InventoryViewer.java │ │ ├── ItemStack.java │ │ ├── Slot.java │ │ ├── recipe │ │ │ ├── Recipe.java │ │ │ ├── RecipeBuilder.java │ │ │ ├── RecipeManager.java │ │ │ ├── RecipeTree.java │ │ │ ├── ShapedRecipe.java │ │ │ ├── ShapelessRecipe.java │ │ │ ├── SimpleRecipeManager.java │ │ │ └── SmeltedRecipe.java │ │ ├── shape │ │ │ ├── Cube.java │ │ │ └── Grid.java │ │ └── util │ │ │ ├── CubeIterator.java │ │ │ ├── GridIterator.java │ │ │ └── InventoryIterator.java │ │ ├── io │ │ ├── CRCStore.java │ │ ├── CRCStoreRunnable.java │ │ ├── FileUtil.java │ │ ├── bytearrayarray │ │ │ ├── BAAClosedException.java │ │ │ ├── BAAException.java │ │ │ ├── BAAOpenInProgress.java │ │ │ ├── BAAWrapper.java │ │ │ └── ByteArrayArray.java │ │ ├── nbt │ │ │ ├── QuaternionTag.java │ │ │ ├── TransformTag.java │ │ │ ├── UUIDTag.java │ │ │ └── Vector3Tag.java │ │ ├── regionfile │ │ │ ├── CachedRandomAccessFile.java │ │ │ ├── MappedRandomAccessFile.java │ │ │ ├── SRFBlockLock.java │ │ │ ├── SRFClosedException.java │ │ │ ├── SRFException.java │ │ │ ├── SRFOutputStream.java │ │ │ ├── SRFReentrantReadWriteLock.java │ │ │ └── SimpleRegionFile.java │ │ └── store │ │ │ ├── map │ │ │ ├── MemoryStoreMap.java │ │ │ └── SimpleStoreMap.java │ │ │ └── simple │ │ │ ├── BinaryFileStore.java │ │ │ ├── FlatFileStore.java │ │ │ ├── MemoryStore.java │ │ │ └── SimpleStore.java │ │ ├── lang │ │ ├── CommonPluginDictionary.java │ │ ├── DefaultNumberHandler.java │ │ ├── JavaPluginDictionary.java │ │ ├── LanguageDictionary.java │ │ ├── Locale.java │ │ ├── LocaleNumberHandler.java │ │ ├── PluginDictionary.java │ │ └── Translation.java │ │ ├── lighting │ │ ├── ByteArrayCuboidLightBuffer.java │ │ ├── LightingManager.java │ │ ├── LightingRegistry.java │ │ └── Modifiable.java │ │ ├── map │ │ ├── DefaultedHashMap.java │ │ ├── DefaultedKey.java │ │ ├── DefaultedKeyArray.java │ │ ├── DefaultedKeyFactory.java │ │ ├── DefaultedKeyImpl.java │ │ └── DefaultedMap.java │ │ ├── material │ │ ├── BlockMaterial.java │ │ ├── DynamicMaterial.java │ │ ├── DynamicUpdateEntry.java │ │ ├── Material.java │ │ ├── MaterialRegistry.java │ │ ├── Placeable.java │ │ ├── basic │ │ │ ├── Air.java │ │ │ └── Solid.java │ │ ├── block │ │ │ ├── BlockFace.java │ │ │ ├── BlockFaces.java │ │ │ ├── BlockFullState.java │ │ │ └── BlockSnapshot.java │ │ └── range │ │ │ ├── CubicEffectRange.java │ │ │ ├── CuboidEffectRange.java │ │ │ ├── DiamondEffectRange.java │ │ │ ├── EffectIterator.java │ │ │ ├── EffectRange.java │ │ │ ├── EffectRangeImpl.java │ │ │ ├── ListEffectRange.java │ │ │ └── PlusEffectRange.java │ │ ├── math │ │ ├── BitSize.java │ │ ├── IntVector2.java │ │ ├── IntVector3.java │ │ ├── IntVector4.java │ │ ├── ReactConverter.java │ │ └── Rectangle.java │ │ ├── meta │ │ ├── SpoutMetaPlugin.java │ │ └── SpoutMetaPluginDictionary.java │ │ ├── model │ │ ├── Model.java │ │ ├── animation │ │ │ ├── Animation.java │ │ │ ├── AnimationPlayed.java │ │ │ ├── Bone.java │ │ │ ├── BoneTransform.java │ │ │ └── Skeleton.java │ │ └── mesh │ │ │ ├── CubeMeshFactory.java │ │ │ ├── Mesh.java │ │ │ ├── MeshFace.java │ │ │ ├── OrientedMesh.java │ │ │ ├── OrientedMeshFace.java │ │ │ └── Vertex.java │ │ ├── permissions │ │ ├── DefaultPermissions.java │ │ └── PermissionsSubject.java │ │ ├── plugin │ │ ├── LoadOrder.java │ │ ├── Plugin.java │ │ ├── PluginClassLoader.java │ │ ├── PluginDescriptionFile.java │ │ ├── PluginLoader.java │ │ ├── PluginLogger.java │ │ ├── PluginManager.java │ │ ├── security │ │ │ ├── PluginSecurityManager.java │ │ │ └── Secure.java │ │ └── services │ │ │ ├── EconomyService.java │ │ │ ├── ProtectionService.java │ │ │ ├── ServiceManager.java │ │ │ └── ServiceProvider.java │ │ ├── protocol │ │ ├── ByteBufferChannelProcessor.java │ │ ├── ChannelProcessor.java │ │ ├── ClientSession.java │ │ ├── CodecLookupService.java │ │ ├── CommonChannelInitializer.java │ │ ├── CommonChannelProcessor.java │ │ ├── CommonDecoder.java │ │ ├── CommonEncoder.java │ │ ├── CommonHandler.java │ │ ├── HandlerLookupService.java │ │ ├── Message.java │ │ ├── MessageCodec.java │ │ ├── MessageHandler.java │ │ ├── MessagePrintingHandler.java │ │ ├── PortBinding.java │ │ ├── PreprocessReplayingDecoder.java │ │ ├── ProcessingEncoder.java │ │ ├── ProcessorHandler.java │ │ ├── ProcessorSetupMessage.java │ │ ├── Protocol.java │ │ ├── SendMode.java │ │ ├── ServerSession.java │ │ ├── Session.java │ │ ├── SessionRegistry.java │ │ ├── builder │ │ │ ├── CompoundMessageField.java │ │ │ ├── FieldRef.java │ │ │ ├── FixedMessageField.java │ │ │ ├── GenericMessage.java │ │ │ ├── MessageField.java │ │ │ ├── MessageFieldImpl.java │ │ │ └── NullMessageField.java │ │ ├── dynamicid │ │ │ ├── DynamicMessageDecoder.java │ │ │ ├── DynamicMessageEncoder.java │ │ │ └── DynamicWrapperMessage.java │ │ ├── event │ │ │ ├── BlockUpdateEvent.java │ │ │ ├── ChunkDatatableSendEvent.java │ │ │ ├── ChunkFreeEvent.java │ │ │ ├── ChunkInitEvent.java │ │ │ ├── ChunkSendEvent.java │ │ │ ├── EntityUpdateEvent.java │ │ │ └── WorldChangeProtocolEvent.java │ │ ├── proxy │ │ │ ├── ConnectionInfo.java │ │ │ ├── ConnectionInfoMessage.java │ │ │ ├── ProxyStartMessage.java │ │ │ ├── RedirectMessage.java │ │ │ └── TransformableMessage.java │ │ ├── replayable │ │ │ ├── ReplayableByteBuf.java │ │ │ └── ReplayableException.java │ │ └── reposition │ │ │ ├── NullRepositionManager.java │ │ │ ├── RepositionManager.java │ │ │ └── RepositionManagerImpl.java │ │ ├── render │ │ ├── BufferContainer.java │ │ ├── Camera.java │ │ ├── Font.java │ │ ├── RenderMaterial.java │ │ ├── RenderMode.java │ │ ├── Renderer.java │ │ ├── SpoutRenderMaterials.java │ │ ├── Texture.java │ │ ├── ViewFrustum.java │ │ ├── effect │ │ │ ├── BufferEffect.java │ │ │ ├── EntityEffect.java │ │ │ ├── MeshEffect.java │ │ │ ├── RenderEffect.java │ │ │ ├── SnapshotEntity.java │ │ │ ├── SnapshotMesh.java │ │ │ └── SnapshotRender.java │ │ └── shader │ │ │ ├── Shader.java │ │ │ └── VertexBuffer.java │ │ ├── resource │ │ ├── FileSystem.java │ │ ├── LoaderNotFoundException.java │ │ ├── ResourceLoader.java │ │ ├── ResourceNotFoundException.java │ │ ├── ResourcePathResolver.java │ │ └── SpoutModels.java │ │ ├── scheduler │ │ ├── ParallelRunnable.java │ │ ├── Scheduler.java │ │ ├── SnapshotLock.java │ │ ├── Task.java │ │ ├── TaskManager.java │ │ ├── TaskPriority.java │ │ ├── TickStage.java │ │ └── Worker.java │ │ ├── security │ │ ├── EncryptionChannelProcessor.java │ │ └── SecurityHandler.java │ │ ├── signal │ │ ├── Signal.java │ │ ├── SignalInterface.java │ │ ├── SignalObject.java │ │ ├── SignalObjectDelegate.java │ │ ├── SignalSubscriberObject.java │ │ ├── SubscriberInterface.java │ │ └── SubscriberObject.java │ │ ├── tickable │ │ ├── BasicTickable.java │ │ ├── TickPriority.java │ │ └── Tickable.java │ │ └── util │ │ ├── BlockIterator.java │ │ ├── ByteBufUtils.java │ │ ├── CubicIterator.java │ │ ├── FlatIterator.java │ │ ├── IntVector3Array.java │ │ ├── IntVector3CompositeIterator.java │ │ ├── IntVector3CuboidArray.java │ │ ├── ListFile.java │ │ ├── LogicUtil.java │ │ ├── Named.java │ │ ├── OutwardIterator.java │ │ ├── Parameter.java │ │ ├── ReflectionUtils.java │ │ ├── SimpleStoredMap.java │ │ ├── SpoutToStringStyle.java │ │ ├── StoredMap.java │ │ ├── StringToUniqueIntegerMap.java │ │ ├── StringUtil.java │ │ ├── SyncedMapEvent.java │ │ ├── SyncedMapRegistry.java │ │ ├── SyncedStringMap.java │ │ ├── VarInt.java │ │ ├── access │ │ ├── AccessManager.java │ │ └── BanType.java │ │ ├── bytebit │ │ ├── ByteBitMask.java │ │ └── ByteBitSet.java │ │ ├── concurrent │ │ ├── AtomicFloat.java │ │ ├── AtomicIntegerHelper.java │ │ ├── AtomicSequenceNumber.java │ │ ├── OptimisticReadWriteLock.java │ │ └── SpinLock.java │ │ ├── cuboid │ │ ├── AlignedCuboidBlockMaterialBuffer.java │ │ ├── AlignedCuboidNibbleLightBuffer.java │ │ ├── ChunkCuboidLightBufferWrapper.java │ │ ├── CuboidBlockMaterialBuffer.java │ │ ├── CuboidBuffer.java │ │ ├── CuboidLightBuffer.java │ │ ├── CuboidNibbleLightBuffer.java │ │ ├── CuboidShortBuffer.java │ │ ├── ImmutableCuboidBlockMaterialBuffer.java │ │ ├── ImmutableHeightMapBuffer.java │ │ ├── LocalRegionChunkCuboidBlockMaterialBufferWrapper.java │ │ ├── LocalRegionChunkCuboidLightBufferWrapper.java │ │ ├── LocalRegionChunkHeightMapBufferWrapper.java │ │ ├── NullCuboidLightBuffer.java │ │ ├── UniformImmutableCuboidBlockMaterialBuffer.java │ │ └── procedure │ │ │ └── CuboidBlockMaterialProcedure.java │ │ ├── flag │ │ ├── Flag.java │ │ ├── FlagBoolean.java │ │ ├── FlagBundle.java │ │ ├── FlagContainer.java │ │ ├── FlagData.java │ │ └── FlagSingle.java │ │ ├── future │ │ └── SimpleFuture.java │ │ ├── hashing │ │ ├── ArrayHash.java │ │ ├── ByteShortByteHashed.java │ │ ├── ByteTripleHashed.java │ │ ├── Int10TripleHashed.java │ │ ├── Int21TripleHashed.java │ │ ├── IntPairHashed.java │ │ ├── NibblePairHashed.java │ │ ├── NibbleQuadHashed.java │ │ ├── ShortPairHashed.java │ │ └── SignedTenBitTripleHashed.java │ │ ├── list │ │ ├── ByteCircularBufferFIFO.java │ │ ├── IntVector3ExpandableFIFO.java │ │ ├── IntVector3FIFO.java │ │ ├── IntVector3Stack.java │ │ ├── IntVector4ExpandableFIFO.java │ │ ├── TNibbleQuadList.java │ │ └── concurrent │ │ │ ├── ConcurrentList.java │ │ │ ├── ConcurrentLongPriorityQueue.java │ │ │ ├── LongPrioritized.java │ │ │ ├── RedirectableConcurrentLinkedQueue.java │ │ │ ├── UnprotectedCopyOnUpdateArray.java │ │ │ └── setqueue │ │ │ ├── SetQueue.java │ │ │ ├── SetQueueElement.java │ │ │ └── SetQueueFullException.java │ │ ├── map │ │ ├── TByteShortByteKeyedDoubleHashMap.java │ │ ├── TByteShortByteKeyedFloatHashMap.java │ │ ├── TByteShortByteKeyedHashSet.java │ │ ├── TByteShortByteKeyedIntHashMap.java │ │ ├── TByteShortByteKeyedLongHashMap.java │ │ ├── TByteShortByteKeyedObjectHashMap.java │ │ ├── TByteTripleDoubleHashMap.java │ │ ├── TByteTripleFloatHashMap.java │ │ ├── TByteTripleIntHashMap.java │ │ ├── TByteTripleLongHashMap.java │ │ ├── TByteTripleObjectHashMap.java │ │ ├── TInt21TripleObjectHashMap.java │ │ ├── TInt21TripleObjectHashMapOfMaps.java │ │ ├── TIntPairDoubleHashMap.java │ │ ├── TIntPairFloatHashMap.java │ │ ├── TIntPairIntHashMap.java │ │ ├── TIntPairLongHashMap.java │ │ ├── TIntPairObjectHashMap.java │ │ ├── TNibbleQuadObjectHashMap.java │ │ ├── TNibbleQuadShortHashMap.java │ │ ├── TUnmodifiableInt21TripleObjectHashMap.java │ │ ├── WeakValueHashMap.java │ │ └── concurrent │ │ │ ├── AtomicBlockStore.java │ │ │ ├── AtomicByteArray.java │ │ │ ├── AtomicIntArrayStore.java │ │ │ ├── AtomicShortArray.java │ │ │ ├── AtomicVariableWidthArray.java │ │ │ ├── BlockLinkable.java │ │ │ ├── TSyncInt21TripleObjectHashMap.java │ │ │ ├── TSyncIntObjectHashMap.java │ │ │ ├── TSyncIntObjectMap.java │ │ │ ├── TSyncIntPairObjectHashMap.java │ │ │ ├── TSyncLongObjectHashMap.java │ │ │ ├── TSyncLongObjectMap.java │ │ │ ├── TripleIntObjectMap.java │ │ │ ├── TripleIntObjectReferenceArrayMap.java │ │ │ └── palette │ │ │ ├── AtomicIntShortSingleUseHashMap.java │ │ │ ├── AtomicPaletteBlockStore.java │ │ │ ├── AtomicShortIntArray.java │ │ │ ├── AtomicShortIntBackingArray.java │ │ │ ├── AtomicShortIntDirectBackingArray.java │ │ │ ├── AtomicShortIntPaletteBackingArray.java │ │ │ ├── AtomicShortIntUniformBackingArray.java │ │ │ ├── IntegerDataInputStreamCallable.java │ │ │ └── PaletteFullException.java │ │ ├── sanitation │ │ └── SafeCast.java │ │ ├── set │ │ ├── TByteTripleHashSet.java │ │ ├── TInt10Procedure.java │ │ ├── TInt10TripleSet.java │ │ ├── TInt21HashSet.java │ │ ├── TInt21TripleHashSet.java │ │ ├── TIntPairHashSet.java │ │ ├── TNibbleDualHashSet.java │ │ ├── TNibbleQuadHashSet.java │ │ └── concurrent │ │ │ ├── TSyncByteTripleHashSet.java │ │ │ ├── TSyncInt21HashSet.java │ │ │ ├── TSyncIntHashSet.java │ │ │ ├── TSyncIntPairHashSet.java │ │ │ └── TSyncLongHashSet.java │ │ ├── string │ │ └── DamerauLevenshteinAlgorithm.java │ │ ├── thread │ │ └── annotation │ │ │ ├── DelayedWrite.java │ │ │ ├── LiveRead.java │ │ │ ├── LiveWrite.java │ │ │ ├── MainThreadOnly.java │ │ │ ├── SnapshotRead.java │ │ │ └── Threadsafe.java │ │ └── typechecker │ │ ├── CollectionTypeChecker.java │ │ ├── MapTypeChecker.java │ │ └── TypeChecker.java │ └── test │ ├── java │ └── org │ │ └── spout │ │ └── api │ │ ├── SerializableTest.java │ │ ├── ai │ │ └── VectorNodeTest.java │ │ ├── block │ │ ├── BlockFaceTest.java │ │ └── BlockFacesTest.java │ │ ├── command │ │ ├── CommandArgumentsTest.java │ │ ├── CommandFlagsTest.java │ │ ├── CommandTest.java │ │ └── annotated │ │ │ └── AnnotatedCommandTest.java │ │ ├── component │ │ └── ComponentTest.java │ │ ├── data │ │ ├── DataProviderTest.java │ │ └── DataSubjectTest.java │ │ ├── datatable │ │ └── SerializableHashMapTest.java │ │ ├── event │ │ ├── EventHandlerListTest.java │ │ └── SimpleEventManagerTest.java │ │ ├── faker │ │ ├── EngineFaker.java │ │ └── WorldFaker.java │ │ ├── geo │ │ ├── CuboidTest.java │ │ ├── cuboid │ │ │ └── ContainerFillOrderTest.java │ │ └── discrete │ │ │ └── TransformTest.java │ │ ├── inventory │ │ ├── InventoryTest.java │ │ └── recipe │ │ │ ├── RecipeBuilderTest.java │ │ │ ├── RecipeTreeTest.java │ │ │ ├── ShapedRecipeTest.java │ │ │ └── ShapelessRecipeTest.java │ │ ├── io │ │ ├── regionfile │ │ │ ├── CachedRandomAccessFileTest.java │ │ │ └── SimpleRegionFileTest.java │ │ └── store │ │ │ ├── BinaryFileStoreTest.java │ │ │ ├── FlatFileStoreTest.java │ │ │ └── MemoryStoreTest.java │ │ ├── lang │ │ ├── LanguageTest.java │ │ └── keymap.yml │ │ ├── math │ │ ├── ReactConverterTest.java │ │ └── TestUtils.java │ │ ├── plugin │ │ └── PluginDescriptionFileTest.java │ │ ├── protocol │ │ ├── ByteBufferChannelProcessorTest.java │ │ ├── PreprocessReplayingDecoderTest.java │ │ └── fake │ │ │ ├── ChannelHandlerContextFaker.java │ │ │ └── FakeChannelHandlerContext.java │ │ ├── render │ │ └── ViewFrustumTest.java │ │ ├── signal │ │ └── SignalTest.java │ │ └── util │ │ ├── ByteBufUtilsTest.java │ │ ├── CubicIteratorTest.java │ │ ├── FlatIteratorTest.java │ │ ├── IntVector3ArrayTest.java │ │ ├── IntVector3CompositeIteratorTest.java │ │ ├── IntVector3CuboidArrayTest.java │ │ ├── NBTMapperTest.java │ │ ├── OutwardIteratorTest.java │ │ ├── StringToUniqueIntegerMapTest.java │ │ ├── StringUtilTest.java │ │ ├── VarIntTest.java │ │ ├── concurrent │ │ ├── AtomicFloatTest.java │ │ ├── AtomicIntegerHelperTest.java │ │ └── OptimisticReadWriteLockTest.java │ │ ├── cuboid │ │ ├── CuboidBlockMaterialBufferTest.java │ │ └── CuboidNibbleLightBufferTest.java │ │ ├── hashing │ │ ├── ByteShortByteHashedTest.java │ │ ├── ByteTripleHashedTest.java │ │ ├── Int10TripleHashedTest.java │ │ ├── Int21TripleHashedTest.java │ │ ├── IntPairHashedTest.java │ │ ├── NibblePairHashedTest.java │ │ └── NibbleQuadHashedTest.java │ │ ├── list │ │ ├── ByteCircularBufferFIFOTest.java │ │ ├── IntVector3ExpandableFIFOTest.java │ │ ├── IntVector3FIFOTest.java │ │ ├── IntVector3StackTest.java │ │ ├── IntVector4ExpandableFIFOTest.java │ │ └── concurrent │ │ │ ├── ConcurrentListTest.java │ │ │ ├── ConcurrentLongPriorityQueueTest.java │ │ │ ├── UnprotectedCopyOnUpdateArrayTest.java │ │ │ └── setqueue │ │ │ └── SetQueueTest.java │ │ ├── map │ │ ├── TInt21TripleObjectHashMapofMapsTest.java │ │ ├── WeakValueHashMapTest.java │ │ └── concurrent │ │ │ ├── AtomicByteArrayTest.java │ │ │ ├── AtomicIntReferenceArrayStoreTest.java │ │ │ ├── AtomicShortArrayTest.java │ │ │ ├── AtomicShortIntArrayTest.java │ │ │ ├── AtomicVariableWidthArrayTest.java │ │ │ ├── TSyncIntObjectHashMapTest.java │ │ │ ├── TSyncLongObjectHashMapTest.java │ │ │ └── TripleIntObjectReferenceArrayMapTest.java │ │ ├── sanitation │ │ └── SafeCastTest.java │ │ ├── set │ │ ├── Int10TripleSetTest.java │ │ └── concurrent │ │ │ ├── TSyncIntHashSetTest.java │ │ │ └── TSyncLongHashSetTest.java │ │ ├── string │ │ └── DamerauLevenshteinAlgorithmTest.java │ │ └── typechecker │ │ └── TypeCheckerTest.java │ └── resources │ ├── full_properties.yml │ ├── keymap.yml │ ├── lang-DE_DE.yml │ ├── missing_author_properties.yml │ ├── missing_main_properties.yml │ ├── missing_name_properties.yml │ ├── missing_platform_properties.yml │ ├── missing_version_properties.yml │ ├── misspelled_properties.yml │ └── valid_properties.yml ├── engine ├── pom.xml ├── src │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── spout │ │ │ │ └── engine │ │ │ │ ├── SpoutApplication.java │ │ │ │ ├── SpoutClient.java │ │ │ │ ├── SpoutConfiguration.java │ │ │ │ ├── SpoutEngine.java │ │ │ │ ├── SpoutProxy.java │ │ │ │ ├── SpoutRenderer.java │ │ │ │ ├── SpoutServer.java │ │ │ │ ├── audio │ │ │ │ ├── AudioConfiguration.java │ │ │ │ ├── SpoutSoundListener.java │ │ │ │ ├── SpoutSoundManager.java │ │ │ │ └── SpoutSoundSource.java │ │ │ │ ├── batcher │ │ │ │ ├── ChunkMeshBatchAggregator.java │ │ │ │ ├── GL11SpriteBatch.java │ │ │ │ └── SpriteBatch.java │ │ │ │ ├── command │ │ │ │ ├── AnnotatedCommandExecutorTest.java │ │ │ │ ├── ClientCommands.java │ │ │ │ ├── CommonCommands.java │ │ │ │ ├── InputCommands.java │ │ │ │ ├── MessagingCommands.java │ │ │ │ ├── RendererCommands.java │ │ │ │ ├── ServerCommands.java │ │ │ │ └── TestCommands.java │ │ │ │ ├── component │ │ │ │ └── entity │ │ │ │ │ ├── ClientTextModelComponent.java │ │ │ │ │ ├── SpoutAnimationComponent.java │ │ │ │ │ ├── SpoutFallbackMovementComponent.java │ │ │ │ │ ├── SpoutModelComponent.java │ │ │ │ │ ├── SpoutPhysicsComponent.java │ │ │ │ │ └── SpoutPlayerNetworkComponent.java │ │ │ │ ├── console │ │ │ │ ├── ConsoleCommandSource.java │ │ │ │ ├── ConsoleManager.java │ │ │ │ └── SpoutCommandCompleter.java │ │ │ │ ├── effects │ │ │ │ └── SSAOPostProcessEffect.java │ │ │ │ ├── entity │ │ │ │ ├── EntityManager.java │ │ │ │ ├── SpoutClientPlayer.java │ │ │ │ ├── SpoutEntity.java │ │ │ │ ├── SpoutEntitySnapshot.java │ │ │ │ ├── SpoutPlayer.java │ │ │ │ └── SpoutPlayerSnapshot.java │ │ │ │ ├── filesystem │ │ │ │ ├── ChunkDataForRegion.java │ │ │ │ ├── ClientFileSystem.java │ │ │ │ ├── CommonFileSystem.java │ │ │ │ ├── ServerFileSystem.java │ │ │ │ ├── path │ │ │ │ │ ├── FilePathResolver.java │ │ │ │ │ ├── JarFilePathResolver.java │ │ │ │ │ └── ZipFilePathResolver.java │ │ │ │ ├── resource │ │ │ │ │ ├── ClientEntityPrefab.java │ │ │ │ │ ├── ClientFont.java │ │ │ │ │ ├── ClientModel.java │ │ │ │ │ ├── ClientRenderMaterial.java │ │ │ │ │ ├── ClientRenderTexture.java │ │ │ │ │ ├── ClientSound.java │ │ │ │ │ ├── ClientTexture.java │ │ │ │ │ ├── ClientTextureHandle.java │ │ │ │ │ ├── ServerTexture.java │ │ │ │ │ └── loader │ │ │ │ │ │ ├── AnimationLoader.java │ │ │ │ │ │ ├── BlockMeshLoader.java │ │ │ │ │ │ ├── CommandBatchLoader.java │ │ │ │ │ │ ├── CubeMeshLoader.java │ │ │ │ │ │ ├── EntityPrefabLoader.java │ │ │ │ │ │ ├── FontLoader.java │ │ │ │ │ │ ├── MeshLoader.java │ │ │ │ │ │ ├── ModelLoader.java │ │ │ │ │ │ ├── RenderMaterialLoader.java │ │ │ │ │ │ ├── ShaderLoader.java │ │ │ │ │ │ ├── SkeletonLoader.java │ │ │ │ │ │ ├── SoundLoader.java │ │ │ │ │ │ └── TextureLoader.java │ │ │ │ └── versioned │ │ │ │ │ ├── ChunkFiles.java │ │ │ │ │ ├── ColumnFiles.java │ │ │ │ │ ├── EntityFiles.java │ │ │ │ │ ├── PlayerFiles.java │ │ │ │ │ └── WorldFiles.java │ │ │ │ ├── gui │ │ │ │ ├── DebugScreen.java │ │ │ │ ├── DevConsole.java │ │ │ │ ├── SpoutScreenStack.java │ │ │ │ └── SpoutWidget.java │ │ │ │ ├── input │ │ │ │ ├── SpoutInputConfiguration.java │ │ │ │ └── SpoutInputManager.java │ │ │ │ ├── listener │ │ │ │ ├── SpoutProxyListener.java │ │ │ │ ├── SpoutServerListener.java │ │ │ │ └── channel │ │ │ │ │ └── SpoutProxyConnectListener.java │ │ │ │ ├── mesh │ │ │ │ ├── BaseMesh.java │ │ │ │ └── ChunkMesh.java │ │ │ │ ├── protocol │ │ │ │ ├── NetworkSendThread.java │ │ │ │ ├── NetworkSendThreadPool.java │ │ │ │ ├── PortBindingImpl.java │ │ │ │ ├── PortBindings.java │ │ │ │ ├── SpoutClientSession.java │ │ │ │ ├── SpoutProxySession.java │ │ │ │ ├── SpoutServerSession.java │ │ │ │ ├── SpoutSession.java │ │ │ │ ├── SpoutSessionRegistry.java │ │ │ │ └── builtin │ │ │ │ │ ├── SpoutProtocol.java │ │ │ │ │ ├── codec │ │ │ │ │ ├── BlockUpdateCodec.java │ │ │ │ │ ├── ChunkDataCodec.java │ │ │ │ │ ├── ChunkDatatableCodec.java │ │ │ │ │ ├── ClickRequestCodec.java │ │ │ │ │ ├── ClickResponseCodec.java │ │ │ │ │ ├── CommandCodec.java │ │ │ │ │ ├── CuboidBlockUpdateCodec.java │ │ │ │ │ ├── EntityDatatableCodec.java │ │ │ │ │ ├── LoginCodec.java │ │ │ │ │ ├── ReadyCodec.java │ │ │ │ │ ├── SyncedMapCodec.java │ │ │ │ │ ├── UpdateEntityCodec.java │ │ │ │ │ └── WorldChangeCodec.java │ │ │ │ │ ├── handler │ │ │ │ │ ├── BlockUpdateMessageHandler.java │ │ │ │ │ ├── ChunkDataMessageHandler.java │ │ │ │ │ ├── ChunkDatatableMessageHandler.java │ │ │ │ │ ├── ClickRequestMessageHandler.java │ │ │ │ │ ├── ClickResponseMessageHandler.java │ │ │ │ │ ├── CommandMessageHandler.java │ │ │ │ │ ├── CuboidBlockUpdateMessageHandler.java │ │ │ │ │ ├── EntityDatatableMessageHandler.java │ │ │ │ │ ├── LoginMessageHandler.java │ │ │ │ │ ├── ReadyMessageHandler.java │ │ │ │ │ ├── SyncedMapMessageHandler.java │ │ │ │ │ ├── UpdateEntityMessageHandler.java │ │ │ │ │ └── WorldChangeMessageHandler.java │ │ │ │ │ └── message │ │ │ │ │ ├── BlockUpdateMessage.java │ │ │ │ │ ├── ChunkDataMessage.java │ │ │ │ │ ├── ChunkDatatableMessage.java │ │ │ │ │ ├── ClickRequestMessage.java │ │ │ │ │ ├── ClickResponseMessage.java │ │ │ │ │ ├── CommandMessage.java │ │ │ │ │ ├── CuboidBlockUpdateMessage.java │ │ │ │ │ ├── DatatableMessage.java │ │ │ │ │ ├── EntityDatatableMessage.java │ │ │ │ │ ├── LoginMessage.java │ │ │ │ │ ├── ReadyMessage.java │ │ │ │ │ ├── SpoutMessage.java │ │ │ │ │ ├── SyncedMapMessage.java │ │ │ │ │ ├── UpdateEntityMessage.java │ │ │ │ │ └── WorldChangeMessage.java │ │ │ │ ├── renderer │ │ │ │ ├── BatchVertexRenderer.java │ │ │ │ ├── EntityRenderer.java │ │ │ │ ├── GL20BatchVertexRenderer.java │ │ │ │ ├── GL30BatchVertexRenderer.java │ │ │ │ ├── GL40BatchVertexRenderer.java │ │ │ │ ├── GLBufferContainer.java │ │ │ │ ├── GLES20BatchVertexRenderer.java │ │ │ │ ├── WorldRenderer.java │ │ │ │ ├── shader │ │ │ │ │ ├── BasicShader.java │ │ │ │ │ ├── ClientShader.java │ │ │ │ │ ├── EmptyShader.java │ │ │ │ │ ├── ShaderCompileException.java │ │ │ │ │ ├── ShaderHelper.java │ │ │ │ │ ├── ShaderVariableNotFoundException.java │ │ │ │ │ ├── SpoutShader.java │ │ │ │ │ └── variables │ │ │ │ │ │ ├── AttributeShaderVariable.java │ │ │ │ │ │ ├── ColorShaderVariable.java │ │ │ │ │ │ ├── FloatShaderVariable.java │ │ │ │ │ │ ├── IntShaderVariable.java │ │ │ │ │ │ ├── Mat2ShaderVariable.java │ │ │ │ │ │ ├── Mat3ShaderVariable.java │ │ │ │ │ │ ├── Mat4ArrayShaderVariable.java │ │ │ │ │ │ ├── Mat4ShaderVariable.java │ │ │ │ │ │ ├── ShaderVariable.java │ │ │ │ │ │ ├── TextureSamplerShaderVariable.java │ │ │ │ │ │ ├── Vec2ShaderVariable.java │ │ │ │ │ │ ├── Vec3ShaderVariable.java │ │ │ │ │ │ ├── Vec4ShaderVariable.java │ │ │ │ │ │ └── Vector3ArrayShaderVariable.java │ │ │ │ ├── vertexbuffer │ │ │ │ │ └── SpoutFloatBuffer.java │ │ │ │ └── vertexformat │ │ │ │ │ ├── PositionColor.java │ │ │ │ │ ├── PositionNormalTexture.java │ │ │ │ │ └── vertexattributes │ │ │ │ │ └── VertexAttributes.java │ │ │ │ ├── scheduler │ │ │ │ ├── SchedulerSyncExecutorThread.java │ │ │ │ ├── SpoutParallelTaskManager.java │ │ │ │ ├── SpoutScheduler.java │ │ │ │ ├── SpoutTask.java │ │ │ │ ├── SpoutTaskManager.java │ │ │ │ ├── SpoutWorker.java │ │ │ │ ├── TaskPriorityQueue.java │ │ │ │ └── parallel │ │ │ │ │ ├── ParallelTaskInfo.java │ │ │ │ │ └── RegionIdPair.java │ │ │ │ ├── util │ │ │ │ ├── ChunkModel.java │ │ │ │ ├── ChunkSnapshotModel.java │ │ │ │ ├── DeadlockMonitor.java │ │ │ │ ├── MacOSXUtils.java │ │ │ │ ├── Perlin2D.java │ │ │ │ ├── RectangularPacker.java │ │ │ │ ├── StackTrace.java │ │ │ │ ├── StringUtil.java │ │ │ │ ├── TextWrapper.java │ │ │ │ ├── TicklockMonitor.java │ │ │ │ ├── TripleInt.java │ │ │ │ ├── access │ │ │ │ │ └── SpoutAccessManager.java │ │ │ │ ├── argument │ │ │ │ │ ├── EnumConverter.java │ │ │ │ │ ├── PlatformConverter.java │ │ │ │ │ └── RenderModeConverter.java │ │ │ │ ├── packed │ │ │ │ │ └── PackedCoords.java │ │ │ │ └── thread │ │ │ │ │ ├── AsyncExecutorUtils.java │ │ │ │ │ ├── AsyncManager.java │ │ │ │ │ ├── coretasks │ │ │ │ │ ├── CopySnapshotTask.java │ │ │ │ │ ├── DynamicUpdatesTask.java │ │ │ │ │ ├── FinalizeTask.java │ │ │ │ │ ├── GlobalManagerRunnableFactory.java │ │ │ │ │ ├── LightingTask.java │ │ │ │ │ ├── ManagerRunnable.java │ │ │ │ │ ├── ManagerRunnableFactory.java │ │ │ │ │ ├── PhysicsTask.java │ │ │ │ │ ├── PreSnapshotTask.java │ │ │ │ │ ├── SequencedManagerRunnableFactory.java │ │ │ │ │ └── StartTickTask.java │ │ │ │ │ ├── lock │ │ │ │ │ └── SpoutSnapshotLock.java │ │ │ │ │ ├── snapshotable │ │ │ │ │ ├── SnapshotManager.java │ │ │ │ │ ├── SnapshotUpdate.java │ │ │ │ │ ├── Snapshotable.java │ │ │ │ │ ├── SnapshotableArrayList.java │ │ │ │ │ ├── SnapshotableBoolean.java │ │ │ │ │ ├── SnapshotableByte.java │ │ │ │ │ ├── SnapshotableByteArray.java │ │ │ │ │ ├── SnapshotableDouble.java │ │ │ │ │ ├── SnapshotableFloat.java │ │ │ │ │ ├── SnapshotableHashMap.java │ │ │ │ │ ├── SnapshotableHashSet.java │ │ │ │ │ ├── SnapshotableInt.java │ │ │ │ │ ├── SnapshotableLinkedHashMap.java │ │ │ │ │ ├── SnapshotableLong.java │ │ │ │ │ ├── SnapshotableReference.java │ │ │ │ │ ├── SnapshotableShort.java │ │ │ │ │ ├── SnapshotableShortArray.java │ │ │ │ │ └── SnapshotableTripleIntHashMap.java │ │ │ │ │ └── threadfactory │ │ │ │ │ └── NamedThreadFactory.java │ │ │ │ └── world │ │ │ │ ├── MemoryReclamationThread.java │ │ │ │ ├── RegionFileManager.java │ │ │ │ ├── RegionGenerator.java │ │ │ │ ├── RegionSource.java │ │ │ │ ├── SpoutBlock.java │ │ │ │ ├── SpoutChunk.java │ │ │ │ ├── SpoutChunkSnapshot.java │ │ │ │ ├── SpoutChunkSnapshotFuture.java │ │ │ │ ├── SpoutChunkSnapshotModel.java │ │ │ │ ├── SpoutClientWorld.java │ │ │ │ ├── SpoutColumn.java │ │ │ │ ├── SpoutRegion.java │ │ │ │ ├── SpoutServerWorld.java │ │ │ │ ├── SpoutWorld.java │ │ │ │ ├── WorldSavingThread.java │ │ │ │ ├── collision │ │ │ │ ├── SpoutCollisionListener.java │ │ │ │ └── SpoutLinkedWorldInfo.java │ │ │ │ ├── dynamic │ │ │ │ ├── ChunkPoint.java │ │ │ │ ├── DynamicBlockUpdate.java │ │ │ │ └── DynamicBlockUpdateTree.java │ │ │ │ └── physics │ │ │ │ ├── PhysicsQueue.java │ │ │ │ ├── PhysicsUpdate.java │ │ │ │ └── UpdateQueue.java │ │ └── resources │ │ │ ├── entities │ │ │ └── Spouty │ │ │ │ ├── spouty.obj │ │ │ │ ├── spouty.png │ │ │ │ ├── spouty.sam │ │ │ │ ├── spouty.sep │ │ │ │ ├── spouty.ske │ │ │ │ ├── spouty.smt │ │ │ │ ├── spouty.spm │ │ │ │ ├── spouty │ │ │ │ ├── spouty.obj │ │ │ │ ├── spouty.sam │ │ │ │ └── spouty.ske │ │ │ │ └── spouty2.sam │ │ │ ├── exporter │ │ │ └── Spout.rtpl │ │ │ ├── fallbacks │ │ │ ├── cube.uvs │ │ │ ├── entity.sep │ │ │ ├── fallback.120.frag │ │ │ ├── fallback.120.vert │ │ │ ├── fallback.330.frag │ │ │ ├── fallback.330.vert │ │ │ ├── fallback.obj │ │ │ ├── fallback.png │ │ │ ├── fallback.spm │ │ │ ├── fallback.ssf │ │ │ └── generic.smt │ │ │ ├── fonts │ │ │ └── ubuntu │ │ │ │ ├── Ubuntu-B.ttf │ │ │ │ ├── Ubuntu-BI.ttf │ │ │ │ ├── Ubuntu-C.ttf │ │ │ │ ├── Ubuntu-L.ttf │ │ │ │ ├── Ubuntu-LI.ttf │ │ │ │ ├── Ubuntu-M.ttf │ │ │ │ ├── Ubuntu-MI.ttf │ │ │ │ ├── Ubuntu-R.ttf │ │ │ │ ├── Ubuntu-RI.ttf │ │ │ │ ├── UbuntuMono-B.ttf │ │ │ │ ├── UbuntuMono-BI.ttf │ │ │ │ ├── UbuntuMono-R.ttf │ │ │ │ └── UbuntuMono-RI.ttf │ │ │ ├── lang │ │ │ ├── keymap.yml │ │ │ └── lang-DE_DE.yml │ │ │ ├── materials │ │ │ ├── BasicMaterial.smt │ │ │ ├── ExampleMaterial.smt │ │ │ ├── FontMaterial.smt │ │ │ ├── GUIColorMaterial.smt │ │ │ ├── GUIMaterial.smt │ │ │ ├── SkydomeMaterial.smt │ │ │ ├── SolidBlock.smt │ │ │ ├── SphericalSkydome.smt │ │ │ ├── UnknownBlock.smt │ │ │ └── postprocess │ │ │ │ └── ssao.smt │ │ │ ├── models │ │ │ ├── basic │ │ │ │ ├── solidBlue.uvs │ │ │ │ ├── solidBrown.uvs │ │ │ │ ├── solidGray.uvs │ │ │ │ ├── solidGreen.uvs │ │ │ │ ├── solidLightGreen.uvs │ │ │ │ ├── solidRed.uvs │ │ │ │ └── solidSkyBlue.uvs │ │ │ ├── defaultskydome.spm │ │ │ ├── entity │ │ │ │ └── model.sam │ │ │ ├── meshes │ │ │ │ ├── block.uvs │ │ │ │ ├── cube.obj │ │ │ │ ├── dirt.obj │ │ │ │ ├── grass.obj │ │ │ │ ├── skydome.obj │ │ │ │ ├── skydome2.obj │ │ │ │ └── stone.obj │ │ │ ├── solidBlue.spm │ │ │ ├── solidBrown.spm │ │ │ ├── solidGray.spm │ │ │ ├── solidGreen.spm │ │ │ ├── solidLightGreen.spm │ │ │ ├── solidRed.spm │ │ │ ├── solidSkyBlue.spm │ │ │ ├── sphereical_skydome.spm │ │ │ └── unknownblock.spm │ │ │ ├── natives │ │ │ ├── linux.txt │ │ │ ├── osx.txt │ │ │ └── windows.txt │ │ │ ├── scripts │ │ │ ├── runclient.bat │ │ │ ├── runclient.sh │ │ │ ├── runserver.bat │ │ │ └── runserver.sh │ │ │ ├── shaders │ │ │ ├── basic.120.frag │ │ │ ├── basic.120.vert │ │ │ ├── basic.330.frag │ │ │ ├── basic.330.vert │ │ │ ├── basic.ssf │ │ │ ├── bones1b1a │ │ │ │ ├── bones.120.vert │ │ │ │ ├── bones.330.vert │ │ │ │ └── bones.ssf │ │ │ ├── bones2b1a │ │ │ │ ├── bones.ssf │ │ │ │ ├── bones2.120.vert │ │ │ │ └── bones2.330.vert │ │ │ ├── bones2b2a │ │ │ │ ├── bones.120.vert │ │ │ │ ├── bones.330.vert │ │ │ │ └── bones.ssf │ │ │ ├── bones2b2aInstanced │ │ │ │ ├── bones.120.vert │ │ │ │ ├── bones.330.vert │ │ │ │ └── bones.ssf │ │ │ ├── diffuse.120.frag │ │ │ ├── diffuse.330.frag │ │ │ ├── diffuse.ssf │ │ │ ├── gui.basic.120.vert │ │ │ ├── gui.basic.330.vert │ │ │ ├── guiColorShader.120.frag │ │ │ ├── guiColorShader.330.frag │ │ │ ├── guiColorShader.ssf │ │ │ ├── guiShader.120.frag │ │ │ ├── guiShader.330.frag │ │ │ ├── guiShader.ssf │ │ │ ├── postprocess │ │ │ │ ├── ssao.120.frag │ │ │ │ ├── ssao.330.frag │ │ │ │ ├── ssao.330.vert │ │ │ │ ├── ssao.ssf │ │ │ │ ├── ssao_blur.120.frag │ │ │ │ └── ssao_blur.330.frag │ │ │ ├── skyShader.120.frag │ │ │ ├── skyShader.120.vert │ │ │ ├── skyShader.330.frag │ │ │ ├── skyShader.330.vert │ │ │ ├── skyShader.ssf │ │ │ ├── textShader.120.frag │ │ │ ├── textShader.330.frag │ │ │ └── textShader.ssf │ │ │ └── textures │ │ │ ├── colorTerrain.png │ │ │ ├── orange.32.png │ │ │ ├── skydome_cloudy.png │ │ │ ├── sphereical_noon.png │ │ │ └── testsky.png │ └── test │ │ └── java │ │ └── org │ │ └── spout │ │ └── engine │ │ ├── SerializableTest.java │ │ ├── batcher │ │ └── ChunkMeshBatchTest.java │ │ ├── faker │ │ ├── ChunkFaker.java │ │ ├── EngineFaker.java │ │ ├── RegionFaker.java │ │ ├── SchedulerFaker.java │ │ └── WorldFaker.java │ │ ├── gui │ │ └── FocusTest.java │ │ ├── protocol │ │ ├── BaseProtocolTest.java │ │ └── SpoutProtocolTest.java │ │ ├── util │ │ └── packed │ │ │ └── PackedCoordsTest.java │ │ └── world │ │ └── dynamic │ │ ├── DynamicBlockUpdateTest.java │ │ └── DynamicBlockUpdateTreeTest.java └── tools │ ├── SAM exporter │ └── io_anim_sam │ │ └── __init__.py │ └── SKE exporter │ └── io_anim_ske │ └── __init__.py ├── logging ├── pom.xml └── src │ └── main │ └── java │ └── org │ └── spout │ └── logging │ ├── LoggerOutputStream.java │ ├── MessageFormatter.java │ ├── file │ └── RotatingFileHandler.java │ └── jline │ ├── CommandCallback.java │ └── JLineHandler.java ├── math ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── spout │ │ │ └── math │ │ │ ├── HashFunctions.java │ │ │ └── TrigMath.java │ ├── template │ │ └── org │ │ │ └── spout │ │ │ └── math │ │ │ ├── GenericMath.template │ │ │ ├── imaginary │ │ │ ├── Complex_E_.template │ │ │ ├── Imaginary_E_.template │ │ │ └── Quaternion_E_.template │ │ │ ├── matrix │ │ │ ├── Matrix2_E_.template │ │ │ ├── Matrix3_E_.template │ │ │ ├── Matrix4_E_.template │ │ │ ├── MatrixN_E_.template │ │ │ └── Matrix_E_.template │ │ │ └── vector │ │ │ ├── Vector2_E_.template │ │ │ ├── Vector3_E_.template │ │ │ ├── Vector4_E_.template │ │ │ ├── VectorN_E_.template │ │ │ └── Vector_E_.template │ └── templatei │ │ └── org │ │ └── spout │ │ └── math │ │ └── vector │ │ ├── Vector2_E_.template │ │ ├── Vector3_E_.template │ │ ├── Vector4_E_.template │ │ ├── VectorN_E_.template │ │ └── Vector_E_.template │ └── test │ ├── java │ └── org │ │ └── spout │ │ └── math │ │ └── test │ │ ├── GenericMathTest.java │ │ └── TrigMathTest.java │ ├── template │ └── org │ │ └── spout │ │ └── math │ │ └── test │ │ ├── TestUtil_E_.template │ │ ├── imaginary │ │ ├── Complex_E_Test.template │ │ └── Quaternion_E_Test.template │ │ ├── matrix │ │ ├── Matrix2_E_Test.template │ │ ├── Matrix3_E_Test.template │ │ ├── Matrix4_E_Test.template │ │ └── MatrixN_E_Test.template │ │ └── vector │ │ ├── Vector2_E_Test.template │ │ ├── Vector3_E_Test.template │ │ ├── Vector4_E_Test.template │ │ └── VectorN_E_Test.template │ └── templatei │ └── org │ └── spout │ └── math │ └── test │ ├── TestUtil_E_.template │ └── vector │ ├── Vector2_E_Test.template │ ├── Vector3_E_Test.template │ ├── Vector4_E_Test.template │ └── VectorN_E_Test.template └── pom.xml /.gitattributes: -------------------------------------------------------------------------------- 1 | # Normalize as LF in the repository, OS native locally 2 | * text=auto 3 | *.java text 4 | 5 | # Binary files that should not be modified 6 | *.dat binary 7 | *.db binary 8 | *.icns binary 9 | *.ico binary 10 | *.key binary 11 | *.jks binary 12 | *.jpg binary 13 | *.png binary 14 | *.ttf binary 15 | *.wav binary 16 | JavaApplicationStub binary 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Build # 2 | ######### 3 | MANIFEST.MF 4 | dependency-reduced-pom.xml 5 | 6 | # Compiled # 7 | ############ 8 | bin 9 | build 10 | dist 11 | lib 12 | out 13 | target 14 | *.com 15 | *.class 16 | *.dll 17 | *.exe 18 | *.o 19 | *.so 20 | 21 | # Databases # 22 | ############# 23 | *.db 24 | *.sql 25 | *.sqlite 26 | 27 | # Packages # 28 | ############ 29 | *.7z 30 | *.dmg 31 | *.gz 32 | *.iso 33 | *.jar 34 | *.rar 35 | *.tar 36 | *.zip 37 | 38 | # Repository # 39 | ############## 40 | .git 41 | 42 | # Logging # 43 | ########### 44 | /logs 45 | *.log 46 | 47 | # Misc # 48 | ######## 49 | *.bak 50 | 51 | # System # 52 | ########## 53 | .DS_Store 54 | ehthumbs.db 55 | Thumbs.db 56 | 57 | # Project # 58 | ########### 59 | .classpath 60 | .externalToolBuilders 61 | .idea 62 | .project 63 | .settings 64 | nbproject 65 | atlassian-ide-plugin.xml 66 | build.xml 67 | nb-configuration.xml 68 | *.iml 69 | *.ipr 70 | *.iws 71 | 72 | # Runtime # 73 | ########### 74 | /cache 75 | /config 76 | /data 77 | /natives 78 | /plugins 79 | /resources 80 | /update 81 | /updates 82 | /worlds 83 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # Source language and JDK version to use. 2 | language: java 3 | jdk: oraclejdk7 4 | 5 | # Compile and package JAR and set build properties. 6 | install: mvn package -DbuildNumber=$TRAVIS_BUILD_NUMBER -DciSystem=travis -Dcommit=${TRAVIS_COMMIT:0:7} 7 | after_success: 8 | # Get files for use with build, namely the custom Maven settings.xml. 9 | - "git clone https://github.com/SpoutDev/travis-ci-resources.git target/travis" 10 | # Check if commit s not a pull request, if git repo is official, and if branch is master. If checks pass, deploy artifacts to Maven repository. 11 | - "[[ $TRAVIS_PULL_REQUEST == false ]] && [[ $TRAVIS_REPO_SLUG == SpoutDev/Spout ]] && [[ $TRAVIS_BRANCH == master ]] && mvn deploy --settings target/travis/settings.xml" 12 | 13 | notifications: 14 | # Disable build status email notifications, until the issue with forks is fixed. 15 | email: false 16 | webhooks: 17 | # Send build information and status to Notifico. 18 | - http://n.tkte.ch/h/518/lFp1AJUSCBcaAgv_Xui6rHYB 19 | 20 | env: 21 | global: 22 | - secure: "xszG/f9V08yaLDcLVuaa2L8Rb9TM9tGzAAt4cFsCWypDZnxcT/OMiSFCFYqMOGY6jLrhtXumIMokd99OyXwpR0aIAOOtknfsQK6MZU/Di5bSSWDpNWaqU+xX6jxjj5onfiHvj189JQqsOGpjpseeQNfJ8OgvMBBxzM6sDY4PApM=" 23 | - secure: "M43n6ukI0KvXFvrxmfpU3YgF/jKXIVPhsFxbYKoUX0B0DPua11Ms8L62uFlLUJkDa0B9vcuGZcgD5qxVrrHED+8SxnJVT9OjuSAyGvIAGE7EHTqEZxwClW03Jvurged1LwdrAH9LKFifa+do3dDGQCWZ47RbO2v2URZjABazRJk=" 24 | -------------------------------------------------------------------------------- /HEADER.txt: -------------------------------------------------------------------------------- 1 | This file is part of Spout. 2 | 3 | Copyright (c) ${inceptionYear} ${organization} <${url}/> 4 | Spout is licensed under the Spout License Version 1. 5 | 6 | Spout is free software: you can redistribute it and/or modify it under 7 | the terms of the GNU Lesser General Public License as published by the Free 8 | Software Foundation, either version 3 of the License, or (at your option) 9 | any later version. 10 | 11 | In addition, 180 days after any changes are published, you can use the 12 | software, incorporating those changes, under the terms of the MIT license, 13 | as described in the Spout License Version 1. 14 | 15 | Spout is distributed in the hope that it will be useful, but WITHOUT ANY 16 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 17 | FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 18 | more details. 19 | 20 | You should have received a copy of the GNU Lesser General Public License, 21 | the MIT license and the Spout License Version 1 along with this program. 22 | If not, see for the GNU Lesser General Public 23 | License and see for the full license, including 24 | the MIT license. -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/Platform.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api; 28 | 29 | /** 30 | * Platform describes whether the plugin was written for the client, the server, or for both. 31 | */ 32 | public enum Platform { 33 | SERVER, 34 | CLIENT, 35 | PROXY; 36 | } 37 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/ai/AStarStorage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.ai; 28 | 29 | public interface AStarStorage { 30 | void close(AStarNode node); 31 | 32 | AStarNode getBestNode(); 33 | 34 | void open(AStarNode node); 35 | 36 | AStarNode removeBestNode(); 37 | 38 | boolean shouldExamine(AStarNode neighbour); 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/ai/Agent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.ai; 28 | 29 | public interface Agent { 30 | } 31 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/ai/Plan.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.ai; 28 | 29 | public interface Plan { 30 | boolean isComplete(); 31 | 32 | void update(T t); 33 | } 34 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/ai/Sensor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.ai; 28 | 29 | import org.spout.api.ai.goap.WorldState; 30 | 31 | public interface Sensor { 32 | WorldState generateState(); 33 | } -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/ai/UnboundedAStarGoal.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.ai; 28 | 29 | public abstract class UnboundedAStarGoal implements AStarGoal { 30 | @Override 31 | public float getInitialCost(T node) { 32 | return 0; 33 | } 34 | 35 | @Override 36 | public boolean isFinished(T node) { 37 | return false; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/ai/goap/Action.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.ai.goap; 28 | 29 | public interface Action { 30 | void activate(); 31 | 32 | boolean evaluateContextPreconditions(); 33 | 34 | float getCost(); 35 | 36 | WorldState getEffects(); 37 | 38 | WorldState getPreconditions(); 39 | 40 | boolean isComplete(); 41 | 42 | void update(); 43 | } 44 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/ai/goap/ActionPlanner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.ai.goap; 28 | 29 | public interface ActionPlanner { 30 | Iterable getAvailableActions(); 31 | 32 | float getCostModifierFor(Action action); 33 | 34 | void update(); 35 | 36 | void registerAction(Action action); 37 | 38 | void registerGoal(Goal goal); 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/ai/goap/Goal.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.ai.goap; 28 | 29 | public interface Goal { 30 | WorldState getGoalState(); 31 | 32 | int getPriority(); 33 | 34 | boolean shouldContinue(); 35 | } 36 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/ai/pathfinder/AbstractBlockSource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.ai.pathfinder; 28 | 29 | import org.spout.api.material.Material; 30 | 31 | public abstract class AbstractBlockSource implements BlockSource { 32 | @Override 33 | public Material getMaterialAt(int x, int y, int z) { 34 | return Material.get(getBlockTypeIdAt(x, y, z)); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/ai/pathfinder/BlockExaminer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.ai.pathfinder; 28 | 29 | public interface BlockExaminer { 30 | float getCost(BlockSource source, PathPoint point); 31 | 32 | boolean isPassable(BlockSource source, PathPoint point); 33 | } -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/ai/pathfinder/BlockSource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.ai.pathfinder; 28 | 29 | import org.spout.api.material.Material; 30 | import org.spout.math.vector.Vector3f; 31 | 32 | public interface BlockSource { 33 | int getBlockTypeIdAt(int x, int y, int z); 34 | 35 | int getBlockTypeIdAt(Vector3f pos); 36 | 37 | Material getMaterialAt(int x, int y, int z); 38 | 39 | Material getMaterialAt(Vector3f pos); 40 | } -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/ai/pathfinder/PathPoint.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.ai.pathfinder; 28 | 29 | import org.spout.api.entity.Entity; 30 | import org.spout.api.geo.cuboid.Block; 31 | import org.spout.math.vector.Vector3f; 32 | 33 | public interface PathPoint { 34 | void addCallback(PathCallback callback); 35 | 36 | Vector3f getVector(); 37 | 38 | public static interface PathCallback { 39 | void run(Entity entity, Block point); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/command/filter/PlayerFilter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.command.filter; 28 | 29 | import org.spout.api.entity.Player; 30 | 31 | public class PlayerFilter extends CommandSourceFilter { 32 | public PlayerFilter() { 33 | super(Player.class); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/component/entity/AIComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.component.entity; 28 | 29 | public abstract class AIComponent extends EntityComponent { 30 | } 31 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/component/widget/SliderComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.component.widget; 28 | 29 | /** 30 | * Represents an element that has a sliding mechanism between zero and one float values. 31 | */ 32 | public class SliderComponent extends WidgetComponent { 33 | } 34 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/component/widget/SpinnerComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.component.widget; 28 | 29 | /** 30 | * Represents an element that has multiple values that are set with arrows. 31 | */ 32 | public class SpinnerComponent extends WidgetComponent { 33 | } 34 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/component/widget/list/ComboBoxComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.component.widget.list; 28 | 29 | import org.spout.api.component.widget.WidgetComponent; 30 | 31 | /** 32 | * Represents an element with a drop down menu. 33 | */ 34 | public class ComboBoxComponent extends WidgetComponent { 35 | } 36 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/component/widget/list/ItemListComponent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.component.widget.list; 28 | 29 | import org.spout.api.component.widget.WidgetComponent; 30 | 31 | /** 32 | * Represents a element that has multiple "items" in it. 33 | */ 34 | public class ItemListComponent extends WidgetComponent { 35 | } 36 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/entity/PlayerSnapshot.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.entity; 28 | 29 | import org.spout.api.util.Named; 30 | 31 | /** 32 | * Represents a snapshot of player state at a UTC timestamp, with immutable values 33 | */ 34 | public interface PlayerSnapshot extends EntitySnapshot, Named { 35 | @Override 36 | public Player getReference(); 37 | } 38 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/event/EventExecutor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.event; 28 | 29 | import org.spout.api.exception.EventException; 30 | 31 | public interface EventExecutor { 32 | public void execute(Event event) throws EventException; 33 | } 34 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/event/Listener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.event; 28 | 29 | /** 30 | * An empty interface that all event handler classes have to implement. 31 | */ 32 | public interface Listener { 33 | } 34 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/event/audio/SoundEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.event.audio; 28 | 29 | import org.spout.api.audio.SoundSource; 30 | import org.spout.api.event.Event; 31 | 32 | public abstract class SoundEvent extends Event { 33 | private final SoundSource source; 34 | 35 | public SoundEvent(SoundSource source) { 36 | this.source = source; 37 | } 38 | 39 | public SoundSource getSource() { 40 | return source; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/event/entity/EntityEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.event.entity; 28 | 29 | import org.spout.api.entity.Entity; 30 | 31 | /** 32 | * @author zml2008 33 | */ 34 | public interface EntityEvent { 35 | /** 36 | * Gets the entity associated with this event. 37 | * 38 | * @return The entity associated with the event. 39 | */ 40 | Entity getEntity(); 41 | } 42 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/event/object/EventableListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.event.object; 28 | 29 | /** 30 | * Listener for eventable object listeners 31 | */ 32 | public interface EventableListener { 33 | public void onEvent(T event); 34 | } 35 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/event/object/ObjectEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.event.object; 28 | 29 | @SuppressWarnings ("rawtypes") 30 | public class ObjectEvent { 31 | private final T associatedObject; 32 | 33 | public ObjectEvent(T associatedObject) { 34 | this.associatedObject = associatedObject; 35 | } 36 | 37 | public T getAssociatedObject() { 38 | return associatedObject; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/event/player/Action.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.event.player; 28 | 29 | public enum Action { 30 | LEFT_CLICK, 31 | RIGHT_CLICK, 32 | } 33 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/event/player/PlayerEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.event.player; 28 | 29 | import org.spout.api.entity.Player; 30 | 31 | /** 32 | * @author zml2008 33 | */ 34 | public interface PlayerEvent { 35 | Player getPlayer(); 36 | } 37 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/event/player/input/PlayerInputEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.event.player.input; 28 | 29 | import org.spout.api.entity.Player; 30 | import org.spout.api.event.player.AbstractPlayerEvent; 31 | 32 | public abstract class PlayerInputEvent extends AbstractPlayerEvent { 33 | public PlayerInputEvent(Player p) { 34 | super(p); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/event/world/WorldEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.event.world; 28 | 29 | import org.spout.api.geo.World; 30 | 31 | /** 32 | * @author zml2008 33 | */ 34 | public interface WorldEvent { 35 | /** 36 | * Gets the world associated with this event. 37 | * 38 | * @return The world associated with the event. 39 | */ 40 | World getWorld(); 41 | } 42 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/exception/BoneNotFoundException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.exception; 28 | 29 | public class BoneNotFoundException extends RuntimeException { 30 | private static final long serialVersionUID = 1L; 31 | 32 | public BoneNotFoundException(String m) { 33 | super(m); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/exception/ComputerIsPotatoException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.exception; 28 | 29 | /** 30 | * Thrown when your computer does not support a specific feature. 31 | */ 32 | public class ComputerIsPotatoException extends RuntimeException { 33 | /** 34 | * 35 | */ 36 | private static final long serialVersionUID = 1L; 37 | 38 | public ComputerIsPotatoException(String message) { 39 | super(message); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/exception/EventException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.exception; 28 | 29 | @SuppressWarnings ("serial") 30 | public class EventException extends Exception { 31 | public EventException(String message) { 32 | super(message); 33 | } 34 | 35 | public EventException(String message, Throwable cause) { 36 | super(message, cause); 37 | } 38 | 39 | public EventException(Throwable cause) { 40 | super(cause); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/exception/IllegalPluginAccessException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.exception; 28 | 29 | public class IllegalPluginAccessException extends RuntimeException { 30 | private static final long serialVersionUID = -3181800705877027623L; 31 | 32 | public IllegalPluginAccessException() { 33 | } 34 | 35 | public IllegalPluginAccessException(String msg) { 36 | super(msg); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/generator/biome/Decorator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.generator.biome; 28 | 29 | import org.spout.api.generator.Populator; 30 | 31 | /** 32 | * Biome level abstraction layer 33 | */ 34 | public abstract class Decorator extends Populator { 35 | } 36 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/generator/biome/selector/LayeredBiomeSelectorElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.generator.biome.selector; 28 | 29 | /** 30 | * Represents an element of {@link org.spout.api.generator.biome.selector.LayeredBiomeSelector}, which is either a {@link org.spout.api.generator.biome.Biome} or a {@link BiomeSelectorLayer}. 31 | */ 32 | public interface LayeredBiomeSelectorElement { 33 | } 34 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/geo/WorldSource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.geo; 28 | 29 | /** 30 | * Represents an object that can be contained within a {@link World} 31 | */ 32 | public interface WorldSource { 33 | /** 34 | * Gets the World 35 | * 36 | * @return the World 37 | */ 38 | public World getWorld(); 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/geo/cuboid/BlockContainer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.geo.cuboid; 28 | 29 | public interface BlockContainer extends CubicContainer { 30 | /** 31 | * Sets the state for the next block in the sequence. 32 | */ 33 | public void setBlockFullState(int state); 34 | } 35 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/geo/cuboid/Cube.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.geo.cuboid; 28 | 29 | import org.spout.api.geo.discrete.Point; 30 | import org.spout.math.vector.Vector3f; 31 | 32 | /** 33 | * Represents a Cube that is located somewhere in a world. 34 | */ 35 | public class Cube extends Cuboid { 36 | public Cube(Point base, float size) { 37 | super(base, new Vector3f(size, size, size)); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/geo/cuboid/CubicContainer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.geo.cuboid; 28 | 29 | public interface CubicContainer { 30 | /** 31 | * Gets the fill order for the container 32 | */ 33 | public ContainerFillOrder getOrder(); 34 | } 35 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/geo/cuboid/LightContainer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.geo.cuboid; 28 | 29 | public interface LightContainer extends CubicContainer { 30 | /** 31 | * Sets the nibble light level for the next block in the sequence. 32 | */ 33 | public void setLightLevel(byte light); 34 | } 35 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/gui/FullScreen.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.gui; 28 | 29 | /** 30 | * Represents a screen the takes up the entire window. 31 | */ 32 | public class FullScreen extends Screen { 33 | } 34 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/input/Mouse.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.input; 28 | 29 | public final class Mouse { 30 | public static final int BUTTON_LEFT = 0; 31 | public static final int BUTTON_RIGHT = 1; 32 | public static final int BUTTON_MIDDLE = 2; 33 | // dummy ids 34 | public static final int SCROLL_UP = Integer.MAX_VALUE; 35 | public static final int SCROLL_DOWN = SCROLL_UP - 1; 36 | 37 | private Mouse() { 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/inventory/Container.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.inventory; 28 | 29 | /** 30 | * Represents anything that has an inventory. 31 | */ 32 | public interface Container { 33 | /** 34 | * Gets the inventory of this entity 35 | * 36 | * @return The Inventory of this entity 37 | */ 38 | public Inventory getInventory(); 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/inventory/recipe/SmeltedRecipe.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.inventory.recipe; 28 | 29 | public class SmeltedRecipe extends ShapelessRecipe { 30 | //TODO: why does this class exist? 31 | public SmeltedRecipe(RecipeBuilder builder) { 32 | super(builder); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/io/CRCStoreRunnable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.io; 28 | 29 | public interface CRCStoreRunnable extends Runnable { 30 | public void setCRC(Long CRC); 31 | } 32 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/io/regionfile/SRFException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.io.regionfile; 28 | 29 | import org.spout.api.io.bytearrayarray.BAAException; 30 | 31 | public class SRFException extends BAAException { 32 | private static final long serialVersionUID = 1L; 33 | 34 | public SRFException(String message, Throwable t) { 35 | super(message, t); 36 | } 37 | 38 | public SRFException(String message) { 39 | super(message); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/lighting/Modifiable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.lighting; 28 | 29 | public interface Modifiable { 30 | /** 31 | * Marks this object as modified 32 | */ 33 | public void setModified(); 34 | } 35 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/map/DefaultedKey.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.map; 28 | 29 | import java.io.Serializable; 30 | 31 | public interface DefaultedKey { 32 | public T getDefaultValue(); 33 | 34 | public String getKeyString(); 35 | } 36 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/material/range/CubicEffectRange.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.material.range; 28 | 29 | public class CubicEffectRange extends EffectRangeImpl { 30 | private final int range; 31 | 32 | public CubicEffectRange(int range) { 33 | super(range); 34 | this.range = range; 35 | } 36 | 37 | @Override 38 | public void initEffectIterator(EffectIterator i) { 39 | i.resetAsCubicIterator(range); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/model/mesh/Mesh.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.model.mesh; 28 | 29 | public interface Mesh { 30 | } 31 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/plugin/LoadOrder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.plugin; 28 | 29 | /** 30 | * Determines the load order for Plugins 31 | */ 32 | public enum LoadOrder { 33 | /** 34 | * Loaded after the World is loaded 35 | */ 36 | POSTWORLD, 37 | /** 38 | * Loaded at Server/Client startup 39 | */ 40 | STARTUP 41 | } 42 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/protocol/ClientSession.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.protocol; 28 | 29 | import org.spout.api.Client; 30 | 31 | /** 32 | * Represents a connection to server.
Controls the state, protocol and channels of a connection to a server. 33 | */ 34 | public interface ClientSession extends Session { 35 | @Override 36 | public Client getEngine(); 37 | } 38 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/protocol/PortBinding.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.protocol; 28 | 29 | import java.net.SocketAddress; 30 | 31 | /** 32 | * Represents a bound address that the server is connected to. 33 | */ 34 | public interface PortBinding { 35 | public Protocol getProtocol(); 36 | 37 | public SocketAddress getAddress(); 38 | } 39 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/protocol/ProcessorHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.protocol; 28 | 29 | /** 30 | * Represents a processor handler. 31 | */ 32 | public interface ProcessorHandler { 33 | /** 34 | * Sets the processor to be used to process the packets
35 | */ 36 | public void setProcessor(ChannelProcessor processor); 37 | } 38 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/protocol/ServerSession.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.protocol; 28 | 29 | import org.spout.api.Server; 30 | 31 | /** 32 | * Represents a connection to the client.
Controls the state, protocol and channels of a connection to the client. 33 | */ 34 | public interface ServerSession extends Session { 35 | @Override 36 | public Server getEngine(); 37 | } 38 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/protocol/SessionRegistry.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.protocol; 28 | 29 | public interface SessionRegistry { 30 | /** 31 | * Adds a new session. 32 | * 33 | * @param session The session to add. 34 | */ 35 | public void add(Session session); 36 | 37 | /** 38 | * Removes a session. 39 | * 40 | * @param session The session to remove. 41 | */ 42 | public void remove(Session session); 43 | } 44 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/protocol/builder/FieldRef.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.protocol.builder; 28 | 29 | public class FieldRef { 30 | private final int index; 31 | 32 | public FieldRef(int index) { 33 | this.index = index; 34 | } 35 | 36 | public int getIndex() { 37 | return index; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/protocol/proxy/ConnectionInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.protocol.proxy; 28 | 29 | public interface ConnectionInfo { 30 | public String getIdentifier(); 31 | } 32 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/protocol/proxy/ProxyStartMessage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.protocol.proxy; 28 | 29 | import org.spout.api.protocol.Message; 30 | 31 | public interface ProxyStartMessage extends Message { 32 | } 33 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/protocol/proxy/TransformableMessage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.protocol.proxy; 28 | 29 | import org.spout.api.protocol.Message; 30 | 31 | public interface TransformableMessage extends Message { 32 | public Message transform(boolean upstream, int connects, ConnectionInfo info, ConnectionInfo auxChannelInfo); 33 | } 34 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/protocol/replayable/ReplayableException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.protocol.replayable; 28 | 29 | public class ReplayableException extends RuntimeException { 30 | private static final long serialVersionUID = 13424275234247532L; 31 | 32 | public ReplayableException(String message) { 33 | super(message); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/render/RenderMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.render; 28 | 29 | /** 30 | * Render Mode for the client 31 | * 32 | * GL20 - OpenGL 2.0 Client Profile GL30 - OpenGL 3.2 Client Profile (Default) GL40 - OpenGL 4.0 Client Profile GLES20 - OpenGL ES 2.0 Client Profile 33 | */ 34 | public enum RenderMode { 35 | GL20, 36 | GL30, 37 | GL40, 38 | GLES20; 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/render/effect/BufferEffect.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.render.effect; 28 | 29 | import org.spout.api.geo.cuboid.ChunkSnapshotModel; 30 | import org.spout.api.render.BufferContainer; 31 | 32 | public interface BufferEffect { 33 | public abstract void post(ChunkSnapshotModel chunkModel, BufferContainer value); 34 | } 35 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/render/effect/EntityEffect.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.render.effect; 28 | 29 | public interface EntityEffect { 30 | /** 31 | * Called right before rendering an entity 32 | */ 33 | public abstract void preRenderEntity(SnapshotEntity snapshotEntity); 34 | 35 | /** 36 | * Called right after rendering an entity 37 | */ 38 | public abstract void postRenderEntity(SnapshotEntity snapshotEntity); 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/render/effect/MeshEffect.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.render.effect; 28 | 29 | public interface MeshEffect { 30 | /** 31 | * Called right before generate a mesh 32 | */ 33 | public abstract void preMesh(SnapshotMesh snapshotMesh); 34 | 35 | /** 36 | * Called right after generate a mesh 37 | */ 38 | public abstract void postMesh(SnapshotMesh snapshotMesh); 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/render/effect/RenderEffect.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.render.effect; 28 | 29 | public interface RenderEffect { 30 | /** 31 | * Called right before rendering 32 | */ 33 | public abstract void preRender(SnapshotRender snapshotRender); 34 | 35 | /** 36 | * Called right after rendering 37 | */ 38 | public abstract void postRender(SnapshotRender snapshotRender); 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/render/effect/SnapshotRender.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.render.effect; 28 | 29 | import org.spout.api.render.RenderMaterial; 30 | 31 | public class SnapshotRender { 32 | private final RenderMaterial material; 33 | 34 | public SnapshotRender(RenderMaterial material) { 35 | this.material = material; 36 | } 37 | 38 | public RenderMaterial getMaterial() { 39 | return material; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/resource/ResourceNotFoundException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.resource; 28 | 29 | /** 30 | * Called when a resource is non-existant in a specified location. 31 | */ 32 | public class ResourceNotFoundException extends Exception { 33 | private static final long serialVersionUID = 1L; 34 | 35 | public ResourceNotFoundException(String resource) { 36 | super("Cannot find: " + resource); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/signal/SubscriberInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.signal; 28 | 29 | public interface SubscriberInterface { 30 | /** 31 | * @return the object that has sent the currently handled signal 32 | */ 33 | public SignalInterface sender(); 34 | 35 | /** 36 | * Sets the sender 37 | */ 38 | public void setSender(SignalInterface sender); 39 | } 40 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/signal/SubscriberObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.signal; 28 | 29 | public class SubscriberObject implements SubscriberInterface { 30 | SignalInterface sender = null; 31 | 32 | @Override 33 | public SignalInterface sender() { 34 | return sender; 35 | } 36 | 37 | @Override 38 | public void setSender(SignalInterface sender) { 39 | this.sender = sender; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/tickable/BasicTickable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.tickable; 28 | 29 | public abstract class BasicTickable implements Tickable { 30 | @Override 31 | public final void tick(float dt) { 32 | if (canTick()) { 33 | onTick(dt); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/util/Named.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.util; 28 | 29 | /** 30 | * Represents an object that has a name 31 | */ 32 | public interface Named { 33 | public String getName(); 34 | } 35 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/util/access/BanType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.util.access; 28 | 29 | public enum BanType { 30 | IP, 31 | PLAYER; 32 | } 33 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/util/bytebit/ByteBitMask.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.util.bytebit; 28 | 29 | public interface ByteBitMask { 30 | /** 31 | * Gets the bit byte mask for this object 32 | * 33 | * @return the bit mask 34 | */ 35 | public byte getMask(); 36 | } 37 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/util/list/concurrent/LongPrioritized.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.util.list.concurrent; 28 | 29 | public interface LongPrioritized { 30 | /** 31 | * Gets the priority of this object 32 | */ 33 | public long getPriority(); 34 | } 35 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/util/list/concurrent/setqueue/SetQueueFullException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.util.list.concurrent.setqueue; 28 | 29 | public class SetQueueFullException extends IllegalStateException { 30 | private static final long serialVersionUID = 1L; 31 | 32 | public SetQueueFullException(String message) { 33 | super(message); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/util/map/concurrent/palette/IntegerDataInputStreamCallable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.util.map.concurrent.palette; 28 | 29 | import java.io.DataInputStream; 30 | import java.io.IOException; 31 | 32 | public interface IntegerDataInputStreamCallable { 33 | public T call(int x, DataInputStream din) throws IOException; 34 | } 35 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/util/map/concurrent/palette/PaletteFullException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.util.map.concurrent.palette; 28 | 29 | public class PaletteFullException extends Exception { 30 | private static final long serialVersionUID = 1L; 31 | 32 | public PaletteFullException(String message) { 33 | super(message); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/util/thread/annotation/MainThreadOnly.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.util.thread.annotation; 28 | 29 | public @interface MainThreadOnly { 30 | public String author() default "SpoutDev"; 31 | 32 | public String version() default "1.0"; 33 | 34 | public String shortDescription() default "Indicates that the method may only be called from the main thread"; 35 | } 36 | -------------------------------------------------------------------------------- /api/src/main/java/org/spout/api/util/thread/annotation/Threadsafe.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.api.util.thread.annotation; 28 | 29 | public @interface Threadsafe { 30 | public String author() default "SpoutDev"; 31 | 32 | public String version() default "1.0"; 33 | 34 | public String shortDescription() default "Indicates that the method is inherently thread-safe."; 35 | } 36 | -------------------------------------------------------------------------------- /api/src/test/java/org/spout/api/lang/keymap.yml: -------------------------------------------------------------------------------- 1 | nextId: 3 2 | ids: 3 | 1: 4 | class: org.spout.api.lang.LanguageTest 5 | string: Testing %0! 6 | 2: 7 | class: org.spout.api.lang.LanguageTest 8 | string: 'We have got %n item(s)' -------------------------------------------------------------------------------- /api/src/test/resources/full_properties.yml: -------------------------------------------------------------------------------- 1 | codedlocale: de 2 | softdepends: [baz, foo, bar] 3 | depend: [foo, bar] 4 | main: com.example.main.Main 5 | load: postworld 6 | platform: SERVER 7 | reload: true 8 | website: www.example.com?param=test 9 | author: [JaneDoe, JohnDoe, Foo, Bar, Baz] 10 | description: This is a really long description... 11 | version: 9999.9999 12 | name: TestProperties12 13 | data: 14 | test_key: testData 15 | other_key: 1234 16 | false: true -------------------------------------------------------------------------------- /api/src/test/resources/keymap.yml: -------------------------------------------------------------------------------- 1 | nextId: 3 2 | ids: 3 | 1: 4 | class: org.spout.api.lang.LanguageTest 5 | string: Testing %0! 6 | 2: 7 | class: org.spout.api.lang.LanguageTest 8 | string: 'We have got %n item(s)' -------------------------------------------------------------------------------- /api/src/test/resources/lang-DE_DE.yml: -------------------------------------------------------------------------------- 1 | locale: de_DE 2 | strings: 3 | 1: Teste %0! 4 | 2: 5 | singular: 'Wir haben %n Einheit' 6 | plural: 'Wir haben %n Einheiten' -------------------------------------------------------------------------------- /api/src/test/resources/missing_author_properties.yml: -------------------------------------------------------------------------------- 1 | version: 1.0 2 | description: Dummy Description 3 | website: www.example.com 4 | main: com.example 5 | load: startup 6 | platform: ALL 7 | data: 8 | test_key: testData 9 | -------------------------------------------------------------------------------- /api/src/test/resources/missing_main_properties.yml: -------------------------------------------------------------------------------- 1 | name: TestProperties 2 | version: 2.0 3 | description: Dummy Description 4 | website: www.example.com 5 | authors: [JohnDoe, JaneDoe] 6 | platform: CLIENT -------------------------------------------------------------------------------- /api/src/test/resources/missing_name_properties.yml: -------------------------------------------------------------------------------- 1 | name: TestProperties 2 | version: 2.0 3 | description: Dummy Description 4 | website: www.example.com 5 | main: com.example -------------------------------------------------------------------------------- /api/src/test/resources/missing_platform_properties.yml: -------------------------------------------------------------------------------- 1 | name: TestProperties 2 | version: 1.0 3 | description: Dummy Description 4 | website: www.example.com 5 | author: JohnDoe 6 | main: com.example 7 | load: startup -------------------------------------------------------------------------------- /api/src/test/resources/missing_version_properties.yml: -------------------------------------------------------------------------------- 1 | name: TestProperties 2 | description: Dummy Description 3 | website: www.example.com 4 | author: JohnDoe 5 | main: com.example 6 | load: startup 7 | platform: ALL 8 | data: 9 | test_key: testData 10 | -------------------------------------------------------------------------------- /api/src/test/resources/misspelled_properties.yml: -------------------------------------------------------------------------------- 1 | codedLocale: de 2 | softDepend: [baz, foo, bar] 3 | depen: [foo, bar] 4 | main: com.example.main.Main 5 | Load: postworld 6 | platform: SERVER 7 | reload: true 8 | websites: www.example.com?param=test 9 | author: [JaneDoe, JohnDoe, Foo, Bar, Baz] 10 | description: This is a really long description... 11 | version: 9999.9999 12 | name: TestProperties12 13 | data: 14 | test_key: testData 15 | other_key: 1234 16 | false: true -------------------------------------------------------------------------------- /api/src/test/resources/valid_properties.yml: -------------------------------------------------------------------------------- 1 | name: TestProperties 2 | version: 1.0 3 | description: Dummy Description 4 | website: www.example.com 5 | 6 | author: JohnDoe 7 | 8 | main: com.example 9 | load: startup 10 | platform: ALL 11 | 12 | data: 13 | test_key: testData 14 | -------------------------------------------------------------------------------- /engine/src/main/java/org/spout/engine/protocol/builtin/message/ReadyMessage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.engine.protocol.builtin.message; 28 | 29 | public class ReadyMessage extends SpoutMessage { 30 | public static final ReadyMessage INSTANCE = new ReadyMessage(); 31 | 32 | @Override 33 | public boolean requiresPlayer() { 34 | return false; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /engine/src/main/java/org/spout/engine/renderer/shader/EmptyShader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.engine.renderer.shader; 28 | 29 | /** 30 | * Empty Shader for 1.1 only. Do not use this for 3.0 ever. 31 | */ 32 | public class EmptyShader extends ClientShader { 33 | public EmptyShader() { 34 | super(null, null); 35 | } 36 | 37 | @Override 38 | public void assign() { 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /engine/src/main/java/org/spout/engine/renderer/shader/ShaderCompileException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.engine.renderer.shader; 28 | 29 | public class ShaderCompileException extends RuntimeException { 30 | private static final long serialVersionUID = 1L; 31 | 32 | public ShaderCompileException(String text) { 33 | super(text); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /engine/src/main/java/org/spout/engine/scheduler/SchedulerSyncExecutorThread.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.engine.scheduler; 28 | 29 | public class SchedulerSyncExecutorThread extends Thread { 30 | public SchedulerSyncExecutorThread(Runnable r, String name) { 31 | super(r, name); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /engine/src/main/java/org/spout/engine/util/StackTrace.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.engine.util; 28 | 29 | public class StackTrace { 30 | public static void printStackTrace() { 31 | try { 32 | throw new RuntimeException("Stack trace"); 33 | } catch (Exception e) { 34 | e.printStackTrace(); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /engine/src/main/java/org/spout/engine/util/argument/PlatformConverter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.engine.util.argument; 28 | 29 | import org.spout.api.Platform; 30 | 31 | public class PlatformConverter extends EnumConverter { 32 | public PlatformConverter() { 33 | super(Platform.class); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /engine/src/main/java/org/spout/engine/util/argument/RenderModeConverter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.engine.util.argument; 28 | 29 | import org.spout.api.render.RenderMode; 30 | 31 | public class RenderModeConverter extends EnumConverter { 32 | public RenderModeConverter() { 33 | super(RenderMode.class); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /engine/src/main/java/org/spout/engine/util/thread/coretasks/GlobalManagerRunnableFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.engine.util.thread.coretasks; 28 | 29 | public abstract class GlobalManagerRunnableFactory implements ManagerRunnableFactory { 30 | @Override 31 | public int getMaxSequence() { 32 | return -1; 33 | } 34 | 35 | @Override 36 | public int getMinSequence() { 37 | return -1; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /engine/src/main/java/org/spout/engine/util/thread/coretasks/ManagerRunnableFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.engine.util.thread.coretasks; 28 | 29 | import org.spout.engine.util.thread.AsyncManager; 30 | 31 | public interface ManagerRunnableFactory { 32 | public ManagerRunnable getTask(AsyncManager manager, int sequence); 33 | 34 | public int getMaxSequence(); 35 | 36 | public int getMinSequence(); 37 | } 38 | -------------------------------------------------------------------------------- /engine/src/main/java/org/spout/engine/util/thread/coretasks/SequencedManagerRunnableFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.engine.util.thread.coretasks; 28 | 29 | public abstract class SequencedManagerRunnableFactory implements ManagerRunnableFactory { 30 | @Override 31 | public int getMaxSequence() { 32 | return 27; 33 | } 34 | 35 | @Override 36 | public int getMinSequence() { 37 | return -1; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /engine/src/main/java/org/spout/engine/util/thread/snapshotable/Snapshotable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.engine.util.thread.snapshotable; 28 | 29 | public interface Snapshotable { 30 | /** 31 | * Copies the next value to the snapshot value 32 | */ 33 | public void copySnapshot(); 34 | } -------------------------------------------------------------------------------- /engine/src/main/resources/entities/Spouty/spouty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/entities/Spouty/spouty.png -------------------------------------------------------------------------------- /engine/src/main/resources/entities/Spouty/spouty.sep: -------------------------------------------------------------------------------- 1 | Name: "Spouty" 2 | Components: 3 | - org.spout.engine.component.entity.SpoutAnimationComponent 4 | - org.spout.engine.component.entity.SpoutModelComponent 5 | Data: 6 | Health: 20 7 | Damages: 1 8 | Size: 1 9 | Model: model://Spout/entities/Spouty/spouty.spm 10 | -------------------------------------------------------------------------------- /engine/src/main/resources/entities/Spouty/spouty.ske: -------------------------------------------------------------------------------- 1 | body: 2 | children: 3 | rightArm: 4 | vertices: 32 33 34 35 36 37 38 39 5 | weight: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 6 | leftArm: 7 | vertices: 40 41 42 43 44 45 46 47 8 | weight: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 9 | head: 10 | vertices: 8 9 10 11 12 13 14 15 48 49 50 51 52 53 54 55 11 | weight: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 12 | leftLeg: 13 | vertices: 16 17 18 19 20 21 22 23 14 | weight: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 15 | rightLeg: 16 | vertices: 24 25 26 27 28 29 30 31 17 | weight: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 18 | vertices: 0 1 2 3 4 5 6 7 19 | weight: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 20 | -------------------------------------------------------------------------------- /engine/src/main/resources/entities/Spouty/spouty.smt: -------------------------------------------------------------------------------- 1 | Shader: shader://Spout/shaders/bones2b2a/bones.ssf 2 | 3 | MaterialParams: 4 | Diffuse: texture://Spout/entities/Spouty/spouty.png 5 | BlendColor: color(1,1,1,1) 6 | -------------------------------------------------------------------------------- /engine/src/main/resources/entities/Spouty/spouty.spm: -------------------------------------------------------------------------------- 1 | Mesh: mesh://Spout/entities/Spouty/spouty.obj 2 | Material: material://Spout/entities/Spouty/spouty.smt 3 | Skeleton: skeleton://Spout/entities/Spouty/spouty.ske 4 | Animation: 5 | animatest1: animation://Spout/entities/Spouty/spouty.sam 6 | animatest2: animation://Spout/entities/Spouty/spouty2.sam 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/entities/Spouty/spouty/spouty.ske: -------------------------------------------------------------------------------- 1 | body: 2 | children: 3 | rightLeg: 4 | vertices: 32 33 34 35 36 37 38 39 5 | weight: 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 6 | leftLeg: 7 | vertices: 24 25 26 27 28 29 30 31 8 | weight: 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 9 | leftArm: 10 | vertices: 16 17 18 19 20 21 22 23 11 | weight: 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 12 | rightArm: 13 | vertices: 40 41 42 43 44 45 46 47 14 | weight: 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 15 | head: 16 | vertices: 8 9 10 11 12 13 14 15 48 49 50 51 52 53 54 55 17 | weight: 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 18 | vertices: 0 1 2 3 4 5 6 7 19 | weight: 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 20 | -------------------------------------------------------------------------------- /engine/src/main/resources/fallbacks/cube.uvs: -------------------------------------------------------------------------------- 1 | # Spout uvs file 2 | # See TextureMeshLoader 3 | scale 16 16 4 | size 1 1 5 | rect 1 0 6 | rect 2 0 7 | rect 3 0 8 | rect 4 0 9 | rect 5 0 10 | rect 6 0 11 | -------------------------------------------------------------------------------- /engine/src/main/resources/fallbacks/entity.sep: -------------------------------------------------------------------------------- 1 | Name: "FallbackEntity" 2 | Components: 3 | - org.spout.engine.component.entity.SpoutModelComponent 4 | Data: 5 | notnull: 1 6 | -------------------------------------------------------------------------------- /engine/src/main/resources/fallbacks/fallback.120.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | uniform sampler2D Diffuse; 4 | 5 | varying vec4 color; 6 | varying vec2 uvcoord; 7 | 8 | void main() 9 | { 10 | //gl_FragColor = color; 11 | gl_FragColor = texture2D(Diffuse, uvcoord); 12 | } -------------------------------------------------------------------------------- /engine/src/main/resources/fallbacks/fallback.120.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | attribute vec4 vPosition; 4 | attribute vec4 vColor; 5 | attribute vec4 vNormal; 6 | attribute vec2 vTexCoord; 7 | 8 | varying vec4 color; 9 | varying vec4 normal; 10 | varying vec2 uvcoord; 11 | 12 | uniform mat4 Projection; 13 | uniform mat4 View; 14 | uniform mat4 Model; 15 | 16 | void main() 17 | { 18 | gl_Position = Projection * View * Model * vPosition; 19 | 20 | uvcoord = vTexCoord; 21 | color = vColor; 22 | normal = vNormal; 23 | } 24 | -------------------------------------------------------------------------------- /engine/src/main/resources/fallbacks/fallback.330.frag: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec2 uvcoord; 4 | uniform sampler2D Diffuse; 5 | 6 | layout(location=0) out vec4 outputColor; 7 | 8 | void main() 9 | { 10 | outputColor = texture(Diffuse, uvcoord); 11 | } -------------------------------------------------------------------------------- /engine/src/main/resources/fallbacks/fallback.330.vert: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location=0) in vec4 vPosition; 4 | layout(location=1) in vec4 vColor; 5 | layout(location=2) in vec4 vNormal; 6 | layout(location=3) in vec2 vTexCoord; 7 | 8 | out vec4 color; 9 | out vec4 normal; 10 | out vec2 uvcoord; 11 | 12 | uniform mat4 Projection; 13 | uniform mat4 View; 14 | uniform mat4 Model; 15 | 16 | void main() 17 | { 18 | gl_Position = Projection * View * Model * vPosition; 19 | 20 | uvcoord = vTexCoord; 21 | color = vColor; 22 | normal = vNormal; 23 | } 24 | -------------------------------------------------------------------------------- /engine/src/main/resources/fallbacks/fallback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fallbacks/fallback.png -------------------------------------------------------------------------------- /engine/src/main/resources/fallbacks/fallback.spm: -------------------------------------------------------------------------------- 1 | Mesh: cubemesh://Spout/fallbacks/cube.uvs 2 | Material: material://Spout/fallbacks/generic.smt 3 | -------------------------------------------------------------------------------- /engine/src/main/resources/fallbacks/fallback.ssf: -------------------------------------------------------------------------------- 1 | GL30: 2 | Vertex: file://Spout/fallbacks/fallback.330.vert 3 | Fragment: file://Spout/fallbacks/fallback.330.frag 4 | GL20: 5 | Vertex: file://Spout/fallbacks/fallback.120.vert 6 | Fragment: file://Spout/fallbacks/fallback.120.frag 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/fallbacks/generic.smt: -------------------------------------------------------------------------------- 1 | Shader: shader://Spout/fallbacks/fallback.ssf 2 | 3 | MaterialParams: 4 | Diffuse: texture://Spout/fallbacks/fallback.png 5 | -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/Ubuntu-B.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/Ubuntu-B.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/Ubuntu-BI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/Ubuntu-BI.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/Ubuntu-C.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/Ubuntu-C.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/Ubuntu-L.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/Ubuntu-L.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/Ubuntu-LI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/Ubuntu-LI.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/Ubuntu-M.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/Ubuntu-M.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/Ubuntu-MI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/Ubuntu-MI.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/Ubuntu-R.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/Ubuntu-R.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/Ubuntu-RI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/Ubuntu-RI.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/UbuntuMono-B.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/UbuntuMono-B.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/UbuntuMono-BI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/UbuntuMono-BI.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/UbuntuMono-R.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/UbuntuMono-R.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/fonts/ubuntu/UbuntuMono-RI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/fonts/ubuntu/UbuntuMono-RI.ttf -------------------------------------------------------------------------------- /engine/src/main/resources/lang/lang-DE_DE.yml: -------------------------------------------------------------------------------- 1 | locale: DE_DE 2 | strings: 3 | 0: 'Fehler beim Laden der Konfiguration: %0' 4 | 1: Spout startet im %0-Modus. 5 | 2: Version %0 (implementiert SpoutAPI %1). 6 | 3: Diese Software ist im Alpha-Status, sodass einige Komponenten 7 | 4: fehlerhaft sein können oder gar nicht funktionieren. Bitte melde alle Fehler auf 8 | 5: http://issues.spout.org 9 | 6: Debug-Modus aktiviert! Dieser Modus ist nur für Entwickler vorgesehen 10 | 7: 'Fehler beim Laden von %0: %1' 11 | 8: Generiere eine neue Welt mit Namen [%0] 12 | 9: Spout fährt herunter 13 | 10: Server hält an 14 | 11: Fertig geladen, bereit für Spieler. 15 | 12: 'Fehler beim Laden der port-bindings: %0' 16 | 13: Keine port-bindings registriert! Clients werden sich nicht zum Server verbinden können. 17 | 14: 'Fehler beim Binden auf die Adresse %0. Läuft bereits ein anderer Server an dieser Adresse?' 18 | 15: 'Binde zu Adresse: %0...' 19 | 17: hello 20 | 16: 'Konnte den UPnP-Service nicht aktivieren: %0' 21 | -------------------------------------------------------------------------------- /engine/src/main/resources/materials/BasicMaterial.smt: -------------------------------------------------------------------------------- 1 | # Valid shader descriptor. Renderer will select the shader version depending on which mode the client is started in 2 | Shader: shader://Spout/shaders/basic.ssf 3 | 4 | RenderState: 5 | # Whether or not to use the Depth Buffer for rendering this material. Defaults to True. 6 | Depth: true 7 | # View and projection matricies. Used to override the rendering mode to a static matrix. 8 | # null matrix uses Main Camera 9 | # Defaults to null. 10 | Projection: null 11 | View: null 12 | 13 | # Parameters for the Shader. 14 | # Accepted Types: 15 | # - int 16 | # - float/double 17 | # - Vectors 18 | # - vec2(0,0) 19 | # - vec3(0,0,0) 20 | # - vec4(0,0,0,0) 21 | # - Colors 22 | # -RGB: color(0,0,0) 23 | # -RGBA: color(0,0,0,0) 24 | # - Matrix (***NOT IMPLEMENTED***)(Only square matricies supported) 25 | # - mat2(0,0,0,0) 26 | # - mat3(0,0,0, 0,0,0, 0,0,0) 27 | # - mat4(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0) 28 | # - Textures 29 | # - texture://PLUGIN/path/to/texture 30 | # - supported extensions: gif, png, jpg, bmp 31 | 32 | # Names match up to the name in the shader. 33 | 34 | MaterialParams: 35 | Diffuse: texture://Spout/resources/fallbacks/fallback.png 36 | BlendColor: color(1,1,1,1) 37 | -------------------------------------------------------------------------------- /engine/src/main/resources/materials/ExampleMaterial.smt: -------------------------------------------------------------------------------- 1 | # Valid shader descriptor. Renderer will select the shader version depending on which mode the client is started in 2 | Shader: shader://Spout/shaders/guiShader.ssf 3 | 4 | RenderState: 5 | # Whether or not to use the Depth Buffer for rendering this material. Defaults to True. 6 | Depth: true 7 | # View and projection matricies. Used to override the rendering mode to a static matrix. 8 | # null matrix uses Main Camera 9 | # Defaults to null. 10 | Projection: null 11 | View: null 12 | 13 | # Parameters for the Shader. 14 | # Accepted Types: 15 | # - int 16 | # - float/double 17 | # - Vectors 18 | # - vec2(0,0) 19 | # - vec3(0,0,0) 20 | # - vec4(0,0,0,0) 21 | # - Colors 22 | # -RGB: color(0,0,0) 23 | # -RGBA: color(0,0,0,0) 24 | # - Matrix (***NOT IMPLEMENTED***)(Only square matricies supported) 25 | # - mat2(0,0,0,0) 26 | # - mat3(0,0,0, 0,0,0, 0,0,0) 27 | # - mat4(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0) 28 | # - Textures 29 | # - texture://PLUGIN/path/to/texture 30 | # - supported extensions: gif, png, jpg, bmp 31 | 32 | # Names match up to the name in the shader. 33 | 34 | MaterialParams: 35 | Diffuse: texture://Spout/fallbacks/fallback.png 36 | BlendColor: color(1,1,1,1) 37 | -------------------------------------------------------------------------------- /engine/src/main/resources/materials/FontMaterial.smt: -------------------------------------------------------------------------------- 1 | # Valid shader descriptor. Renderer will select the shader version depending on which mode the client is started in 2 | Shader: shader://Spout/shaders/textShader.ssf 3 | 4 | RenderState: 5 | # Whether or not to use the Depth Buffer for rendering this material. Defaults to True. 6 | Depth: true 7 | # View and projection matricies. Used to override the rendering mode to a static matrix. 8 | # null matrix uses Main Camera 9 | # Defaults to null. 10 | Projection: null 11 | View: null 12 | 13 | # Parameters for the Shader. 14 | # Accepted Types: 15 | # - int 16 | # - float/double 17 | # - Vectors 18 | # - vec2(0,0) 19 | # - vec3(0,0,0) 20 | # - vec4(0,0,0,0) 21 | # - Colors 22 | # -RGB: color(0,0,0) 23 | # -RGBA: color(0,0,0,0) 24 | # - Matrix (***NOT IMPLEMENTED***)(Only square matricies supported) 25 | # - mat2(0,0,0,0) 26 | # - mat3(0,0,0, 0,0,0, 0,0,0) 27 | # - mat4(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0) 28 | # - Textures 29 | # - texture://PLUGIN/path/to/texture 30 | # - supported extensions: gif, png, jpg, bmp 31 | 32 | # Names match up to the name in the shader. 33 | 34 | MaterialParams: 35 | -------------------------------------------------------------------------------- /engine/src/main/resources/materials/GUIColorMaterial.smt: -------------------------------------------------------------------------------- 1 | Shader: shader://Spout/shaders/guiColorShader.ssf 2 | MaterialParams: 3 | Color: color(1,1,1,1) 4 | -------------------------------------------------------------------------------- /engine/src/main/resources/materials/GUIMaterial.smt: -------------------------------------------------------------------------------- 1 | # Valid shader descriptor. Renderer will select the shader version depending on which mode the client is started in 2 | Shader: shader://Spout/shaders/guiShader.ssf 3 | 4 | RenderState: 5 | # Whether or not to use the Depth Buffer for rendering this material. Defaults to True. 6 | Depth: true 7 | # View and projection matricies. Used to override the rendering mode to a static matrix. 8 | # null matrix uses Main Camera 9 | # Defaults to null. 10 | Projection: null 11 | View: null 12 | 13 | # Parameters for the Shader. 14 | # Accepted Types: 15 | # - int 16 | # - float/double 17 | # - Vectors 18 | # - vec2(0,0) 19 | # - vec3(0,0,0) 20 | # - vec4(0,0,0,0) 21 | # - Colors 22 | # -RGB: color(0,0,0) 23 | # -RGBA: color(0,0,0,0) 24 | # - Matrix (***NOT IMPLEMENTED***)(Only square matricies supported) 25 | # - mat2(0,0,0,0) 26 | # - mat3(0,0,0, 0,0,0, 0,0,0) 27 | # - mat4(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0) 28 | # - Textures 29 | # - texture://PLUGIN/path/to/texture 30 | # - supported extensions: gif, png, jpg, bmp 31 | 32 | # Names match up to the name in the shader. 33 | 34 | MaterialParams: 35 | Diffuse: texture://Spout/materials/testui.png 36 | BlendColor: color(1,1,1,1) 37 | -------------------------------------------------------------------------------- /engine/src/main/resources/materials/SkydomeMaterial.smt: -------------------------------------------------------------------------------- 1 | # Valid shader descriptor. Renderer will select the shader version depending on which mode the client is started in 2 | Shader: shader://Spout/shaders/skyShader.ssf 3 | 4 | RenderState: 5 | # Whether or not to use the Depth Buffer for rendering this material. Defaults to True. 6 | Depth: true 7 | # View and projection matricies. Used to override the rendering mode to a static matrix. 8 | # null matrix uses Main Camera 9 | # Defaults to null. 10 | Projection: null 11 | View: null 12 | Depth: false 13 | 14 | # Parameters for the Shader. 15 | # Accepted Types: 16 | # - int 17 | # - float/double 18 | # - Vectors 19 | # - vec2(0,0) 20 | # - vec3(0,0,0) 21 | # - vec4(0,0,0,0) 22 | # - Colors 23 | # -RGB: color(0,0,0) 24 | # -RGBA: color(0,0,0,0) 25 | # - Matrix (***NOT IMPLEMENTED***)(Only square matricies supported) 26 | # - mat2(0,0,0,0) 27 | # - mat3(0,0,0, 0,0,0, 0,0,0) 28 | # - mat4(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0) 29 | # - Textures 30 | # - texture://PLUGIN/path/to/texture 31 | # - supported extensions: gif, png, jpg, bmp 32 | 33 | # Names match up to the name in the shader. 34 | 35 | MaterialParams: 36 | Diffuse: texture://Spout/textures/testsky.png 37 | BlendColor: color(1,1,1,1) 38 | -------------------------------------------------------------------------------- /engine/src/main/resources/materials/SolidBlock.smt: -------------------------------------------------------------------------------- 1 | Shader: shader://Spout/shaders/diffuse.ssf 2 | 3 | MaterialParams: 4 | Diffuse: texture://Spout/textures/colorTerrain.png -------------------------------------------------------------------------------- /engine/src/main/resources/materials/SphericalSkydome.smt: -------------------------------------------------------------------------------- 1 | # Valid shader descriptor. Renderer will select the shader version depending on which mode the client is started in 2 | Shader: shader://Spout/shaders/skyShader.ssf 3 | 4 | RenderState: 5 | # Whether or not to use the Depth Buffer for rendering this material. Defaults to True. 6 | Depth: true 7 | # View and projection matricies. Used to override the rendering mode to a static matrix. 8 | # null matrix uses Main Camera 9 | # Defaults to null. 10 | Projection: null 11 | View: null 12 | Depth: false 13 | 14 | # Parameters for the Shader. 15 | # Accepted Types: 16 | # - int 17 | # - float/double 18 | # - Vectors 19 | # - vec2(0,0) 20 | # - vec3(0,0,0) 21 | # - vec4(0,0,0,0) 22 | # - Colors 23 | # -RGB: color(0,0,0) 24 | # -RGBA: color(0,0,0,0) 25 | # - Matrix (***NOT IMPLEMENTED***)(Only square matricies supported) 26 | # - mat2(0,0,0,0) 27 | # - mat3(0,0,0, 0,0,0, 0,0,0) 28 | # - mat4(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0) 29 | # - Textures 30 | # - texture://PLUGIN/path/to/texture 31 | # - supported extensions: gif, png, jpg, bmp 32 | 33 | # Names match up to the name in the shader. 34 | 35 | MaterialParams: 36 | Diffuse: texture://Spout/textures/skydome_cloudy.png 37 | BlendColor: color(1,1,1,1) 38 | -------------------------------------------------------------------------------- /engine/src/main/resources/materials/UnknownBlock.smt: -------------------------------------------------------------------------------- 1 | Shader: shader://Spout/fallbacks/fallback.ssf 2 | 3 | MaterialParams: 4 | Diffuse: texture://Spout/textures/orange.32.png -------------------------------------------------------------------------------- /engine/src/main/resources/materials/postprocess/ssao.smt: -------------------------------------------------------------------------------- 1 | # Valid shader descriptor. Renderer will select the shader version depending on which mode the client is started in 2 | Shader: shader://Spout/shaders/postprocess/ssao.ssf 3 | 4 | RenderState: 5 | # Whether or not to use the Depth Buffer for rendering this material. Defaults to True. 6 | Depth: true 7 | # View and projection matricies. Used to override the rendering mode to a static matrix. 8 | # null matrix uses Main Camera 9 | # Defaults to null. 10 | Projection: null 11 | View: null 12 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/basic/solidBlue.uvs: -------------------------------------------------------------------------------- 1 | # Spout uvs file 2 | # See TextureMeshLoader 3 | scale 4 4 4 | size 1 1 5 | rect 2 0 6 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/basic/solidBrown.uvs: -------------------------------------------------------------------------------- 1 | # Spout uvs file 2 | # See TextureMeshLoader 3 | scale 4 4 4 | size 1 1 5 | rect 0 2 6 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/basic/solidGray.uvs: -------------------------------------------------------------------------------- 1 | # Spout uvs file 2 | # See TextureMeshLoader 3 | scale 4 4 4 | size 1 1 5 | rect 1 2 6 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/basic/solidGreen.uvs: -------------------------------------------------------------------------------- 1 | # Spout uvs file 2 | # See TextureMeshLoader 3 | scale 4 4 4 | size 1 1 5 | rect 1 1 6 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/basic/solidLightGreen.uvs: -------------------------------------------------------------------------------- 1 | # Spout uvs file 2 | # See TextureMeshLoader 3 | scale 4 4 4 | size 1 1 5 | rect 2 0 6 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/basic/solidRed.uvs: -------------------------------------------------------------------------------- 1 | # Spout uvs file 2 | # See TextureMeshLoader 3 | scale 4 4 4 | size 1 1 5 | rect 0 0 6 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/basic/solidSkyBlue.uvs: -------------------------------------------------------------------------------- 1 | # Spout uvs file 2 | # See TextureMeshLoader 3 | scale 4 4 4 | size 1 1 5 | rect 3 0 6 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/defaultskydome.spm: -------------------------------------------------------------------------------- 1 | Mesh: mesh://Spout/models/meshes/skydome.obj 2 | Material: material://Spout/materials/SkydomeMaterial.smt 3 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/meshes/block.uvs: -------------------------------------------------------------------------------- 1 | # Spout uvs file 2 | # See TextureMeshLoader 3 | scale 1 1 4 | size 1 1 5 | rect 1 0 6 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/meshes/cube.obj: -------------------------------------------------------------------------------- 1 | # Blender v2.62 (sub 0) OBJ File: '' 2 | # www.blender.org 3 | v 1.000000 0.000000 0.000000 4 | v 1.000000 0.000000 1.000000 5 | v 0.000000 0.000000 1.000000 6 | v 0.000000 0.000000 0.000000 7 | v 1.000000 1.000000 0.000000 8 | v 1.000000 1.000000 1.000000 9 | v 0.000000 1.000000 1.000000 10 | v 0.000000 1.000000 0.000000 11 | vn 0.000000 -1.000000 0.000000 12 | vn 0.000000 1.000000 0.000000 13 | vn 1.000000 0.000000 0.000000 14 | vn 0.000000 0.000000 1.000000 15 | vn -1.000000 0.000000 0.000000 16 | vn 0.000000 0.000000 -1.000000 17 | f 1//1 2//1 3//1 18 | f 1//1 3//1 4//1 19 | f 5//2 8//2 7//2 20 | f 5//2 7//2 6//2 21 | f 1//3 5//3 6//3 22 | f 1//3 6//3 2//3 23 | f 2//4 6//4 7//4 24 | f 2//4 7//4 3//4 25 | f 3//5 7//5 8//5 26 | f 3//5 8//5 4//5 27 | f 5//6 1//6 4//6 28 | f 5//6 4//6 8//6 29 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/meshes/dirt.obj: -------------------------------------------------------------------------------- 1 | # Blender3D v249 OBJ File: 2 | # www.blender3d.org 3 | v 1.000000 -0.000000 -1.000000 4 | v 1.000000 0.000000 0.000000 5 | v -0.000000 -0.000000 -0.000000 6 | v 0.000000 -0.000000 -1.000000 7 | v 1.000000 1.000000 -1.000000 8 | v 0.999999 1.000000 0.000001 9 | v -0.000000 1.000000 -0.000000 10 | v 0.000000 1.000000 -1.000000 11 | vt 0.187500 1.000000 12 | vt 0.187500 0.937500 13 | vt 0.125000 1.000000 14 | vt 0.125000 0.937500 15 | vn 0.000000 0.000000 -1.000000 16 | vn -1.000000 -0.000000 -0.000000 17 | vn -0.000000 -0.000001 1.000000 18 | vn -0.000001 0.000000 1.000000 19 | vn 1.000000 -0.000000 0.000000 20 | vn 1.000000 0.000001 0.000001 21 | vn 0.000000 1.000000 -0.000000 22 | vn -0.000000 -1.000000 0.000000 23 | usemtl Material_terrain.png 24 | s off 25 | f 5/1/1 1/2/1 8/3/1 26 | f 1/2/1 4/4/1 8/3/1 27 | f 3/4/2 7/3/2 8/1/2 28 | f 3/4/2 8/1/2 4/2/2 29 | f 2/2/3 6/1/3 3/4/3 30 | f 6/1/4 7/3/4 3/4/4 31 | f 1/2/5 5/1/5 2/4/5 32 | f 5/1/6 6/3/6 2/4/6 33 | f 5/3/7 8/1/7 6/4/7 34 | f 8/1/7 7/2/7 6/4/7 35 | f 1/3/8 2/4/8 3/2/8 36 | f 1/3/8 3/2/8 4/1/8 37 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/meshes/grass.obj: -------------------------------------------------------------------------------- 1 | # Blender3D v249 OBJ File: 2 | # www.blender3d.org 3 | v 1.000000 -0.000000 -1.000000 4 | v 1.000000 0.000000 0.000000 5 | v -0.000000 -0.000000 -0.000000 6 | v 0.000000 -0.000000 -1.000000 7 | v 1.000000 1.000000 -1.000000 8 | v 0.999999 1.000000 0.000001 9 | v -0.000000 1.000000 -0.000000 10 | v 0.000000 1.000000 -1.000000 11 | vt 0.250000 1.000000 12 | vt 0.250000 0.937500 13 | vt 0.187500 1.000000 14 | vt 0.187500 0.937500 15 | vt 0.125000 1.000000 16 | vt 0.125000 0.937500 17 | vn 0.000000 0.000000 -1.000000 18 | vn -1.000000 -0.000000 -0.000000 19 | vn -0.000000 -0.000001 1.000000 20 | vn -0.000001 0.000000 1.000000 21 | vn 1.000000 -0.000000 0.000000 22 | vn 1.000000 0.000001 0.000001 23 | vn 0.000000 1.000000 -0.000000 24 | vn -0.000000 -1.000000 0.000000 25 | usemtl Material_terrain.png 26 | s off 27 | f 5/1/1 1/2/1 8/3/1 28 | f 1/2/1 4/4/1 8/3/1 29 | f 3/4/2 7/3/2 8/1/2 30 | f 3/4/2 8/1/2 4/2/2 31 | f 2/2/3 6/1/3 3/4/3 32 | f 6/1/4 7/3/4 3/4/4 33 | f 1/2/5 5/1/5 2/4/5 34 | f 5/1/6 6/3/6 2/4/6 35 | f 5/3/7 8/5/7 6/4/7 36 | f 8/5/7 7/6/7 6/4/7 37 | f 1/3/8 2/4/8 3/6/8 38 | f 1/3/8 3/6/8 4/5/8 39 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/meshes/stone.obj: -------------------------------------------------------------------------------- 1 | # Blender3D v249 OBJ File: 2 | # www.blender3d.org 3 | v 1.000000 0.000000 0.000000 4 | v 1.000000 0.000000 1.000000 5 | v 0.000000 0.000000 1.000000 6 | v 0.000000 0.000000 0.000000 7 | v 1.000000 1.000000 0.000000 8 | v 1.000000 1.000000 1.000000 9 | v 0.000000 1.000000 1.000000 10 | v 0.000000 1.000000 0.000000 11 | vt 0.125000 1.000000 12 | vt 0.125000 0.937500 13 | vt 0.062500 1.000000 14 | vt 0.062500 0.937500 15 | vn 0.000000 0.000000 -1.000000 16 | vn -1.000000 -0.000000 -0.000000 17 | vn -0.000000 -0.000001 1.000000 18 | vn -0.000001 0.000000 1.000000 19 | vn 1.000000 -0.000000 0.000000 20 | vn 1.000000 0.000001 0.000001 21 | vn 0.000000 1.000000 -0.000000 22 | vn -0.000000 -1.000000 0.000000 23 | usemtl Material_terrain.png 24 | s off 25 | f 5/1/1 1/2/1 8/3/1 26 | f 1/2/1 4/4/1 8/3/1 27 | f 3/4/2 7/3/2 8/1/2 28 | f 3/4/2 8/1/2 4/2/2 29 | f 2/2/3 6/1/3 3/4/3 30 | f 6/1/4 7/3/4 3/4/4 31 | f 1/2/5 5/1/5 2/4/5 32 | f 5/1/6 6/3/6 2/4/6 33 | f 5/3/7 8/1/7 6/4/7 34 | f 8/1/7 7/2/7 6/4/7 35 | f 1/3/8 2/4/8 3/2/8 36 | f 1/3/8 3/2/8 4/1/8 37 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/solidBlue.spm: -------------------------------------------------------------------------------- 1 | Mesh: cubemesh://Spout/models/basic/solidBlue.uvs 2 | Material: material://Spout/materials/SolidBlock.smt 3 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/solidBrown.spm: -------------------------------------------------------------------------------- 1 | Mesh: cubemesh://Spout/models/basic/solidBrown.uvs 2 | Material: material://Spout/materials/SolidBlock.smt 3 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/solidGray.spm: -------------------------------------------------------------------------------- 1 | Mesh: cubemesh://Spout/models/basic/solidGray.uvs 2 | Material: material://Spout/materials/SolidBlock.smt 3 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/solidGreen.spm: -------------------------------------------------------------------------------- 1 | Mesh: cubemesh://Spout/models/basic/solidGreen.uvs 2 | Material: material://Spout/materials/SolidBlock.smt 3 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/solidLightGreen.spm: -------------------------------------------------------------------------------- 1 | Mesh: cubemesh://Spout/models/basic/solidLightGreen.uvs 2 | Material: material://Spout/materials/SolidBlock.smt 3 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/solidRed.spm: -------------------------------------------------------------------------------- 1 | Mesh: cubemesh://Spout/models/basic/solidRed.uvs 2 | Material: material://Spout/materials/SolidBlock.smt 3 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/solidSkyBlue.spm: -------------------------------------------------------------------------------- 1 | Mesh: cubemesh://Spout/models/basic/solidSkyBlue.uvs 2 | Material: material://Spout/materials/SolidBlock.smt 3 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/sphereical_skydome.spm: -------------------------------------------------------------------------------- 1 | Mesh: mesh://Spout/models/meshes/skydome2.obj 2 | Material: material://Spout/materials/SphericalSkydome.smt 3 | -------------------------------------------------------------------------------- /engine/src/main/resources/models/unknownblock.spm: -------------------------------------------------------------------------------- 1 | Mesh: cubemesh://Spout/models/meshes/block.uvs 2 | Material: material://Spout/materials/UnknownBlock.smt 3 | -------------------------------------------------------------------------------- /engine/src/main/resources/natives/linux.txt: -------------------------------------------------------------------------------- 1 | liblwjgl.so 2 | liblwjgl64.so 3 | libopenal.so 4 | libopenal64.so 5 | libjinput-linux.so 6 | libjinput-linux64.so 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/natives/osx.txt: -------------------------------------------------------------------------------- 1 | libjinput-osx.jnilib 2 | liblwjgl.jnilib 3 | openal.dylib 4 | -------------------------------------------------------------------------------- /engine/src/main/resources/natives/windows.txt: -------------------------------------------------------------------------------- 1 | jinput-dx8_64.dll 2 | jinput-dx8.dll 3 | jinput-raw_64.dll 4 | jinput-raw.dll 5 | jinput-wintab.dll 6 | lwjgl.dll 7 | lwjgl64.dll 8 | OpenAL32.dll 9 | OpenAL64.dll 10 | -------------------------------------------------------------------------------- /engine/src/main/resources/scripts/runclient.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | java -server -XX:+UseG1GC -jar spout*.jar -platform CLIENT --debug --rendermode GL30 -------------------------------------------------------------------------------- /engine/src/main/resources/scripts/runclient.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | 3 | java -server -XX:+UseG1GC -jar spout.*.jar -platform CLIENT --debug --rendermode GL30 4 | -------------------------------------------------------------------------------- /engine/src/main/resources/scripts/runserver.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | java -server -XX:+UseG1GC -jar spout*.jar --debug -------------------------------------------------------------------------------- /engine/src/main/resources/scripts/runserver.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | 3 | java -server -XX:+UseG1GC -jar spout.*.jar --debug 4 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/basic.120.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | varying vec4 color; 4 | uniform sampler2D Diffuse; 5 | 6 | void main() { 7 | gl_FragColor = color; 8 | } 9 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/basic.120.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | attribute vec4 vPosition; 4 | attribute vec4 vColor; 5 | attribute vec4 vNormal; 6 | attribute vec2 vTexCoord; 7 | 8 | varying vec4 color; 9 | varying vec4 normal; 10 | varying vec2 uvcoord; 11 | 12 | uniform mat4 Projection; 13 | uniform mat4 View; 14 | uniform mat4 Model; 15 | 16 | void main() { 17 | gl_Position = Projection * View * Model * vPosition; 18 | 19 | uvcoord = vTexCoord; 20 | color = vColor; 21 | normal = vNormal; 22 | } 23 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/basic.330.frag: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec2 uvcoord; 4 | in vec4 color; 5 | in vec4 normal; 6 | 7 | uniform sampler2D Diffuse; 8 | uniform vec4 BlendColor; 9 | 10 | layout(location=0) out vec4 outputColor; 11 | layout(location=1) out vec4 normals; 12 | 13 | void main() { 14 | outputColor = texture(Diffuse, uvcoord) * color * BlendColor; 15 | normals = (normal + vec4(1, 1, 1, 1)) / 2; 16 | } 17 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/basic.330.vert: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location=0) in vec4 vPosition; 4 | layout(location=1) in vec4 vColor; 5 | layout(location=2) in vec4 vNormal; 6 | layout(location=3) in vec2 vTexCoord; 7 | 8 | out vec4 color; 9 | out vec4 normal; 10 | out vec2 uvcoord; 11 | 12 | uniform mat4 Projection; 13 | uniform mat4 View; 14 | uniform mat4 Model; 15 | 16 | void main() 17 | { 18 | gl_Position = Projection * View * Model * vPosition; 19 | 20 | uvcoord = vTexCoord; 21 | color = vColor; 22 | normal = vNormal; 23 | } -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/basic.ssf: -------------------------------------------------------------------------------- 1 | GL30: 2 | Vertex: file://Spout/shaders/basic.330.vert 3 | Fragment: file://Spout/shaders/basic.330.frag 4 | GL20: 5 | Vertex: file://Spout/shaders/basic.120.vert 6 | Fragment: file://Spout/shaders/basic.120.frag 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/bones1b1a/bones.120.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | attribute vec4 vPosition; 4 | attribute vec4 vColor; 5 | attribute vec4 vNormal; 6 | attribute vec2 vTexCoord; 7 | attribute float bone_ids; 8 | 9 | varying vec4 color; 10 | varying vec4 normal; 11 | varying vec2 uvcoord; 12 | 13 | uniform mat4 Projection; 14 | uniform mat4 View; 15 | uniform mat4 Model; 16 | uniform mat4[6] bone_matrix1; 17 | 18 | void main() { 19 | int boneId = int(bone_ids); 20 | gl_Position = Projection * View * Model * bone_matrix1[boneId] * vPosition; 21 | 22 | uvcoord = vTexCoord; 23 | color = vColor; 24 | normal = vNormal; 25 | } 26 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/bones1b1a/bones.330.vert: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location=0) in vec4 vPosition; 4 | layout(location=1) in vec4 vColor; 5 | layout(location=2) in vec4 vNormal; 6 | layout(location=3) in vec2 vTexCoord; 7 | layout(location=4) in float bone_ids; 8 | 9 | out vec4 color; 10 | out vec4 normal; 11 | out vec2 uvcoord; 12 | 13 | uniform mat4 Projection; 14 | uniform mat4 View; 15 | uniform mat4 Model; 16 | uniform mat4[6] bone_matrix1; 17 | 18 | void main() { 19 | int boneId = int(bone_ids); 20 | gl_Position = Projection * View * Model * bone_matrix1[boneId] * vPosition; 21 | color = vColor; 22 | uvcoord = vTexCoord; 23 | normal = vNormal; 24 | } 25 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/bones1b1a/bones.ssf: -------------------------------------------------------------------------------- 1 | GL30: 2 | Vertex: file://Spout/shaders/bones1b1a/bones.330.vert 3 | Fragment: file://Spout/shaders/diffuse.330.frag 4 | GL20: 5 | Vertex: file://Spout/shaders/bones1b1a/bones.120.vert 6 | Fragment: file://Spout/shaders/diffuse.120.frag 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/bones2b1a/bones.ssf: -------------------------------------------------------------------------------- 1 | GL30: 2 | Vertex: file://Spout/shaders/bones/bones2.330.vert 3 | Fragment: file://Spout/shaders/diffuse.330.frag 4 | GL20: 5 | Vertex: file://Spout/shaders/bones/bones2.120.vert 6 | Fragment: file://Spout/shaders/diffuse.120.frag 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/bones2b1a/bones2.120.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | attribute vec4 vPosition; 4 | attribute vec4 vColor; 5 | attribute vec4 vNormal; 6 | attribute vec2 vTexCoord; 7 | attribute vec2 bone_weights; 8 | attribute vec2 bone_ids; 9 | 10 | varying vec4 color; 11 | varying vec4 normal; 12 | varying vec2 uvcoord; 13 | 14 | uniform mat4 Projection; 15 | uniform mat4 View; 16 | uniform mat4 Model; 17 | uniform mat4[10] bone_matrix1; 18 | 19 | void main() { 20 | vec4 bone_transform = vec4(0,0,0,0); 21 | 22 | for (int i=0 ; i<2 ; ++i) { 23 | bone_transform += bone_weights[i] * bone_matrix1[int(bone_ids[i])] * vPosition; 24 | } 25 | 26 | gl_Position = Projection * View * Model * bone_transform; 27 | 28 | uvcoord = vTexCoord; 29 | normal = vNormal; 30 | color = vColor; 31 | } 32 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/bones2b1a/bones2.330.vert: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location=0) in vec4 vPosition; 4 | layout(location=1) in vec4 vColor; 5 | layout(location=2) in vec4 vNormal; 6 | layout(location=3) in vec2 vTexCoord; 7 | layout(location=4) in vec2 bone_weights; 8 | layout(location=5) in vec2 bone_ids; 9 | 10 | out vec4 color; 11 | out vec4 normal; 12 | out vec2 uvcoord; 13 | 14 | uniform mat4 Projection; 15 | uniform mat4 View; 16 | uniform mat4 Model; 17 | uniform mat4[10] bone_matrix1; 18 | 19 | void main() { 20 | vec4 bone_transform = vec4(0,0,0,0); 21 | 22 | for (int i=0 ; i<2 ; ++i) { 23 | bone_transform += bone_weights[i] * bone_matrix1[int(bone_ids[i])] * vPosition; 24 | } 25 | 26 | gl_Position = Projection * View * Model * bone_transform; 27 | 28 | uvcoord = vTexCoord; 29 | normal = vNormal; 30 | color = vColor; 31 | } 32 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/bones2b2a/bones.120.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | attribute vec4 vPosition; 4 | attribute vec4 vColor; 5 | attribute vec4 vNormal; 6 | attribute vec2 vTexCoord; 7 | attribute vec2 bone_weights; 8 | attribute vec2 bone_ids; 9 | 10 | varying vec4 color; 11 | varying vec4 normal; 12 | varying vec2 uvcoord; 13 | 14 | uniform mat4 Projection; 15 | uniform mat4 View; 16 | uniform mat4 Model; 17 | uniform mat4[10] bone_matrix1; 18 | uniform mat4[10] bone_matrix2; 19 | 20 | void main() { 21 | vec4 bone_transform = vec4(0,0,0,0); 22 | 23 | for (int i=0 ; i<2 ; ++i) { 24 | int bone_id = int(bone_ids[i]); 25 | bone_transform += bone_weights[i] * bone_matrix1[bone_id] * bone_matrix2[bone_id] * vPosition; 26 | } 27 | 28 | gl_Position = Projection * View * Model * bone_transform; 29 | 30 | uvcoord = vTexCoord; 31 | normal = vNormal; 32 | color = vColor; 33 | } 34 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/bones2b2a/bones.330.vert: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location=0) in vec4 vPosition; 4 | layout(location=1) in vec4 vColor; 5 | layout(location=2) in vec4 vNormal; 6 | layout(location=3) in vec2 vTexCoord; 7 | layout(location=4) in vec2 bone_weights; 8 | layout(location=5) in vec2 bone_ids; 9 | 10 | out vec4 color; 11 | out vec4 normal; 12 | out vec2 uvcoord; 13 | 14 | uniform mat4 Projection; 15 | uniform mat4 View; 16 | uniform mat4 Model; 17 | uniform mat4[10] bone_matrix1; 18 | uniform mat4[10] bone_matrix2; 19 | 20 | void main() { 21 | vec4 bone_transform = vec4(0,0,0,0); 22 | 23 | for (int i=0 ; i<2 ; ++i) { 24 | int bone_id = int(bone_ids[i]); 25 | bone_transform += bone_weights[i] * bone_matrix1[bone_id] * bone_matrix2[bone_id] * vPosition; 26 | } 27 | 28 | gl_Position = Projection * View * Model * bone_transform; 29 | 30 | uvcoord = vTexCoord; 31 | color = vColor; 32 | normal = vNormal; 33 | } 34 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/bones2b2a/bones.ssf: -------------------------------------------------------------------------------- 1 | GL30: 2 | Vertex: file://Spout/shaders/bones2b2a/bones.330.vert 3 | Fragment: file://Spout/shaders/diffuse.330.frag 4 | GL20: 5 | Vertex: file://Spout/shaders/bones2b2a/bones.120.vert 6 | Fragment: file://Spout/shaders/diffuse.120.frag 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/bones2b2aInstanced/bones.120.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | attribute vec4 vPosition; 4 | attribute vec4 vColor; 5 | attribute vec4 vNormal; 6 | attribute vec2 vTexCoord; 7 | attribute vec2 bone_weights; 8 | attribute vec2 bone_ids; 9 | attribute float index; 10 | 11 | varying vec4 color; 12 | varying vec4 normal; 13 | varying vec2 uvcoord; 14 | 15 | uniform mat4[2] Projection; 16 | uniform mat4[2] View; 17 | uniform mat4[2] Model; 18 | uniform mat4[20] bone_matrix1; 19 | uniform mat4[20] bone_matrix2; 20 | 21 | void main() { 22 | vec4 bone_transform = vec4(0,0,0,0); 23 | int instance = int(index); 24 | 25 | for (int i=0 ; i<2 ; ++i) { 26 | int bone_id = int(bone_ids[i]); 27 | bone_transform += bone_weights[i] * bone_matrix1[instance * 10 + bone_id] * bone_matrix2[instance * 10 + bone_id] * vPosition; 28 | } 29 | 30 | gl_Position = Projection[instance] * View[instance] * Model[instance] * bone_transform; 31 | 32 | uvcoord = vTexCoord; 33 | normal = vNormal; 34 | color = vColor; 35 | } 36 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/bones2b2aInstanced/bones.330.vert: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location=0) in vec4 vPosition; 4 | layout(location=1) in vec4 vColor; 5 | layout(location=2) in vec4 vNormal; 6 | layout(location=3) in vec2 vTexCoord; 7 | layout(location=4) in vec2 bone_weights; 8 | layout(location=5) in vec2 bone_ids; 9 | layout(location=6) in float index; 10 | 11 | out vec4 color; 12 | out vec4 normal; 13 | out vec2 uvcoord; 14 | 15 | uniform mat4[2] Projection; 16 | uniform mat4[2] View; 17 | uniform mat4[2] Model; 18 | uniform mat4[20] bone_matrix1; 19 | uniform mat4[20] bone_matrix2; 20 | 21 | void main() { 22 | vec4 bone_transform = vec4(0,0,0,0); 23 | int instance = int(index); 24 | 25 | for (int i=0 ; i<2 ; ++i) { 26 | int bone_id = int(bone_ids[i]); 27 | bone_transform += bone_weights[i] * bone_matrix1[instance * 10 + bone_id] * bone_matrix2[instance * 10 + bone_id] * vPosition; 28 | } 29 | 30 | gl_Position = Projection[instance] * View[instance] * Model[instance] * bone_transform; 31 | 32 | uvcoord = vTexCoord; 33 | normal = vNormal; 34 | color = vColor; 35 | } 36 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/bones2b2aInstanced/bones.ssf: -------------------------------------------------------------------------------- 1 | GL30: 2 | Vertex: file://Spout/shaders/bones2b2aInstanced/bones.330.vert 3 | Fragment: file://Spout/shaders/diffuse.330.frag 4 | GL20: 5 | Vertex: file://Spout/shaders/bones2b2aInstanced/bones.120.vert 6 | Fragment: file://Spout/shaders/diffuse.120.frag 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/diffuse.120.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | varying vec2 uvcoord; 4 | uniform sampler2D Diffuse; 5 | 6 | void main() { 7 | gl_FragColor = texture2D(Diffuse, uvcoord); 8 | } 9 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/diffuse.330.frag: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec2 uvcoord; 4 | in vec4 normal; 5 | uniform sampler2D Diffuse; 6 | 7 | layout(location=0) out vec4 outputColor; 8 | layout(location=1) out vec4 normals; 9 | 10 | void main() 11 | { 12 | outputColor = texture(Diffuse, uvcoord); 13 | normals = (normal + vec4(1, 1, 1, 1)) / 2; 14 | if (outputColor.a == 0) { 15 | discard; 16 | } 17 | } -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/diffuse.ssf: -------------------------------------------------------------------------------- 1 | GL30: 2 | Vertex: file://Spout/shaders/basic.330.vert 3 | Fragment: file://Spout/shaders/diffuse.330.frag 4 | GL20: 5 | Vertex: file://Spout/shaders/basic.120.vert 6 | Fragment: file://Spout/shaders/diffuse.120.frag 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/gui.basic.120.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | attribute vec4 vPosition; 4 | attribute vec4 vColor; 5 | attribute vec4 vNormal; 6 | attribute vec2 vTexCoord; 7 | 8 | varying vec4 color; 9 | varying vec4 normal; 10 | varying vec2 uvcoord; 11 | 12 | uniform mat4 Projection; 13 | uniform mat4 View; 14 | uniform mat3 Model; 15 | 16 | void main() { 17 | mat4 model = mat4(Model); 18 | model[3][0] = model[2][0]; 19 | model[3][1] = model[2][1]; 20 | model[3][2] = model[2][2]; 21 | model[2][0] = 0.0; 22 | model[2][1] = 0.0; 23 | model[2][2] = 1.0; 24 | gl_Position = Projection * View * model * vPosition; 25 | 26 | uvcoord = vTexCoord; 27 | color = vColor; 28 | normal = vNormal; 29 | } -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/gui.basic.330.vert: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location=0) in vec4 vPosition; 4 | layout(location=1) in vec4 vColor; 5 | layout(location=2) in vec4 vNormal; 6 | layout(location=3) in vec2 vTexCoord; 7 | 8 | out vec4 color; 9 | out vec4 normal; 10 | out vec2 uvcoord; 11 | 12 | uniform mat4 Projection; 13 | uniform mat4 View; 14 | uniform mat3 Model; 15 | 16 | void main() { 17 | mat4 model = mat4(Model); 18 | model[3][0] = model[2][0]; 19 | model[3][1] = model[2][1]; 20 | model[3][2] = model[2][2]; 21 | model[2][0] = 0.0; 22 | model[2][1] = 0.0; 23 | model[2][2] = 1.0; 24 | gl_Position = Projection * View * model * vPosition; 25 | 26 | uvcoord = vTexCoord; 27 | color = vColor; 28 | normal = vNormal; 29 | } -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/guiColorShader.120.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | varying vec4 color; 4 | 5 | void main() { 6 | gl_FragColor = color; 7 | } 8 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/guiColorShader.330.frag: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec4 color; 4 | 5 | layout(location=0) out vec4 outputColor; 6 | 7 | void main() { 8 | outputColor = color; 9 | } 10 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/guiColorShader.ssf: -------------------------------------------------------------------------------- 1 | GL30: 2 | Vertex: file://Spout/shaders/gui.basic.330.vert 3 | Fragment: file://Spout/shaders/guiColorShader.330.frag 4 | GL20: 5 | Vertex: file://Spout/shaders/gui.basic.120.vert 6 | Fragment: file://Spout/shaders/guiColorShader.120.frag 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/guiShader.120.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | varying vec4 color; 4 | varying vec2 uvcoord; 5 | 6 | uniform sampler2D Diffuse; 7 | uniform vec4 BlendColor; 8 | 9 | void main() { 10 | gl_FragColor = texture2D(Diffuse, uvcoord) * color * BlendColor; 11 | } 12 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/guiShader.330.frag: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec2 uvcoord; 4 | in vec4 color; 5 | 6 | uniform sampler2D Diffuse; 7 | uniform vec4 BlendColor; 8 | 9 | layout(location=0) out vec4 outputColor; 10 | 11 | void main() { 12 | outputColor = texture(Diffuse, uvcoord) * color * BlendColor; 13 | } 14 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/guiShader.ssf: -------------------------------------------------------------------------------- 1 | GL30: 2 | Vertex: file://Spout/shaders/gui.basic.330.vert 3 | Fragment: file://Spout/shaders/guiShader.330.frag 4 | GL20: 5 | Vertex: file://Spout/shaders/gui.basic.120.vert 6 | Fragment: file://Spout/shaders/guiShader.120.frag 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/postprocess/ssao.120.frag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/shaders/postprocess/ssao.120.frag -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/postprocess/ssao.330.vert: -------------------------------------------------------------------------------- 1 | #version 330 2 | //SSAO Vertex shader. Passes along the view vector. 3 | 4 | layout(location=0) in vec4 vPosition; 5 | layout(location=1) in vec4 vColor; 6 | layout(location=2) in vec4 vNormal; 7 | layout(location=3) in vec2 vTexCoord; 8 | 9 | out vec4 color; 10 | out vec4 normal; 11 | out vec2 uvcoord; 12 | out vec3 view_ray; 13 | 14 | uniform mat4 Projection; 15 | uniform mat4 View; 16 | uniform mat4 Model; 17 | 18 | void main() 19 | { 20 | gl_Position = Projection * View * Model * vPosition; 21 | 22 | view_ray = (View * vec4(1, 0, 0, 0)).xyz; 23 | uvcoord = vTexCoord; 24 | color = vColor; 25 | normal = vNormal; 26 | } -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/postprocess/ssao.ssf: -------------------------------------------------------------------------------- 1 | GL30: 2 | Vertex: file://Spout/shaders/basic.330.vert 3 | Fragment: file://Spout/shaders/postprocess/ssao.330.frag 4 | GL20: 5 | Vertex: file://Spout/shaders/basic.120.vert 6 | Fragment: file://Spout/shaders/postprocess/ssao.330.frag 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/postprocess/ssao_blur.120.frag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/shaders/postprocess/ssao_blur.120.frag -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/postprocess/ssao_blur.330.frag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/shaders/postprocess/ssao_blur.330.frag -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/skyShader.120.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | varying vec4 color; 4 | varying vec2 uvcoord; 5 | 6 | uniform sampler2D Diffuse; 7 | uniform vec4 BlendColor; 8 | 9 | void main() { 10 | gl_FragColor = texture2D(Diffuse, uvcoord); 11 | } 12 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/skyShader.120.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | attribute vec4 vPosition; 4 | attribute vec4 vColor; 5 | attribute vec2 vTexCoord; 6 | 7 | varying vec4 color; 8 | varying vec2 uvcoord; 9 | varying vec4 normal; 10 | 11 | uniform mat4 Projection; 12 | uniform mat4 View; 13 | uniform mat4 Model; 14 | 15 | void main() { 16 | gl_Position = Projection * View * Model * vPosition; 17 | 18 | uvcoord = vTexCoord; 19 | color = vColor; 20 | normal = View * Model * vPosition; 21 | } 22 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/skyShader.330.frag: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec2 uvcoord; 4 | in vec4 color; 5 | 6 | uniform sampler2D Diffuse; 7 | uniform vec4 BlendColor; 8 | 9 | layout(location=0) out vec4 outputColor; 10 | 11 | void main() { 12 | outputColor = texture(Diffuse, uvcoord); 13 | } 14 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/skyShader.330.vert: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location=0) in vec4 vPosition; 4 | layout(location=1) in vec4 vColor; 5 | layout(location=2) in vec4 vNormal; 6 | layout(location=3) in vec2 vTexCoord; 7 | 8 | out vec4 color; 9 | out vec2 uvcoord; 10 | out vec4 normal; 11 | 12 | uniform mat4 Projection; 13 | uniform mat4 View; 14 | uniform mat4 Model; 15 | 16 | void main() { 17 | gl_Position = Projection * View * Model * vPosition; 18 | 19 | uvcoord = vTexCoord; 20 | color = vColor; 21 | normal = View * Model * vNormal; 22 | } 23 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/skyShader.ssf: -------------------------------------------------------------------------------- 1 | GL30: 2 | Vertex: file://Spout/shaders/skyShader.330.vert 3 | Fragment: file://Spout/shaders/skyShader.330.frag 4 | GL20: 5 | Vertex: file://Spout/shaders/skyShader.120.vert 6 | Fragment: file://Spout/shaders/skyShader.120.frag 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/textShader.120.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | varying vec4 color; 4 | varying vec2 uvcoord; 5 | 6 | uniform sampler2D Diffuse; 7 | 8 | void main() { 9 | gl_FragColor = texture2D(Diffuse, uvcoord) * color; 10 | } 11 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/textShader.330.frag: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec4 color; 4 | in vec2 uvcoord; 5 | 6 | uniform sampler2D Diffuse; 7 | 8 | layout(location=0) out vec4 outputColor; 9 | 10 | void main() { 11 | vec4 fontsample = texture(Diffuse, uvcoord); 12 | outputColor = fontsample * color; 13 | } 14 | -------------------------------------------------------------------------------- /engine/src/main/resources/shaders/textShader.ssf: -------------------------------------------------------------------------------- 1 | GL30: 2 | Vertex: file://Spout/shaders/gui.basic.330.vert 3 | Fragment: file://Spout/shaders/textShader.330.frag 4 | GL20: 5 | Vertex: file://Spout/shaders/gui.basic.120.vert 6 | Fragment: file://Spout/shaders/textShader.120.frag 7 | -------------------------------------------------------------------------------- /engine/src/main/resources/textures/colorTerrain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/textures/colorTerrain.png -------------------------------------------------------------------------------- /engine/src/main/resources/textures/orange.32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/textures/orange.32.png -------------------------------------------------------------------------------- /engine/src/main/resources/textures/skydome_cloudy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/textures/skydome_cloudy.png -------------------------------------------------------------------------------- /engine/src/main/resources/textures/sphereical_noon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/textures/sphereical_noon.png -------------------------------------------------------------------------------- /engine/src/main/resources/textures/testsky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spoutdev/Spout/52f0992db0acca466e192d41e790a680a0f66b72/engine/src/main/resources/textures/testsky.png -------------------------------------------------------------------------------- /logging/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | 4 | 5 | Spout Logging 6 | spout-logging 7 | jar 8 | http://www.spout.org 9 | 2011 10 | Lightweight logging library built around the java.util.logging package. 11 | 12 | 13 | 14 | org.spout 15 | spout-parent 16 | 1.0.0-SNAPSHOT 17 | 18 | 19 | 20 | 21 | .. 22 | 23 | 24 | 25 | 26 | 27 | 28 | jline 29 | jline 30 | 2.11 31 | provided 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /logging/src/main/java/org/spout/logging/jline/CommandCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Spout. 3 | * 4 | * Copyright (c) 2011 Spout LLC 5 | * Spout is licensed under the Spout License Version 1. 6 | * 7 | * Spout is free software: you can redistribute it and/or modify it under 8 | * the terms of the GNU Lesser General Public License as published by the Free 9 | * Software Foundation, either version 3 of the License, or (at your option) 10 | * any later version. 11 | * 12 | * In addition, 180 days after any changes are published, you can use the 13 | * software, incorporating those changes, under the terms of the MIT license, 14 | * as described in the Spout License Version 1. 15 | * 16 | * Spout is distributed in the hope that it will be useful, but WITHOUT ANY 17 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 19 | * more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public License, 22 | * the MIT license and the Spout License Version 1 along with this program. 23 | * If not, see for the GNU Lesser General Public 24 | * License and see for the full license, including 25 | * the MIT license. 26 | */ 27 | package org.spout.logging.jline; 28 | 29 | public interface CommandCallback { 30 | public void handleCommand(String command); 31 | } 32 | -------------------------------------------------------------------------------- /math/README.md: -------------------------------------------------------------------------------- 1 | Math 2 | ==== 3 | 4 | Immutable math library developed for the Spout voxel game platform. 5 | http://www.spout.org 6 | 7 | License 8 | ------- 9 | Spout Math is licensed under [GNU Lesser General Public License Version 3][License], but with a provision that files are released under the MIT license 180 days after they are published. Please see the `LICENSE.txt` file for details. 10 | 11 | The HashFunctions class in Trove is subject to the following license restrictions: 12 | 13 | Copyright (c) 1999 CERN - European Organization for Nuclear Research. 14 | 15 | Permission to use, copy, modify, distribute and sell this software and 16 | its documentation for any purpose is hereby granted without fee, 17 | provided that the above copyright notice appear in all copies and that 18 | both that copyright notice and this permission notice appear in 19 | supporting documentation. CERN makes no representations about the 20 | suitability of this software for any purpose. It is provided "as is" 21 | without expressed or implied warranty 22 | --------------------------------------------------------------------------------