Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] [DNM] Ports/1.10 #861

Open
wants to merge 68 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
c5cf449
Store Netherclack somewhere safe
Baughn Feb 19, 2017
8f782ff
Update build script to 1.10
Baughn Apr 24, 2017
8fd86b5
Merge branch 'develop' into ports/1.10
Baughn Jul 1, 2018
7f10ff1
Basic build.gradle for 1.10, most functionality commented out
Baughn Jul 1, 2018
69b9eca
WIP state dump
Baughn Jul 1, 2018
5e87b7c
Fix applyTo naming for non-mutating version
Baughn Jul 1, 2018
4738e9c
Updating Eln.java
rbb30 Aug 19, 2018
0b9b579
Merge branch 'ports/1.10' into patch-1
rbb30 Aug 20, 2018
8a5cd36
Update BrushDescriptor.kt
rbb30 Aug 20, 2018
d27cf8f
Merge pull request #871 from lolmegaxd1/patch-1
Baughn Aug 20, 2018
4a68bf6
Update Tasks.org
Baughn Aug 22, 2018
61e3a0a
Thoughts on the workbench
Baughn Aug 22, 2018
8823343
Research?
Baughn Aug 22, 2018
27af65a
Add calculator
Baughn Aug 24, 2018
546e9ab
Fix the formatting
Baughn Aug 24, 2018
13a3d1f
Update readme file for 1.10 (#875)
Baughn Aug 24, 2018
c3d801c
Update README.md
Baughn Aug 24, 2018
2a0fe46
Changes made to several files (#874)
rbb30 Aug 24, 2018
7261bd9
Many Changes fixed
XGodL Aug 28, 2018
e9b8a91
Fixed some stuff
XGodL Aug 28, 2018
eee84c6
A lot of fixes related mainly to block.isAir()
XGodL Aug 29, 2018
b7daaf3
Update to AutoMinerSlowProcess
XGodL Aug 29, 2018
76df5e5
Update NodeManager.java
rbb30 Aug 31, 2018
d7bd40a
Update NodeManager.java
rbb30 Aug 31, 2018
d3bb8c3
Some minor changes
XGodL Sep 3, 2018
b2c2698
Merge remote-tracking branch 'origin/ports/1.10' into 1.10dev
XGodL Sep 3, 2018
5fa3fc3
Removed coordonate and other changes
XGodL Sep 6, 2018
b4124d3
Fixing writeToNBT
XGodL Sep 6, 2018
f01bcac
Fixes
XGodL Sep 23, 2018
003d3e3
fixed sound bug by setting limits on how far away looped sounds can …
jrddunbr Aug 8, 2018
66e21f2
fixed #813
jrddunbr Aug 12, 2018
8913341
Small things
rbb30 Feb 4, 2019
1bc3767
Merge pull request #879 from lolmegaxd1/ports/1.10
Baughn Feb 5, 2019
e141b47
Merge branch 'develop' into ports/1.10
Baughn Feb 5, 2019
5f3ad58
Remove the cofh API, er, again.
Baughn Feb 5, 2019
c749071
Fix compile errors in all the .kt files
Baughn Feb 6, 2019
84b3fa7
Add the 1.10 COFH RF API
Baughn Feb 6, 2019
b21ba2b
Fix the exporters
Baughn Feb 6, 2019
7f42c38
"Fix" the GUI code
Baughn Feb 6, 2019
07f31d2
Fix packet handling, maybe.
Baughn Feb 7, 2019
5eee6f2
1.10 port now compiles, among other things. Things such as crashing.
Baughn Feb 26, 2019
e8eabdf
Disable CC, there's no 1.10 version.
Baughn Feb 26, 2019
bfd6071
Misc. Fixes
Baughn Feb 26, 2019
9f105be
At least make the bloody thing boot.
Baughn Feb 26, 2019
1f5d5d8
Now loads the world
Baughn Feb 26, 2019
24b8cac
Fix all the translation parameters. Creative tab no longer crashes.
Baughn Feb 26, 2019
3ec8921
1.12 Gradle configuration
Baughn Feb 27, 2019
0506b96
Fix everything but the ItemStack changes
Baughn Feb 27, 2019
d5550bf
Compiles on 1.12 (but I commented out preInit)
Baughn Mar 1, 2019
80fae39
Merge remote-tracking branch 'origin/develop' into ports/1.10
Baughn Mar 1, 2019
5b96ab5
Runs once again
Baughn Mar 1, 2019
141ac47
Warped skeleton of a LibLib init system
Baughn Mar 2, 2019
1d488cd
Do not ignore json files
Baughn Mar 3, 2019
2dd8479
Namespace-ify every translation key
Baughn Mar 3, 2019
8a538cd
Mark ores as tiles
Baughn Mar 3, 2019
904cab8
Use BlockModVariant for ore, not BlockMod. ¯\_(ツ)_/¯
Baughn Mar 3, 2019
ce1d557
Ore block hardness, texturing
Baughn Mar 3, 2019
3b96a0f
Remove the old OreBlock
Baughn Mar 3, 2019
ee6b933
Fix sound naming
Baughn Mar 3, 2019
38d2a47
Get the fake transparent blocks to stop throwing errors.
Baughn Mar 3, 2019
59a748c
Actually, use snake_case.
Baughn Mar 3, 2019
85639ff
What are these spreadsheets doing here?
Baughn Mar 3, 2019
6885923
Replicators: Obey the rules!
Baughn Mar 3, 2019
c55b5a9
Add a simple rubber block
Baughn Mar 3, 2019
39aa289
Honestly, axes make more sense for rubber.
Baughn Mar 3, 2019
a15bb6d
No point in explicitly updating the client
Baughn Mar 3, 2019
b31d6fd
Add flubber
Baughn Mar 4, 2019
8e02dcc
Exclude eln_old.java until we can delete it
Baughn Mar 8, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ eclipse
/logs
/config
/saves
*.json
options.txt
/out
/classes
Expand Down
78 changes: 35 additions & 43 deletions LICENSE-fml.txt
Original file line number Diff line number Diff line change
@@ -1,39 +1,27 @@
This minecraft mod, Forge Mod Loader, including all parts herein except as noted below,
is licensed under the GNU LGPL v2.1 or later.
Minecraft Forge is licensed under the terms of the LGPL 2.1 found
here http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt and copied
below.

A note on authorship:
All source artifacts are property of their original author, with
the exclusion of the contents of the patches directory and others
copied from it from time to time. Authorship of the contents of
the patches directory is retained by the Minecraft Forge project.
This is because the patches are partially machine generated
artifacts, and are changed heavily due to the way forge works.
Individual attribution within them is impossible.

Consent:
All contributions to Forge must consent to the release of any
patch content to the Forge project.

A note on infectivity:
The LGPL is chosen specifically so that projects may depend on Forge
features without being infected with its license. That is the
purpose of the LGPL. Mods and others using this code via ordinary
Java mechanics for referencing libraries are specifically not bound
by Forge's license for the Mod code.

Homepage: https://github.com/MinecraftForge/FML

This software includes portions from the Apache Maven project at
http://maven.apache.org/ specifically the ComparableVersion.java code. It is
included based on guidelines at
http://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html
with notices intact. The only change is a non-functional change of package name.

This software contains a partial repackaging of javaxdelta, a BSD licensed program for generating
binary differences and applying them, sourced from the subversion at http://sourceforge.net/projects/javaxdelta/
authored by genman, heikok, pivot.
The only changes are to replace some Trove collection types with standard Java collections, and repackaged.


=== MCP Data ===
This software includes data from the Minecraft Coder Pack (MCP), with kind permission
from them. The license to MCP data is not transitive - distribution of this data by
third parties requires independent licensing from the MCP team. This data is not
redistributable without permission from the MCP team.

=== Sharing ===
I grant permission for some parts of FML to be redistributed outside the terms of the LGPL, for the benefit of
the minecraft modding community. All contributions to these parts should be licensed under the same additional grant.

-- Runtime patcher --
License is granted to redistribute the runtime patcher code (common/cpw/mods/fml/patcher and subdirectories) under
any alternative open source license as classified by the OSI (http://opensource.org/licenses)

-- ASM transformers --
License is granted to redistribute the ASM transformer code (common/cpw/mods/fml/common/asm/ and subdirectories)
under any alternative open source license as classified by the OSI (http://opensource.org/licenses)

========

GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Expand All @@ -43,6 +31,10 @@ under any alternative open source license as classified by the OSI (http://opens
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]

Preamble

The licenses for most software are designed to take away your
Expand Down Expand Up @@ -88,7 +80,7 @@ modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.

Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
Expand Down Expand Up @@ -144,7 +136,7 @@ modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.

GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

Expand Down Expand Up @@ -191,7 +183,7 @@ Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.

2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
Expand Down Expand Up @@ -249,7 +241,7 @@ instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.

Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
Expand Down Expand Up @@ -300,7 +292,7 @@ Library will still fall under Section 6.)
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.

6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
Expand Down Expand Up @@ -362,7 +354,7 @@ restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.

7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
Expand Down Expand Up @@ -403,7 +395,7 @@ subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.

11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
Expand Down Expand Up @@ -455,7 +447,7 @@ conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.

14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
Expand Down
33 changes: 23 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,53 @@
# Minecraft Mod - Codename : ELN

[![Build Status](https://travis-ci.org/Electrical-Age/ElectricalAge.svg?branch=1.7.10-MNA)](https://travis-ci.org/Electrical-Age/ElectricalAge)
[![Build Status](https://travis-ci.org/Electrical-Age/ElectricalAge.svg?branch=ports/1.10)](https://travis-ci.org/Electrical-Age/ElectricalAge)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FElectrical-Age%2FElectricalAge.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FElectrical-Age%2FElectricalAge?ref=badge_shield)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/0dd12c97357f4542903a667fa82a852c)](https://www.codacy.com/app/Baughn/ElectricalAge?utm_source=github.com&utm_medium=referral&utm_content=Electrical-Age/ElectricalAge&utm_campaign=Badge_Grade)

Electrical Age (ELN) is a Minecraft Mod offering the ability to perform large-scale in-game electrical simulations.

Look at the official project website [electrical-age.net](https://electrical-age.net/) and [the Wiki](http://wiki.electrical-age.net/) to get general information. [This official Minecraft forum post](http://www.minecraftforum.net/topic/2741783-172forge-electrical-age-mod-beta-146/) is updated on major releases. There is also a [Discord server](https://discord.gg/YjK2JAD).
Look at the official project website [electrical-age.net](https://electrical-age.net/) and [the Wiki](http://wiki.electrical-age.net/) for general information. [This official Minecraft forum post](http://www.minecraftforum.net/topic/2741783-172forge-electrical-age-mod-beta-146/) is occasionally updated. You can also visit our Discord server.

<a href="https://discord.gg/YjK2JAD">
<img src="https://img.shields.io/discord/463476274527076374.svg?style=for-the-badge">
</a>

## How to get started

**ElectricalAge is Minecraft 1.7.10 compatible only. Forge is needed.**
**The newest Electrical Age is Minecraft 1.10.2 compatible only. Forge is needed.**

1. Download the [last mod release](https://minecraft.curseforge.com/projects/electrical-age) (other versions are available through the same link). Copy the Jar file to the `.minecraft/mods/` directory (or related folder depending on your platform).
2. Get started with the tutorial map or start playing on the offical demonstration map. The two official maps can be [downloaded from here](https://github.com/Electrical-Age/ElectricalAge/releases/download/BETA-1.10/ElectricalAge_tutorialMap_BETA-1.9_r41.zip). They must be copied to the `.minecraft/saves/` (or related) directory.
3. Launch Minecraft using the `1.7.10-Forge` profile, select the tutorial map and enjoy!
3. Launch Minecraft using the `1.10.2-Forge` profile, select the tutorial map and enjoy!

Or add it with the Curse launcher.
Alternately to the above: Search for Electrical Age using the Curse launcher. Add it to your profile, and enjoy.

### Building from source

Alternatively, you can compile and launch the current development version.
[Download](https://github.com/Electrical-Age/ElectricalAge/archive/develop.zip) or clone the `develop` branch. Then build and launch the tutorial map using Gradle:
This option is primarily for developers. If you take it, make sure to join our Discord first; see the chat button above.

To build Electrical Age, you need to already have Git and the Java development kit installed. You should also have IDEA, which is what we recommend for working on it. You don't have to be running Linux, but it helps; you can typically install git and the JDK with your package manager, if they don't come preinstalled. Windows users are on your own.

Once the prerequisites are in place, run these commands:

```sh
$ git clone https://github.com/Electrical-Age/ElectricalAge.git
$ cd ElectricalAge
$ gradle unzipTutoMap runClient
$ git checkout <branch you want to work on> # Optional. The main development branch is also the default.
$ gradle setupDecompWorkspace
$ gradle build # Confirm that everything works.
$ gradle unzipTutoMap runClient # To launch the tutorial map, which is also useful for testing. You only need to unzip once.
```

For more information, see Discord and [HACKING.md](HACKING.md).

## Contributing

We appreciate any help from the community to improve the mod. You can find more information [here](./CONTRIBUTING.md).
We appreciate any help from the community to improve the mod, but please follow the pull request and issue guidelines. You can find the basic guidelines whenever you open one. For more information, go [here](./CONTRIBUTING.md).

## ABOUT

Here is some highlighted features:
Here are some highlighted features:

A better simulation
> Electrical simulation with resistive and capacitive effects. Behaviour similar to those of real life objects.
Expand Down Expand Up @@ -84,6 +96,7 @@ Code/models:
- **meelock** (typo fix)
- **Sukasa** (code enhancement)
- **DrummingFish** (GUI text parsing, cleaning/refactoring, some tweaks)
- **lolmegaxde1** (lots of work on the 1.10 port)

Languages:

Expand Down
40 changes: 40 additions & 0 deletions Tasks.org
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
* Tasks
** Port to 1.10
- TODO Fix item rendering for basically everything
- TODO Re-add IC2 exporter
- TODO Not all TEs should be tickable.
- TODO Some TESRs can be FastTESRs.
- TODO Make sure that HACKING.md exists.
* Plans
** TODO Workshop
A CfB and Factorio-style crafting system. The player churns through recipes at a configurable rate; say 0.5/second. It's like Cooking for Blockheads in that the base workbench only supports the minimum functionality, with expansion blocks adding to it.
- The recipe ordering is precalculated, and automatically ordered to minimize time spent waiting.
- Workbench space is limited. Intermediate items are shown, and *not* stored in the player's inventory. Additional benches let more complex recipes be crafted.
- Very few Eln devices will be possible to hand-craft with the Minecraft system. No AE2 for you, but that never worked great anyway.
- Minecraft recipes *can* be crafted with the multiblock.
- However, pack creators can use a configuration file to make particular recipes require some of the extra blocks sketched below. Will need substring/oredict matching for this.
- The planned MA expansion will add quality parameters to most items. Upgraded blocks can provide better quality, often faster. Steve is strong, and can shape metal with his bare hands. This does not mean it's a good idea.
- Workbench w/drawers. Mostly decorative, but acts like component storage. (Is however twice the size, 2x1x1.)
- Component storage. Single block, 8x4 storage slots. Not intended to be used by hand. Does not export an inventory interface, for that matter. Can be seen in the UI. Max stack size: 16.
- This is intended to be used for e.g. resistors. More on that later.
- Hand tools can be crafted, and stored. Note: This will happen automatically.
- A lathe, which will require said hand tools.
- Upgraded lathes... requiring lathes to build. Electrical ones, say.
- A furnace. Can we use the vanilla one?
- All the existing Eln devices.
- Once the above is in place, it becomes reasonable to add a degree of "microcrafting" to everything, to make the recipes more realistic. This is essentially fluff, given that players would never be crafting by hand anyway.
- Animating the player *using* all this would be complicated. Having Steve flail wildly might be almost as good.
- Later in the game, robots can be used to automate most of this. CnC machines, robot arms, etc.
* Ideas
** Factorio-style blueprints & construction bots.
** Super Circuit Maker-style circuit boards
The largest problem with our current circuits is how large they are. Yes, they're smaller than vanilla redstone, but they still won't fit in your living room. It would be nice to have an alternative. Sub-ideas:
- The workshop should provide some functionality for working with these. Perhaps most of it.
- We need protoboards. 'Burning' a non-protoboard version should be an obvious upgrade, allowing for more amps. Need workshop machine(s) for that.
- Obviously, power wires on these will have much lower amp ratings in general. This ties into the parametric wire system. We might actually want to make the signal cables less ideal.
- The multimeter should provide graphs when working with these. Auto-crafting is a thing; make the graphs a grayscale button version of themselves if it's missing.
- Sample circuits in the handbook. One should be a handheld calculator. Implicitly: These can be handheld.
** Research system
How do we do this so it isn't annoying?
It could be used as a gating mechanic, by having research blocks that require ever larger and more irregular bursts of power. It should probably be part of the workshop multiblock. The player should also have a way to opt out, though.
** TODO Try gravity sketch
Loading