Skip to content

Commit

Permalink
Initial version of the TEALS Minecraft Project
Browse files Browse the repository at this point in the history
These files represent the publicly-visible portion of the TEALS
Minecraft modding project, without solutions, and stripped of some early
large zipped releases that were committed to the repo.

Instructors can find the solutions to the labs in the projects/minecraft
directory of the private APCS instructors' repository on GitHub at
https://github.com/TEALSK12/apcs.

This initial commit is a snapshot of the state of the repo, stripped of
instructor-only material, from 2016-July-9. For a full history of this
project, and if you area an instructor, send email to [email protected]
or [email protected] and we can add you to the list of contributors on
the original private TEALSMC repo.
  • Loading branch information
hollasch committed Jul 10, 2016
0 parents commit d7ceb82
Show file tree
Hide file tree
Showing 868 changed files with 292,995 additions and 0 deletions.
25 changes: 25 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# TealsMC Root Ignore File
#
# See also Forge/eclipse/.gitignore.
# ------------------------------------------------------------------------------

# GitHub Pages Site Directory
/site/

# Install & Test Directory
/test/

# Build Output Directory
/out/

# Standard Window Debris
Thumbs.db
Desktop.ini
*.bak
*.tmp
~$*.docx
~$*.pptx
~$*.xlsx

# Standard Mac Debris
.DS_Store
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
TEALS Minecraft Project Change Log
==================================


## v1.1.1 (*In Progress*)


## v1.1.0 (2016-05-31)
- Fix: Fix build error from skeleton AmethystBlock.java


## v1.0.2 (2016-05-26)
- Fix: Fixes skeleton AmethystBlock to extend block
- Fix: Does not launch GradleStart twice
- Fix: Fixed robot texture path
- Feature: Updates GradleStart to work on Mac OS X as well as Windows


## v1.0.1 (2016-05-09)
- Fix: JDK path issue


## v1.0.0 (2016-05-08)
- Official kickoff v1.0.0 release
- First simplified release. No install, admin, or internet connection required
107 changes: 107 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
Teals Minecraft Project
========================

This is the TEALS repo for the development of the Minecraft projects and associated curriculum.
The main project web site is at http://tealsk12.github.io/tealsMC.

Prerequisites
-------------
This project is targeted for development on Windows. In addition to a standard Windows environment
(I'm running Win10), you should also have the following:

- Java 1.6+
- Either Eclipse or IntelliJ IDEA. Other IDE's may work; if so, please augment and document.
- The 7-zip archiver (7z.exe). This should be on your executable path somewhere.


Clone Setup
-----------
In addition to the files and directories of a standard clone of this repo, there are two other
directories you may wish to set up:

### /test/
This directory is ignored in the repo, and is intended for local test setups of the TealsMC
distributed zip file. You can use this directory to hold a built release from the `out` directory.
For example, running 'make build' might create `out\tealsmc-idea-1.0.1.zip`, which you could then
extract to `test` and try out from there.

### /site/
The /site/ directory contains the source for the public project web site. To set it up, run the
command 'make site' from the project root.

(This directory is actually a clone of this same repo, but for the 'gh-pages' branch. This is
GitHub's way of associating project web site source with the project contents itself. Project web
site source is in the 'gh-pages' branch, and project content is in the 'master' branch.)


Development - Eclipse
----------------------
1. At the root of the tree, run 'make dev-setup' to set up your local clone.
2. Start Eclipse. For the workspace choose the Forge directory at the root of your clone.
3. Run File > New > Project... Select "Java Project" and hit Next.
4. Project name = "production" (all lowercase)
5. Hit Finish.
6. Select Run > Run Configurations...
7. Select "Java Application". Hit the "New Launch Confuration" icon (it looks like a blank page
with a plus sign, located in the upper left).
8. On "Main" tab, Main class = GradleStart. Hit the Run button.
9. After several seconds, you should see the Minecraft client splash screen.


Development - IntelliJ IDEA
---------------------------
1. At the root of the tree, run 'make dev-setup' to set up your local clone.
2. Start IntelliJ, and choose the "Open" option at the splash screen. Select the Forge folder at
the root of your project clone.
3. Verify that you have the Java SDK set up. From the left pane, open
production/src/tealsmc.mods/blocks/BlocksModule. If you see a message near the top of the file
that the SDK hasn't yet been configured, hit the link and select the SDK.
4. Add a new configuration (Run > "Edit Configurations...").
5. Hit the plus symbol in the upper left. Choose "Application".
6. Name: TealsMC Client
7. Main class: GradleStart
8. Working directory: ...\Forge\production
9. Hit OK to close the dialog box.
10. Run the TealsMC Client.


Building
--------
Use the `make.cmd` file at the root of the project to build the various components of the TealsMC
project. Generated files will go to the root `out` folder. Run `make.cmd` without arguments to see
a list of options. The more important targets are:

- build -- Generates the tealsmc-x.y.z-eclipse.zip and tealsmc-x.y.z-idea.zip archives for
distribution to students.


Releasing
---------
1. Ensure that `version.txt` contains the current release number. This project uses
[semantic versioning](http://semver.org/). Semantic versioning uses three values:
MAJOR.MINOR.PATCH.
- Increment the PATCH number if you're making a bug fix that is backwards compatible with the
prior release.
- Increment the MINOR number if you're adding functionality that is backwards compatible with
the prior release.
- Increment the MAJOR number if a release is somehow backwards incompatible with the prior
release.
2. Verify that `CHANGELOG.md` contains a good description of the changes for this release.
3. Review `build/README-Distrib.txt` for content and make any necessary changes.
4. Build the new releases using `make all` from the root of the project. This will create the
release Zip files in the `out/` directory.
5. Upload these files to hollasch.net/main/teals. (Not the perfect hosting solution, but the best
we have for now.)
6. Go to the `site/` directory (Run `make site` if you don't have one), and update the
`downloads.html` file to reflect the new latest release.
7. Create a new tag for the release. Use the command `git tag -a vX.Y.Z`, where vX.Y.Z is the
just-released version number. In the comments, try to add all of the changelog items from
`CHANGELOG.md`. When done, push your new tag with `git push origin vX.Y.Z`.
8. Bump the version in the `version.txt` file in the project root.
9. Start a new release section in `CHANGELOG.md`.


----
See the [TEALS Minecraft wiki](https://github.com/TEALSK12/tealsMC/wiki) for more project
information, or contact [Connor Hollasch](mailto:[email protected]) or
[Steve Hollasch]([email protected]).
51 changes: 51 additions & 0 deletions build/README-Distrib.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
TEALS Minecraft Project
=======================

The TEALS Minecraft project is a set of lessons based on the Minecraft Forge
<http://www.minecraftforge.net/> modding package. We have customized this
package to reduce the amount of overhead of modifying Minecraft, so that
students can easily create new kinds of items, blocks, and entities in a custom
Minecraft client.

Currently, our package supports the IntelliJ and Eclipse Java IDEs. Start off by
unzipping the archive (Eclipse or IDEA flavor) into a working directory on your
machine.


Eclipse
-------

For the Eclipse package, open the root of the project as a new workspace (it
should be named 'TealsMC-Eclipse'). You should be ready to go. Just hit the
run button (or Ctrl-F11 or F11) and the Minecraft client splash screen
should come up after a few seconds. Follow the instructions from Lab 1 to
start modding.


IntelliJ IDEA
-------------

At the IntelliJ IDEA splash screen, hit "Open", and select the "Forge"
directory in your working directory. You *may* see a warning about an
improperly set up JDK for your project. Assuming you have installed a JDK,
IntelliJ should automatically walk you through the steps needed to fix this.
After that, run the project and you should see the Minecraft client splash
screen after several seconds.


Lessons and Labs
----------------
You can find the TEALS Minecraft lessons and labs on the project web site at
http://tealsk12.github.io/tealsMC/ (case sensitive).


Help & Assistance
-----------------
We have a project wiki
<https://github.com/TEALSK12/public-apcs/wiki/TEALS-Minecraft-Project>
everyone can use and edit to share out information. Please add whatever
information you feel may help your fellow students and instructors!


If you have any questions, please contact Connor Hollasch <[email protected]>
or Steve Hollasch <[email protected]>.
1 change: 1 addition & 0 deletions build/ide/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
!*
Empty file.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
version=1
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
eclipse.preferences.version=1
org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<launchPerspectives/>\r\n
preferredTargets=default\:default|
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
PROBLEMS_FILTERS_MIGRATE=true
eclipse.preferences.version=1
platformState=1462598560885
quickStart=false
tipsAndTricks=false
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
showIntro=false
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/Minecraft/launcher/GradleStart.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="GradleStart"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Minecraft"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:Minecraft/production}"/>
</launchConfiguration>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchHistory>
<launchGroup id="org.eclipse.debug.ui.launchGroup.debug">
<mruHistory>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Client&quot;/&gt;&#13;&#10;"/>
</mruHistory>
<favorites/>
</launchGroup>
<launchGroup id="org.eclipse.debug.ui.launchGroup.profile">
<mruHistory/>
<favorites/>
</launchGroup>
<launchGroup id="org.eclipse.ui.externaltools.launchGroup">
<mruHistory/>
<favorites/>
</launchGroup>
<launchGroup id="org.eclipse.debug.ui.launchGroup.run">
<mruHistory>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Client&quot;/&gt;&#13;&#10;"/>
</mruHistory>
<favorites/>
</launchGroup>
</launchHistory>
64 changes: 64 additions & 0 deletions build/ide/eclipse/Minecraft/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="resources"/>
<classpathentry kind="src" path="launcher"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="production/lib/dependencies/akka-actor_2.11-2.3.3.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/asm-debug-all-5.0.3.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/authlib-1.5.16.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/codecjorbis-20101023.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/codecwav-20101023.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/commons-codec-1.9.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/commons-compress-1.8.1.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/commons-io-2.4.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/commons-lang3-3.3.2.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/commons-logging-1.1.3.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/config-1.2.1.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/forgeSrc-1.7.10-10.13.2.1291.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/gson-2.2.4.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/guava-17.0.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/httpclient-4.3.3.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/httpcore-4.3.2.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/icu4j-core-mojang-51.2.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/jinput-2.0.5.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/jinput-platform-2.0.5-natives-linux.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/jinput-platform-2.0.5-natives-osx.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/jinput-platform-2.0.5-natives-windows.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/jopt-simple-4.5.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/jsr305-1.3.9.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/jutils-1.0.0.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/launchwrapper-1.11.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/libraryjavasound-20101123.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/librarylwjglopenal-20100824.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/log4j-api-2.0-beta9.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/log4j-core-2.0-beta9.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/lwjgl_util-2.9.1.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/lwjgl-2.9.1.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/lwjgl-platform-2.9.1-natives-linux.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/lwjgl-platform-2.9.1-natives-osx.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/lwjgl-platform-2.9.1-natives-windows.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/lzma-0.0.1.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/netty-all-4.0.10.Final.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/realms-1.3.5.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/scala-actors-2.11.0.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/scala-actors-migration_2.11-1.1.0.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/scala-compiler-2.11.1.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/scala-continuations-library_2.11-1.0.2.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/scala-continuations-plugin_2.11.1-1.0.2.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/scala-library-2.11.1.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/scala-parser-combinators_2.11-1.0.1.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/scala-reflect-2.11.1.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/scala-swing_2.11-1.0.1.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/scala-xml_2.11-1.0.2.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/soundsystem-20120107.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/trove4j-3.0.3.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/twitch-5.16.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/twitch-external-platform-4.5-natives-windows-32.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/twitch-external-platform-4.5-natives-windows-64.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/twitch-platform-5.16-natives-osx.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/twitch-platform-5.16-natives-windows-32.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/twitch-platform-5.16-natives-windows-64.jar"/>
<classpathentry kind="lib" path="production/lib/dependencies/vecmath-1.3.1.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
17 changes: 17 additions & 0 deletions build/ide/eclipse/Minecraft/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Minecraft</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
11 changes: 11 additions & 0 deletions build/ide/eclipse/Minecraft/.settings/org.eclipse.jdt.core.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
Loading

0 comments on commit d7ceb82

Please sign in to comment.