Arc framework without client related things and with bug fixes and new features.
Intended use is to be included in standalone server applications as a small and optimized utility framework.
First, add our repository to your gradle build script:
repositories {
maven { url 'https://maven.xpdustry.com/releases' }
}Add the framework to your project dependencies (the versioning is the same as Arc):
dependencies {
implementation 'com.xpdustry:arc-lite:v152.2'
}And you can use the API the same way as Arc. The main package is arc.
Optionally, to be able to get colors on Windows consoles (e.g. the cmd), you'll need to include some libraries to your project dependencies:
dependencies {
implementation "org.fusesource.jansi:jansi-native:1.1"
implementation "org.fusesource.jansi:jansi-native:1.1:windows32"
implementation "org.fusesource.jansi:jansi-native:1.1:windows64"
}It's also recommended to "minimize" your project using the gradleup's shadow plugin.
This will remove everything that is not used by your project, making it smaller.
Modified source structure to match a classic Gradle project.
Removed natives/ libraries.
Removed backends
Merged headless backend to main source.
Removed extensions
Merged arcnet extension to main source.
Removed packages and classes
arc.Inputarc.Graphicsarc.assetsarc.audioarc.graphics.Blendingarc.graphics.Cameraarc.graphics.Cubemaparc.graphics.CubemapDataarc.graphics.GL20arc.graphics.GL30arc.graphics.GLTexturearc.graphics.Glarc.graphics.Mesharc.graphics.Texturearc.graphics.TextureArrayarc.graphics.TextureArrayDataarc.graphics.TextureDataarc.graphics.VertexAttributearc.graphics.g2darc.graphics.glarc.inputarc.mock.MockAudioarc.mock.MockGL20arc.mock.MockGraphicsarc.mock.MockInputarc.scenearc.util.ScreenRecorderarc.util.ScreenUtilsarc.util.viewport
Moved arc.graphics.g2d.PixmapRegion to arc.graphics.
Removed classes warnings
arc.Eventsarc.Filesarc.files.Fiarc.math.Randarc.math.geom.Bezierarc.math.geom.BSplinearc.math.geom.CatmullRomSplinearc.math.geom.ConvexHullarc.math.geom.Point3arc.net.ArcNetExceptionarc.net.Serverarc.struct.*arc.files.ZipFiarc.util.CommandHandlerarc.util.Http.HttpStatusExceptionarc.util.Selectarc.util.SharedLibraryLoaderarc.util.Structsarc.util.io.CRCarc.util.pooling.Poolarc.util.pooling.Poolsarc.util.serialization.Jsonarc.util.serialization.JsonReadeararc.util.serialization.JsonValuearc.util.serialization.JsonWriterarc.util.serialization.Jvalarc.util.serialization.SerializationException
Modified classes
arc.Application: moved delta and frame rate calculation fromarc.Graphicsbecausearc.util.Timedepends on themarc.Core: removed client related fieldsarc.backend.headless.HeadlessApplication: removed client related fields, moved delta and frame rate calculation fromarc.mock.MockGraphicsarc.graphics.Pixmap: moved usedarc.graphics.Glfields to a private classarc.graphics.Pixmaps: removed Texture related methodsarc.math.Angles: removed#mouseAngle()arc.math.Mathf: removed unnecessaryVec2arc.math.geom.QuadTree: reduced intersect methodsarc.net.Client: changed some private field to protectedarc.net.Connection: changed some private field to protectedarc.net.Server: changed some private field to protectedarc.util.ColorCodes: moved colors application fromarc.util.Logarc.util.Log: moved colors application toarc.util.ColorCodesarc.util.Http: added a getter forHttpResponse.connection, fixedHttpStatus.byCode()mapping, added more status inHttpStatusarc.util.Time: useCore.app.getDeltaTime()instead ofCore.graphics.getDeltaTime()arc.util.Tmp: removed texture related thingsarc.util.serialization.JsonValue: fixed formatting, removedPrettyPrintSettingsbecause it's uselessarc.util.serialization.JsonWriter: added serialization of aJsonValuearc.util.serialization.UBJsonWriter: fixedJsonValueserialization via generic Object
Added features
arc.util.serialization.Json: added getter fortypeName, added a way to deserialize json without setting fields to an object, fixed json object key serialization, added inherited serializers, removedPrettyPrintSettingsarc.util.serialization.JsonValue: added a#copy()methodarc.util.serialization.JsonWriterBuilder: added a json builder used byJsonto convert an object to aJsonValue.arc.util.Strings: added various methods.arc.util.Structs: added various methods.arc.util.Timekeeper: added methods to know elapsed time, remaining time, etc.arc.util.io.ByteBufferOutput: filled stubs and suppressed IOException from#writeUTF()arc.util.io.ByteBufferInput: suppressed IOException from#readUTF()arc.util.Logger: added a logger with topicsarc.util.Autosaver: added an auto saver (should be started manually by the app)arc.util.JsonSettings: added a configurable json settings handler.arc.Settings: just a JsonSettings with a dynamic saving directory and without the settings backup directory (compared to original arc.Settings)arc.struct.Seq: added features from foo's Arcarc.util.Time: added features from foo's Arc