Arc framework without client related things, fixed bugs and with new api and 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 follows Arc's one):
dependencies {
implementation 'com.xpdustry:arc-lite:v158.1'
}And you can use the API the same way as Arc. The main package is arc.
Optionally, to be able to use 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.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.MockInputarc.scenearc.util.ArcNativesLoaderarc.util.Buffersarc.util.ScreenRecorderarc.util.ScreenUtilsarc.util.viewport
Fixed classes warnings
arc.Eventsarc.Filesarc.files.Fiarc.math.Randarc.math.geom.Bezierarc.math.geom.BSplinearc.math.geom.CatmullRomSplinearc.math.geom.ConvexHullarc.math.geom.Point3arc.math.geom.QuadTreearc.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.Graphics: deprecated the classarc.backend.headless.HeadlessApplication: removed client related fields, moved delta and frame rate calculation fromarc.mock.MockGraphicsarc.mock.MockGraphics: deprecated the classarc.graphics.Pixmap: removed GL related classesarc.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 protected, added a listener dispatcherarc.net.Server: changed some private field to protected, added a listener dispatcherarc.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.TaskQueue: replaced by a lock-less implementationarc.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.Ratekeeper: changed millis to nanos time calculation.arc.util.Strings: added various methods.arc.util.Structs: added various methods.arc.util.Timekeeper: added methods to know elapsed time, remaining time, etc, and changed millis to nanos time calculation.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.util.Time: added features from foo's Arc and other api to simplify time conversion.arc.util.Timer: added ability to reschedule a taskarc.struct.*: added features from foo's Arc, made all classes iterator compatible, addedeach()methods.