* Remove obsolete api and fix some warning
* Move MEMonitorHandler to internal code and fix some warnings
* Rename exceptions to conform to naming scheme
Updated Drives to support more than Item and Fluid cells.
Use Collections.emptyList() instead of creating empty ArrayLists.
Fixes a NPE with uninitialized ME Chests.
Fixes#3150
* Updated Forge to 1.12.2 RB
Updated mappings to the MDK defaults for 1.12.2
Updated related depdencies
* With Forge 14.23 not available for < 1.12.2, we have to drop support.
With one potential fix for TE corruption, this step should be
reasonable.
* Added Registry for customized charger rates.
* Added rates for all chargable items/block.
* Charger and Inscriber now store 1.6k AE each instead of 1.5k
* A crank applies 160 AE instead of 150
* Charged certus now requires 1.6k instead of 1.5k
* Use itemstack as itemdef
* HIGH_TAG/LOW_TAG should be compared both directions
* Remove getTagCompound
* Make Itemlist implementation independent
* Cache item id for performance reasons
* Add preconditions to saveguard against external meddling
* Chache itemDamage
* Remove IAEStackSearchKey for now, rename getDisplayStack
* Improved IGrinderRegistry
Added a builder for grinder recipes similar to IInscriberRegistry.
Replaced different add methods with this builder.
IIinscriberRegistry#addRecipe and removeRecipe now return true on success.
* Further improvments for the enerygrid.
Simplified quartz fiber.
Removed different Actionable code paths and replaced with a unified
approach.
Dropped lastProvider/Requester, it simply iterates over all, but still
drops them when necessary.
Catch all parsing exceptions instead of propagating them upwards as
these are meaningless for the actual test.
Renamed uvlMarker to ae2_uvl_marker just in case some other mod uses the
same key.
* Refactored the BaseActionSource
It now uses an interface `IActionSource` instead of a concrete class and further
subclasses.
Instead of relying on a specific class for a certain action type, it now
uses methods with Optional as return values to determine a player or
machine issuing an action. Refer to the JavaDocs for the exact behaviour.
* `IActionHost` no longer extends `IGridHost`
It never used the additional functionality and if needed the `IGridNode`
will also provide a reference to the corresponding `IGridHost`.
Due to most crafting related GUIs being hardcoded to `IGridHost`,
they no longer work when `IActionHost` is not extending it. Actually
`IActionHost` is the better solution for it, as it prevents us from looking
the grid up via the `IGridHost` and potentially finding a wrong grid.
* Interfaces now only lock the currently worked slot.
This allows `DualityInterface#onChangeInventory` to update slots of the same interface, should they be the source for a requested item and therefore updating their working set accordingly to queue further crafting requests for unfulfilled stack requirements.
* Remove the old annotation system
* Use TileEntity#onLoad instead of onChunkLoad event
* Do not call invalidate in onChunkUnload and validate in onLoad
There is currently no difference between an external grid and the local
machines trying to extract power from the grid. Thus preventing any
external grid from stealing power also does prevent machines from
extracting, if there is no other provider available.
Also a small change to use a priorityqueue with the lowest percentage
stored first. This can better utilize the upper limit by reaching it
faster and exiting earlier.
* Moved all spatial cells into a single dimension instead of one dimension per cell
Each cell will now be backed by a single region file each. So backups and restores can still be done on a per cell level.
Old cells will not be migrated.
* Moved custom cell tracking to a capability based one on the world
The size and owner of a cell is now stored inside the capabilities of the world/dimension not a custom system and we can rely on forge handling the persistence of it.
* Added the cell id to the actual item tooltip, as this is now a real identifier and not an arbitrary dimension id.
* Added vanilla banners to the whitelist
* Added unittests to the dimension manager to ensure the algorithm mapping to the correct region file
* Updated the API to conform with the new dimenion/types/biomes registration and mappings
* Fixed a couple of bugs related to world/dimension/biome registration
* Fixed a bug when transfering certain blocks due to passing missing/incorrect blockstate
* Performance improvements for the energygrid
Reworked the old recursive approach to a queue based loop.
Extract will try to prefer the next grid with the hightest amount of
stored energy.
Inject will try to prefer the grid with the lowest percentage stored.
Other operations are first come, first serve.
* Added a local buffer storage to EnergyGrid
This replaces the old not really working buffer with a special
IAEPowerStorage acting as buffer/proxy for the local energy demand as
well as temporary overflow should something provide more energy than
requested.
Currently it set to hold a maximum of 200 AE (+ optional overflow until
consumed). It will only be used locally, no other grid can use it to
avoid starving the neighbor grids before finding a energy cell.
* Fixes IExternalPowerSink
All implementations currently depend on the network demand being a valid
source, which might not be true.
Further it can cause the sink to iterate the network twice (demand and
inject) and both again for simulate and modulate.
Also it did not return the actual leftover amount instead of relying on
the demand matching it.
* Minor fixes related to removing nodes from a grid.
The grid did remove IStackWatcherHost not IEnergyWatcherHost, this was
fine for AE2 as only level emitters use it and they implement both.
But not for potential addons.
Also they would potentually not being removed as the are indexed by the
gridnodes not the machine.
Fixes#1004
* Fixes#3040: Cache recipe and revalidate it
This caches the last used recipe instead of only the result. Which
allows to revalidate the crafting grid against the recipe itself before
hitting the CraftingManager again. Therefore avoiding a high performance
hit for recipe lookups, just find the potential same recipe again.
* Remove old recipe lookup as forge provides it now.
* Further optimizations.
These are a bit quick'n'dirty and need a better solution with a full
container/gui refactoring. But for now they provide some great benefits
in terms of performance.
From now on every integration must not rely on method stripping through
a coremod or @Optional. Notable example for a very good solution is IC2.
As consequence this drops all support for RF and mods must support on of
our supported energy types. At the time of writing, ForgeEnergy and
IC2/EU.
* Renamed all dense smart cable related things to include smart
* Added dense covered cables
* Added abstract PartDenseCable to reduce redundant code
* Added dense covered recipes
* Ensures ItemPart ordering to be consitent.
Now takes the metadata into account to preserve the ordering for colored
items instead of just the part type name and depend on the insertion
order of a hashmap.
* IC2 rework to avoid a coremod or @Optional
Updated IC2 dependency
Refactored IC2 itemcharging to use an IBackupElectricManager.
Allows charging any ae powered item by using an IBackupElectricManager
instead of having to implement IElectricItem and stripping it by some
sort.
Updated IAEItemPowerStorage to use Actionable for an easier handling
with power APIs supporting a simulation.
Refactored EU P2P to avoid method stripping
Use a modified internal BasicSinkSource instead of implementing
IEnergySource and IEnergySink directly on the tunnel.
Removed the superfluous EU P2P layers.
* Removed internalBattery due to being too complex
* Creative Energy Cell is not a chargeable item
* Fixes#3024: Crash on recipe lookup for disabled features
Adds a new recipe condition for a single AEFeature or a list of them.
Moved the factories to their own package, in preparation of phasing out
the old recipe handling.
Fluix Pearls instead of Fluix Crystals for spatial related items.
Fluix cables for most items, not any cable to avoid loops or unwanted
crafting steps.
* Adds improved tooltip to invalid encodedPattern
This also fixes that encodedPattern might be shown as valid,
even though one or more input or output item is missing.
* First iteration of P2P rework
Changed frequency to short instead of long.
Added a per grid RNG to request a new frequency, hopefully without many collisons.
Added a helper to convert between a frequency and 4 colours
Moved the cap injection to a method, allows them to be configurable.
This is not possible for Forge Energy as it is injected before even the
configuration are lodaed, thus violating their own capability contract
to use the method injection to explicitly make it configurable.
Updated the ratio key for forge energy to "ForgeEnergy" without a space
Groups in groups.recipes that only had 1 item in the group haven't been converted into the JSON system.
That means "monitor" and "densecable" were just left as is.
This will still make it so addons still get to add custom blocks without having to change too much of the internals.
It still needs thorough testing though. I don't want to change this too much because it ruins older worlds.
This is kind of a hackjob IMO but it saves me the trouble of possibly rewriting large portions of either the AE codebase or ASM'ing the vanilla classes.
* Fixes#2680: Use a shorter cable anchor model when blocked by a facade.
* Fixes#2664: Prevent anchors from creating intersection.
Replaced the simple List<ResourceLocation> for the static models with a
new container also indicating a solid part, which can be used to prevent
the creation of an intersection.
Displayed information is equal to current the WAILA integration.
Added a preInit stage to IIntegrationModule.
Added a factory method to IntegrationType to avoid touching
IntegrationNode for every new integration.
Fixes#2650
An external inventory might change the stacksize of the slot we currently
are extracting from. Thus we have to cache the initial stackSize for a later
calculation of the extracted amount per slot.
As other inventories might NOT change the stacksize after a modification,
we can not use the stack reaching 0 as conditions to break.
* Refactored GrinderRegistry.
Changed IGrinderRegistry#getRecipes to return an unmodifiable collection.
Added a way to remove recipes explicitly instead the internal list.
Added a cache to lookup recipes instead of iterating a list.
Renamed IGrinderEntry to IGrinderRecipe
Made IGrindRecipe immutable for easy caching.
Improved GrinderLogging and Exception Handling
JEI Workaround as it expects a List instead Collection.
* Added blacklist of explicit oredict names for the grindstone.
This can be used should the automatic recipe generation create unintended
loopholes.
Reduces the visibility of some methods as these should be access through the public methods of Block or the overridden ones.
Removes now useless getCheckedSubBlocks.
Added appeng_at.cfg and updated build.gradle to correctly include the AT when building.
Deleted the now useless ASMTweaker.
Moved the coremod from package transformer to coremod as a better matching name.
Updated the old 1.7.10 code using reflection to drop it where forge or vanilla now exposes that functionality directly.
Added a singleton getter instead the public field.
Reduced all fields to private.
Replaced field access with getters.
Added setters where necessary (Dimension/Biome Registration)
Added config options to disable more features.
Splitted Enum name from the config key.
Changed FacadeConfig and Networkhandler similar to AEConfig.init().
Current intention is to maintain a single blacklist for common OS
dependent files without having to define each and every folder and their
allowed filetypes to avoid commiting these.
* Cleaned up unused Mod integrations other than for mods that are likely to be integrated soon.
* Introduced an easier Facade class to access mod integration abstractions (called Integrations).
* Removed the link between IntegrationType and integration abstraction. Integrations are now explicitly instantiated inside of IntegrationNode.
Removed TileEventType.TICK, use ITickable when really needed.
The few tiles needing to tick and are not a grid tile now implement ITickable.
Charger is no longer implementing ITickable.
* Extracts item comparison from Platform into their own helper.
Renamed methods to be more more fitting for the actual comparison.
Added documentation about each methods behaviour.
Wraps the internal inventory into an ItemListIgnoreCrafting to hide
craftable items from it. As the ItemLists will always create a copy of the
actual stack before changing them, it will not affect any itemstack stored
elsewhere.
Since the root cause is actually that the Vanilla lighting pipeline doesn't support such Vertex Formats, we disable it also if the Forge lighting pipeline is disabled.
This also relates to #2489.
* Implemented an adapter for IItemHandler so it can be used by the Storage Bus.
* Added update hook for inject/extract to ItemHandlerAdapter.
* Implemented ItemHandler and FluidHandler capabilities for the condenser, as replacement for the Void Inventories.
* Removed external storage handler, added capability-based way of accessing a monitorable ME network via the storage bus. Removed special case inventories for the matter condenser.
* Implemented InventoryAdaptor for IItemHandler. This also now fixes molecular assemblers interaction with part interfaces.
Fixes entity renderer translating it 1/4 block to high compared to the
hitbox.
Fixed the hitbox being either a bit too small or too large depending on
the used constructor.
Updated the model for tiny TNT to be a bit more compact.
Hides the substition button in processing mode to avoid confusion as it is
not usable there as well as not showing it as part of the tooltip.
Further it ensures that patterns are encoded with the setting being
disabled, should we add the support later without breaking existing
setups.
Facades will now use the correct side to determine the texture to use, and will fall back to general quads.
Fixed crafting of facades on the server by removing the check for model simplicity.
Removed all outdated dependencies, repositories, etc.
This allows us to have a clean state to build upon without having to care
about obsolete things.
Removed the deobf jar since forge can handle normal ones just fine since 1.8.9.
Fixed build errors during javadoc creation due to missing symbols caused
by ForgeGradle breaking gradle conventions and not providing the
necessary dependencies.
Fixes matrix frame not having a model (the block is transparent though).
Don't register an item model for the invalid part anymore.
Make variant registration for items more explicit.
This fixes#5
- Refactored boostrap code:
* Completely reworked item/block/tile registration.
* Fixed server side startup.
* Fixed server side startup.
* More documentation.
* More heavy cleanup
* More cleanups.
* Major refactoring of state mapping and fixes a lot of other issue related to item rendering.
* Fixes sky chest item models (no item TESR).
* Only use CachingRotatingBakedModel for tile entities automatically.
Fix default rotation of quartz pillar for item model.
* Used method reference instead of lambda for ItemMeshDefinition for multiparts.
* Removed unnecessary IHasSpecialItemModel
* Removed unused IconReg class.
* Updated resource pack version.
- Added cables & parts rendering.
- Facades got a completely new way of rendering. Anvil facades are
totally a thing.
- Added baking pipeline for simplified, highly configurable quad baking.
NOTE: Yes, there are a lot of improvements to do, bugs to fix, stuff to
add. I'm just pushing it prior to code structure change, so it does not
get lost in stashes. But it actually works!
Changed naming convention. All AE blocks, items and TEs were affected.
Most of assets were transfered, but some sill need help. Localizations
will be transfered in a separate commit.
Closes#46.
Fixes another crash bug where during UVLModelLoader loading, it tried to apply tint but couldn't, because no block was available.
Also fixes a bug where the quad tint wasn't propagated and tinting didn't work.
* Added a way to register a custom ItemMeshDefinition for items, including registration of custom variants.
* Moved color handling for paint balls into the paint ball class and implemented the correct model selection logic for displaying the items.
- Compile error fixes (blame @biggles2206). Fixes#53.
- UVLModelLoader is now cross compatible with vanilla (vanilla can use
uvl parents who have vanilla parents).
- Due to it, now using uvlMarker instead of .uvl.
- General code reformatting and cleanup.
-Fixed chests rendering in inventory (kinda).
-Fixed stairs rendering.
From now on, all blocks with multiple states MUST have item model.
Example stair provided (though with incorrect textures).
Relates to #9.
Removed duplicated crafting things. For some odd reasons they were using
different blocks and meta at the same time. Probably somebody forgot to
do something while porting 1.7.10 -> 1.8 ;) .
Kinda relates to #9.
-Externalized FacingToRotation.
-BlockLightDetector now uses tile based rotations.
-Added TESR methods and TESRs for chests. Can't get it to work in
inventory.
-Fixed rotation bugs involving culling and lighting. Now rotating culled
faces and normals too. Closes#21.
Relates to #9, #10 and #20.
Implemented automatic rotation for all tile blocks. You can still use
facing properties in model files, if you want to.
Also, some added some fixes and improvements.
Enabled block states ignoring. File with same name as block state, but
with .ignore.json extension. Although it's json extension, it is NOT IN
JSON FORMAT!!! Each line is name of property to ignore. Refers to #10.
Implemented passing of rotations to models. Removed unused unlisted
properties. Included dummy grinder model. Found bugs that have to be
fixed.
Referencing #10.
Last (?) update pass. AE2 can be launched and used (?) in game.
Rendering system changed again and again - rendering is NOT working, to
be rewritten and CAN be done a lot simpler.
Second update pass which fixes all compile errors. Some parts may have
aftermath effect, hence why 3rd pass will check those maked with
"aftermath".
Errors: 82 -> 0. Mod can be launched.
This is first update pass, which is mainly import reorganization, name
fixes, etc... Although some parts of second were done where changes
aren't important.
Errors: ~1400 -> 82.
Just `onTunnelNetworkChange` with tickable is apparently less exhaustive, and less stable. This now avoids issues with network splits and reconnects not being handled in some cases. Also simplified reconnection; there was some duplicate logic in there, with a missing validity check which potentially led to invalid connections.
This is loosely based on #2032 and should prevent any duplicated event,
but still does a refresh the whole cache due to potentially issues with
some inventories.
It also ensures that storage buses will not announce a CellArrayUpdate
before they are fully initialized, thus no longer causing them to return
null during an update.
Fixes#2403
Using LogManager instead of FMLRelaunchLog to access the logger instance.
Added logging of the name of failed exports instead of exception.
Improved crafting log to include issuer including their location and the
requested item.
Removed superfluous FMLRelaunchLog instance.
Removed superfluous parameters for PlayerData constructor.
Reduces the visibility of all fields to private and create setters/getters
when necessary. Exceptions are fields with GuiSync as these need to be
public.
Reduces the visibility of internal methods to private/protected/default when possible.
Removes the split collection as in some rare corner cases the insertion
order is important to maintain the correct data in terms of self cleaning.
Keeps the general cleanups and split of Fluid/ItemList.
Fixes#1964
ModVersionFetcher will now return a MissingVersion in case of an exception
instead of letting it propagate upwards.
Also added a generic try/catch to the VersionChecker itself, just in case
any unchecked exception might be triggered inside the thread and at least
not logged correctly.
Mostly used for the recipe system, but can also be used for debugging purposes. Debug options needs to be ticked to use the full information gain. Recipes only require the normal localization and the specific name plus metadata.
Shifted the recipes into a recipes folder where the CSV will also reside. This will also elevate the copying of the readme to the user directory since it can reside in the recipes folder.
Fixed a bug where the copier would copy the would also copy empty folders
Splitted the ItemList and MeaningfulIterator into an item and fluid
version.
Added an IdentityHashMap as additional item layer to the ItemList for a
faster access.
Refactored FluidList, findFuzzy will now return the same fluid instead of
an empty collection.
The export bus will now no longer speed up, if more than 1 of the last
crafting requests failed and slow down, if more then 5 failed.
Some code cleanup and moved the custom iterator into the helper package
as it is clearly related to the craftingtracker and not the export bus.
Prioritized inventories are not longer used twice for storing leftover
items and thus finally reporting twice the amount of storable items when
they are the only possible option to store something.
Also fixes import buses now respecting the amount of storable items inside
the network instead of trying to place the exported items back and failing
on any restricted inventory, potentially voiding the overflow.
Fixes#1892
The recipes are now structured into multipe subfolder and split into more
distinct files, so the names are more appropriate and are better at
hinting which items the actually contain.
It also extends the RecipeResourceCopier to now handle the folder
recursively and extract all subdirectories and their files.
"import=" is currently requiring a relative path to the root directory
of the recipes. This would require a larger rewrite/refactoring, thus it
is kept for now until a potentially later changer.
This reverts splitting the oredict entries into their own directory and
moves them back into the recipes folder, as it currently is causing a
couple of issues like not being able to resolve the aliases or is not
working indev. But to keep it seperate it is now its own recipe file.
Fixes#1791
Reverts #1635
This should no longer keep a reference to a World around and potentially
keep them loaded.
Also added a finalize() to CompassRegion to ensure the file is closed on a
GC.
Some cleanup regarding member order, final, etc
Applied English Locale where localization is not expected as in internal recipe handling and IMC handling, basically which interacts with public API where we either require to enforce the incoming text with regex ([a-z0-9]) or just expect proper usage of the API, but with just using upper cases in recipe files it would break in Turkish Locale like
ALIAS
another option would have been to use `equalsIgnoreCase` in some cases, but not all applicable
Some general refactoring of every monitor including panels and terminals.
Disabled glPushAttrib and glPopAttrib for StorageMonitor as this can be a
performance issue.
Conflicts:
src/main/java/appeng/parts/AEBasePart.java
src/main/java/appeng/parts/reporting/PartConversionMonitor.java
src/main/java/appeng/parts/reporting/PartDarkMonitor.java
src/main/java/appeng/parts/reporting/PartMonitor.java
src/main/java/appeng/parts/reporting/PartPatternTerminal.java
src/main/java/appeng/parts/reporting/PartSemiDarkMonitor.java
src/main/java/appeng/parts/reporting/PartStorageMonitor.java
src/main/java/appeng/parts/reporting/PartTerminal.java
Outsources the encoding of the compass data into the file name
Written tests for the encoding
Did some internal cleaning of the class
Conflicts:
src/main/java/appeng/block/solids/BlockSkyStone.java
src/main/java/appeng/core/WorldSettings.java
src/main/java/appeng/core/features/registries/PlayerRegistry.java
src/main/java/appeng/core/sync/network/NetworkHandler.java
src/main/java/appeng/core/worlddata/PlayerMapping.java
src/main/java/appeng/core/worlddata/PlayerMappingsInitializer.java
src/main/java/appeng/services/CompassService.java
src/main/java/appeng/worldgen/MeteoritePlacer.java
src/main/java/appeng/worldgen/MeteoriteWorldGen.java
Split dependency logic on the BuildCraft modules.
Config needs to be reset, if BuildCraft was disabled actively,
because now there are 3 BC modules to be taken account of
Conflicts:
gradle.properties
src/main/java/appeng/facade/FacadeContainer.java
src/main/java/appeng/facade/FacadePart.java
src/main/java/appeng/integration/abstraction/IBC.java
src/main/java/appeng/integration/modules/BC.java
src/main/java/appeng/integration/modules/BCHelpers/BCPipeHandler.java
src/main/java/appeng/integration/modules/BCHelpers/BCPipeInventory.java
src/main/java/appeng/items/tools/ToolNetworkTool.java
src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java
src/main/java/appeng/parts/CableBusStorage.java
src/main/java/appeng/parts/layers/LayerIPipeConnection.java
src/main/java/appeng/parts/misc/PartStorageBus.java
src/main/java/appeng/parts/p2p/PartP2PItems.java
src/main/java/appeng/util/inv/AdaptorBCPipe.java
src/main/java/appeng/util/inv/WrapperBCPipe.java
Previously it did encode the current and previous used channels into the
same as well as mask it with 0xFF. Which lead to an overflow every 256
gridnodes requiring a channel. This will not happen at > 2^31
Also removes the need to bitshift them for every access.
Fixes#1510
A NPE caused to open CraftGuide very slowly (several seconds)
Added Grinder recipes
Added Inscriber recipes
Conflicts:
src/main/java/appeng/integration/modules/CraftGuide.java
Applied Energistics 2 crashing, have a suggestion, found a bug? Create an issue now!
1. Make sure your issue has not already been answered or fixed and you are using the latest version. Also think about whether your issue is a valid one before submitting it.
* If it is already possible with vanilla and AE2 itself, the suggestion will be considered invalid.
* Asking for a smaller version, more compact version, or more efficient version of something will also be considered invalid.
2. Go to [the issues page](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues) and click [new issue](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues/new)
3. Enter your a title of your issue (something that summarizes your issue), and then create a detailed description of the issue.
* Do not tag it with something like `[Feature]` or`[Bug]`. When it is applicable, we will take care of it.
* The following details are required. Not including them can cause the issue to be closed.
* Do not tag it with something like `[Feature]`,`[Bug]`, or a version.
* Restrict it to a single bug or feature, it makes managing them way easier for us.
* The following details are required. Also refer to the issue template when creating one.
* Forge version
* AE2 version
* Crash log, when reporting a crash (Please make sure to use [pastebin](http://pastebin.com/))
* Do not post an excerpt of what you consider important, instead:
* Post the full log
* Never post an excerpt of what you consider important
* Always post the full log
* Other mods and their version, when reporting an issue between AE and another mod
* Also consider updating these before submitting a new issue, it might be already fixed
* A detailed description of the bug or feature
@@ -33,10 +36,12 @@ Applied Energistics 2 crashing, have a suggestion, found a bug? Create an issue
* Mod Pack using and version?
* Keep in mind that some mods might use an outdated version of AE2
* If so you should report it to your modpack
5. Click `Submit New Issue`, and wait for feedback!
4. Click `Submit New Issue`, and wait for feedback!
Providing as many details as possible does help us to find and resolve the issue faster and also you getting a fixed version as fast as possible.
Please note that we might close any issue not matching these requirements.
### Submitting Changes
* Submit an issue to the github project, assuming one does not already exist.
@@ -108,7 +113,7 @@ the styling guidelines used by AE.
PRs that do not conform to these standards will be rejected.
You can find presets for Eclipse and IntelliJ IDEA in the `codeformat` folder.
We try to keep them up to date, but in case you find them not formatting it correctly, then please report it
We try to keep them up to date. Please report any case of maintaining the correct formatting.
@@ -55,15 +54,18 @@ You install this mod by putting it into the `minecraft/mods/` folder. It has no
Applied Energistics 2 crashing, have a suggestion, found a bug? Create an issue now!
1. Make sure your issue has not already been answered or fixed and you are using the latest version. Also think about whether your issue is a valid one before submitting it.
* If it is already possible with vanilla and AE2 itself, the suggestion will be considered invalid.
* Asking for a smaller version, more compact version, or more efficient version of something will also be considered invalid.
2. Go to [the issues page](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues) and click [new issue](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues/new)
3. Enter your a title of your issue (something that summarizes your issue), and then create a detailed description of the issue.
* Do not tag it with something like `[Feature]` or`[Bug]`. When it is applicable, we will take care of it.
*The following details are required. Not including them can cause the issue to be closed.
* Do not tag it with something like `[Feature]`,`[Bug]`, or a version.
*Restrict it to a single bug or feature, it makes managing them way easier for us.
* The following details are required. Also refer to the issue template when creating one.
* Forge version
* AE2 version
* Crash log, when reporting a crash (Please make sure to use [pastebin](http://pastebin.com/))
*Do not post an excerpt of what you consider important, instead:
*Post the full log
*Never post an excerpt of what you consider important
*Always post the full log
* Other mods and their version, when reporting an issue between AE and another mod
* Also consider updating these before submitting a new issue, it might be already fixed
* A detailed description of the bug or feature
@@ -76,10 +78,12 @@ Applied Energistics 2 crashing, have a suggestion, found a bug? Create an issue
* Mod Pack using and version?
* Keep in mind that some mods might use an outdated version of AE2
* If so you should report it to your modpack
5. Click `Submit New Issue`, and wait for feedback!
4. Click `Submit New Issue`, and wait for feedback!
Providing as many details as possible does help us to find and resolve the issue faster and also you getting a fixed version as fast as possible.
Please note that we might close any issue not matching these requirements.
## Building
1. Clone this repository via
@@ -91,18 +95,18 @@ Providing as many details as possible does help us to find and resolve the issue
- CI server `gradlew setupCIWorkspace`
3. Build `gradlew build`. Jar will be in `build/libs`
4. For core developer: Setup IDE
- IntelliJ: Import into IDE and execute `gradlew genIntellijRuns` afterwards
- IntelliJ: Import into IDE, execute `gradlew genIntellijRuns` and change RunConfiguration to `*_main` as quickfix for [ForgeGradle](https://github.com/MinecraftForge/ForgeGradle/issues/357)
- Eclipse: execute `gradlew eclipse`
5. For add-on developer: Core-Mod Detection
- In order to have FML detect AE from your dev environment, add the following VM Option to your run profile
Before you want to add major changes, you might want to discuss them with us first, before wasting your time.
If you are still willing to contribute to this project, you can contribute via [Pull-Request](https://help.github.com/articles/creating-a-pull-request).
The [guidelines for contributing](https://github.com/AppliedEnergistics/Applied-Energistics-2/blob/master/CONTRIBUTING.md) contain more detailed information about topics like the used code style and should also be considered.
The [guidelines for contributing](https://github.com/AppliedEnergistics/Applied-Energistics-2/blob/master/.github/CONTRIBUTING.md) contain more detailed information about topics like the used code style and should also be considered.
Here are a few things to keep in mind that will help get your PR approved.
@@ -114,7 +118,7 @@ Here are a few things to keep in mind that will help get your PR approved.
- Does your feature simplify another feature of AE2? These changes will not be accepted.
- If your feature can be done by any popular mod, discuss with us first.
Getting Started
**Getting Started**
1. Fork this repository
2. Clone the fork via
@@ -134,7 +138,7 @@ If you are only doing single file pull requests, GitHub supports using a quick w
The API for Applied Energistics 2. It is open source to discuss changes, improve documentation, and provide better add-on support in general.
Development and standard builds can be obtained [Here](http://ae2.ae-mod.info/Downloads/).
Universal builds obtained [Here](http://ae2.ae-mod.info/Downloads/) should work in a development environment.
### Maven
@@ -160,9 +164,17 @@ An example string would be `appeng:appliedenergistics2:rv2-alpha-30:dev`
Files must be encoded as UTF-8.
### New Translations
### New or updated Translations
You can provide any additional languages by creating a new file with the [appropriate language code](http://download1.parallels.com/SiteBuilder/Windows/docs/3.2/en_US/sitebulder-3.2-win-sdk-localization-pack-creation-guide/30801.htm).
The language files are located in `/src/main/resources/assets/appliedenergistics2/lang/` and use the [appropriate locale code](http://minecraft.gamepedia.com/Language) as name and `.lang` as extension.
To update an translation edit the corresponding file and improve/correct the existing entry. Or copy any entries from `en_US.lang` for missing translation.
To create a new translation, copy the contents of `en_US.lang`, create a new file with appropriate filename, and translate it to your language.
Please keep in mind that we use [String format](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html) to pass additional data to the text for displaying.
Therefore you should preserve parts like `%s` or `%1$d%%`, which allows us to replace them with the correct values while you still have the option to change their order for match the rules of grammar.
This might not be possible for some languages. Should this be the case, please contact us.
* Another important note, is that if a network that had overflow is deleted, its power is gone, this is one of the
* reasons why keeping overflow to a minimum is important.
*
* @param amt power to inject into the network
* @param amt power to inject into the network
* @param mode should the action be simulated or performed?
*
* @return the amount of power that the network has OVER the limit.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.