Package nl.pim16aap2.animatedarchitecture.core.extensions
@NonNullByDefault
package nl.pim16aap2.animatedarchitecture.core.extensions
Contains classes for loading structure types from external sources. This includes classes for initializing the
structure types and their components, as well as classes for managing the classpath and loading classes from external
sources.
Each structure is loaded from its own jar file. This jar file is supposed to have a manifest that contains the following items:
Attributes.Name.MAIN_CLASSthat refers to a subclass ofStructureType.For example:
Main-Class: nl.pim16aap2.animatedarchitecture.structures.flag.StructureTypeFlag
-
The "TypeName" parameter that defines the name of the structure type.
For example:
Name: TypeName TypeName: BigDoor
-
The version of the structure type. This has to be an integer.
For example:
Name: Version Version: 1
-
Optionally: A list of dependencies on other structure types. This has to be in the format of
"
<typeName>(minVersion;maxVersion)". Both the minimum and the maximum versions of the dependency are inclusive.For example:
Name: TypeDependencies TypeDependencies: portcullis(1;5)
This would require the "portcullis" type to be installed with1 <= version >= 5.All dependencies of a class will be loaded before the class itself is loaded. Cyclic dependencies are not supported.
-
ClassDescriptionResponsible for loading extensions (structure types) from the extensions directory.