Compare commits

...
1158 Commits
Author SHA1 Message Date
mezz 86baf7462f Improve JavaDoc links, fix some broken JavaDocs (#2833)
Improve JavaDoc links, fix broken JavaDocs
2016-05-29 14:05:07 -07:00
Shadowfacts 9bb927dc64 Pass the correct position into isSideSolid in BlockRailBase#canPlaceBlockAt (#2919) 2016-05-27 19:13:20 -07:00
boni 5d5c005aae Fix Bucket rendering and add sound (#2865)
* Adjust generated quads from texture to take texture size into account #2858

*  Fix universal bucket not passing through when rightclicking on a non-block
Add proper sound events when picking up modded fluids #2821

* Have FluidUtil execute properly on both sides and sync as expected. Add default sounds to interacting with tanks

* Save sound for filling/emptying in the fluid
2016-05-16 13:20:31 -07:00
LexManos 87b0f7db99 Lets just simply this. Fixes last commit. 2016-05-14 21:40:31 -07:00
LexManos d5b93bf262 Add modder facing API for Villager Career level trades. Ref: #2854 2016-05-14 20:11:55 -07:00
RainWarrior 5445f96327 Extended Animation State Machine format to allow multiple transitions from one state. 2016-05-13 12:46:34 +03:00
cpw 2e6f4e5b86 Fix up release jsons to clean up extraneous netty references 2016-05-11 11:15:45 -04:00
LexManos 75468e9b0d Make LootPool constructor public again. Closes #2847 2016-05-11 01:25:48 -07:00
LexManos 34d4b0b93f Fix type in LootEntry json name. And rename LootTable.finalize to freeze to avoid overriding Object function. Closes #2846 and #2847 2016-05-10 23:35:02 -07:00
RainWarrior 92800f61d3 Fixed joint animation application correctly. 2016-05-10 10:46:04 +03:00
Shadowfacts 58d26618f6 Add ScreenshotEvent (#2828)
Add ScreenshotEvent
2016-05-09 14:51:30 -07:00
LexManos aaa146c10d New LootTable interaction system and event.
Modders can now modify and reference internal elements of a loot table by name.
Editing can ONLY be done in the event and any external editing will cause a exception to be thrown.
See this gist for more information: https://gist.github.com/LexManos/77c983d67b9ad27010428478b66d50fd
2016-05-09 14:15:59 -07:00
RainWarrior babd54bb87 Fixed joint hierarchy not being used fully in the animation system. 2016-05-09 20:40:53 +03:00
LexManos d30aae862f Fixed issue in ChunkIO that would potentially cause NPEs on chunks. Closes #2837 2016-05-09 02:10:24 -07:00
LexManos a7d5820e99 Fixed map extension recipie. 2016-05-08 16:38:07 -07:00
mezz 363e84b2c5 Fix the rand given to PopulateChunkEvent (#2834) 2016-05-07 11:17:18 -07:00
LexManos 6e46b6e4c1 Fix areas where dimension types are used as dimension IDs. 2016-05-05 12:50:12 -07:00
LexManos 0d13fe245d Add NPE protection to in-hand item rendering. 2016-05-04 22:29:17 -07:00
Matthew Messinger 5f74a75435 Fix url regex (#2815)
Fixed url detection in chat messages. Stops false positives such as `um.....no`
2016-05-04 10:46:33 -07:00
LexManos aa672ea69a Bump version for new RB. 2016-05-03 23:19:51 -07:00
LexManos 42404c531d Slightly better practice because wait can be randomly interupted. 2016-05-03 23:19:40 -07:00
cpw 4248dbc71d Merge in a fix from 1.8.9 for rails 2016-05-03 23:39:32 -04:00
cpw f5781488d9 Merge branch '1.9' 2016-05-03 23:24:43 -04:00
LexManos 3177d55579 Remove usage of AsynchronousExecutor library in favor or a simpler implementation. 2016-05-03 19:54:04 -07:00
LexManos d8249b7886 Add a java version detection and nag system for users on Java 7 or below.
Added detection of mods that rely on Java 8 and a graceful error screen.
The nag screen will be shown once a day. It can be disabled by editing the forge.cfg.
However it is HIGHLY recomended that user update to Java 8.
2016-05-03 18:26:52 -07:00
LexManos 4d27393c91 Fix withers breaking bedrock. Closes #2813 2016-05-03 16:13:17 -07:00
RainWarrior e98cd386e0 Fixed villager profession not being set correctly on the client, and fixed custom village texture rendering. Closes #2766. 2016-05-03 11:39:14 +03:00
RainWarrior 4538062e70 Fixed cooldown overlay sometimes rendering opaque. Closes #2772. 2016-05-03 11:03:30 +03:00
RainWarrior f3fdf4303a Make ChunkRenderDispatcher.countRenderBuilders configurable. Closes #2775. 2016-05-03 10:28:06 +03:00
RainWarrior 330812dfa8 Fixed custom fluid sufraces not rendering from the bottom. Closes #2800. 2016-05-03 09:53:55 +03:00
AlexIIL 980845b61b Fix TextureMap failing when registering a sprite's resource location twice (#2785) 2016-05-03 10:07:49 +04:00
bloodmc 5a20950902 Call markDirty when restoring blocks with TileEntities. (#2809)
This change makes sure the updated tileentity is saved properly within the
chunk.
2016-05-02 15:21:59 -07:00
bloodmc 23cdcb96a9 Call markDirty when restoring blocks with TileEntities. (#2808)
This change makes sure the updated tileentity is saved properly within the
chunk.
2016-05-02 15:18:26 -07:00
bloodmc b53e53dcb7 Call markDirty when restoring blocks with TileEntities. (#2807)
This change makes sure the updated tileentity is saved properly within the
chunk.
2016-05-02 15:01:49 -07:00
Vincent Lee 9f28c90365 Add Potion.renderHUDEffect (#2798) 2016-05-02 14:44:14 -07:00
bloodmc 7c6372202e Fix wrong blockstate being passed to notifyNeighborsRespectDebug. (#2806) 2016-05-02 14:33:35 -07:00
bloodmc b5bda7117a Only run block physics for TileEntities while capturing block placement. (#2805)
Currently, all blocks placed by players that are not TE's run physics
twice. Blocks that contain a TileEntity are not affected due to a check in
'ForgeHooks.onPlaceItemIntoWorld'.

In order to fix the problem, 'Chunk.setBlockState' will now verify if
blocks are being captured before running onBlockAdded and if so, only run
physics if the block has a tileentity. This check also prevents blocks
such as TNT's from running its physics (explosion) when placement event is
cancelled.
2016-05-02 14:23:24 -07:00
bloodmc d9bdaef468 Only run block physics for TileEntities while capturing block placement. (#2803)
Currently, all blocks placed by players that are not TE's run physics
twice. Blocks that contain a TileEntity are not affected due to a check in
'ForgeHooks.onPlaceItemIntoWorld'.

In order to fix the problem, 'Chunk.setBlockState' will now verify if
blocks are being captured before running onBlockAdded and if so, only run
physics if the block has a tileentity. This check also prevents blocks such
as TNT's from running its physics (explosion) when event is cancelled.
2016-05-02 14:21:37 -07:00
LexManos 26b5059396 Fix sluggish scrolling on GuiScrollList's and fix small rendering issue with scroll bar on certian screen sizes. 2016-05-02 14:13:33 -07:00
boni 8fdd76bae1 Fix SidedInvWrapper accessing wrong slots for setStackInSlot. (#2797)
Fix DoubleChestItemHandler not implementing IItemHandlerModifiable
2016-05-02 12:19:54 -07:00
mezz 9c9107c434 Close #2780 add CMD localization for Mac key bindings (#2792) 2016-04-29 12:04:48 -07:00
cpw 84bfeddc1c Update LICENSE-new.txt
Better words
2016-04-28 15:24:34 -04:00
cpw d9e0a653e0 Update LICENSE-new.txt
Words
2016-04-28 15:23:03 -04:00
cpw c519812ea1 Update LICENSE-new.txt
Clarification on infectivity
2016-04-28 15:22:24 -04:00
cpw e8098133ea Add the new license text. Not yet applicable to forge. 2016-04-28 15:15:50 -04:00
LexManos d090c2834b Fix NPE on shield break. Closes #2786 2016-04-27 18:37:54 -07:00
Vincent Lee 35999f9a20 Boss bar render event (#2701)
Allow control over increment height
2016-04-14 22:34:45 -07:00
iTitus fa21f2b44c Fix forge:default-block transformation. (#2760)
The first-person left-hand rotation was a little bit of.
2016-04-13 22:53:25 +04:00
LexManos 205f5c13c8 Expose a central place to access all of Vanilla and Forge's registries using the new registry API. 2016-04-09 22:33:39 -07:00
mezz c560af69a5 Fix log spam from invalid key modifiers (#2746) 2016-04-09 17:02:03 -07:00
Kina 68cd48287b make WorldSavedData implement NBTSerializable (#2745) 2016-04-09 16:09:06 -07:00
Matthew Prenger 2a3774def3 Don't use import static with net.minecraft classes. Using the latest MCP snapshots this causes an import conflict. (#2742) 2016-04-09 16:03:46 -07:00
mezz a018e14939 Add cancelable event for Potions shifting the gui position (#2667)
Add cancelable event for Potions shifting the gui position
2016-04-08 20:18:17 -07:00
Matti Ruohonen 03584ec411 Fix ForgeChunkManager world unloading check (#2736) 2016-04-07 15:39:55 -07:00
LexManos 2a4067a539 Fix being kicked from server when climbing ladders. 2016-04-07 13:12:10 -07:00
LexManos 8fefac110e Fix potential desync between Forge's Villager profession and vanilla's int based system. 2016-04-07 12:29:00 -07:00
Craig Burton d31cf8ddbc Update ore dictionary (#2721)
Updated the Ore Dictionary with more vanilla items:
  -Prismarine Shard ( "gemPrismarine" )
  -Prismarine Crystals ( "dustPrismarine" )
  -Prismarine Block ( "blockPrismarine" )
  -Prismarine Brick ( "blockPrismarineBrick" )
  -Dark Prismarine ( "blockDarkPrismarine" )
  -Nether Wart ( "cropNetherWart" )
  -Sugarcane ( "sugarcane" )
  -Paper ( "paper" )
  -Ender Pearl ( "enderpearl" )
  -Bone ( "bone)
  -Gunpowder ( "gunpowder)
  -String ( "string" )
  -Nether Star ( "netherStar" )
  -Leather ( "leather" )
  -Feather ( "feather" )
  -Egg ( "egg" )
  -End Stone ( "endstone" )
  -Torch ( "torch" )
  -Vine ( "vine" )
  -Cactus ( "blockCactus" )
  -Grass ( "grass")
  -Obsidian ( "obsidian" )
  -Red Sandstone ( added to "sandstone" )
  -Crafting Table ( "workbench" )
  -Slime Block ( "blockSlime" )
  -Granite ( "stoneGranite" )
  -Polished Granite ( "stoneGranitePolished" )
  -Diorite ( "stoneDiorite" )
  -Polished Diorite ( "stoneDioritePolished" )
  -Andesite ( "stoneAndesite" )
  -Polished Andesite ( "stoneAndesitePolished" )
2016-04-07 11:49:31 -07:00
LexManos fbe628d058 Merge pull request #2729 from kashike/feature/bossinfo
Remove @SideOnly(Side.CLIENT) from BossInfo/BossInfoServer methods
2016-04-06 16:19:18 -07:00
kashike 72edc41a7c Remove @SideOnly(Side.CLIENT) from BossInfo/BossInfoServer methods
These methods can also be used by the server (see BossInfoServer, it sends packets to the client but the methods are @SideOnly(Side.CLIENT))
2016-04-06 15:57:54 -07:00
RainWarrior db04370830 Made forge fluids use smooth lighting. 2016-04-06 16:13:51 +03:00
LexManos 7973984227 Fixed NPE in dedicated server languages. And fixed logger for main FML event bus. 2016-04-06 02:11:27 -07:00
LexManos 07a2b67b7f Cleanup OBJLoader parse function and fix issues related to JVM differences.
Also fix support for sopme of the spec that was partially respected.
2016-04-06 01:45:43 -07:00
LexManos fb0bdd1276 Enhance some error logging related to OBJLoader issues, and RegistryEntries. 2016-04-06 01:44:08 -07:00
Fry a48fd56fdc Merge pull request #2723 from mezz/pick-fix
Fix some plain keybinds not working when a modifier is active
2016-04-06 10:11:07 +04:00
mezz e68908e9d5 Fix some plain keybinds not working when a modifier is active 2016-04-05 23:01:26 -07:00
LexManos 045e8bf806 Merge pull request #2719 from mezz/pick-fix
Fix #2717 Pick block hotkey not working in inventories
2016-04-05 18:30:39 -07:00
mezz 7587ca7c71 Fix #2717 Pick block hotkey not working in inventories 2016-04-05 18:25:25 -07:00
LexManos b9d18a263c Merge pull request #2718 from nekosune/patch-1
Corrected CapabilityItemHandler.readNBT ignoring anything in slot 0 in 1.9
2016-04-05 17:49:48 -07:00
Katrina Swales 8d50c9e988 Corrected CapabilityItemHandler.readNBT ignoring anything in slot 0 in 1.9 2016-04-06 01:43:23 +01:00
LexManos ce4d31529d Merge pull request #2714 from nekosune/patch-1
Corrected CapabilityItemHandler.readNBT ignoring anything in slot 0
2016-04-05 13:32:55 -07:00
Katrina Swales f4ca1f61b9 Corrected readNBT ignoring anything in slot 0 2016-04-05 19:44:20 +01:00
RainWarrior cb7685a3b0 Fixed forge fluid having a collision box. 2016-04-05 18:55:42 +03:00
RainWarrior bf16d0066b Fixed zip being closed too early in the server language loading. 2016-04-05 18:53:19 +03:00
Fry 628613d27f Merge pull request #2709 from iTitus/bucketModel
Fix dynbucket item transformation.
2016-04-05 13:44:44 +04:00
iTitus 63a6a2e50b Fix dynbucket item transformation. 2016-04-05 10:49:51 +02:00
RainWarrior ab2b07f149 Fixed some test mods not being marked as client-only. 2016-04-05 11:46:05 +03:00
RainWarrior d44c9082fa Fixed mod languages not being loaded on the server. 2016-04-05 10:41:42 +03:00
LexManos 25d7b80119 Merge pull request #2708 from Zaggy1024/1.9
Fix PlaySoundEvent replacing a sound with PositionedSound causing an NPE.
2016-04-04 20:55:12 -07:00
Zaggy1024 68023ce40b Fixed using PlaySoundEvent to replace a sound with a PositionedSound causing an NPE due to the Sound field not being set by a call to ISound.createAccessor(SoundHandler). 2016-04-04 22:18:34 -05:00
LexManos 8180bed027 Merge pull request #2707 from mezz/keyBinding19-4
Add modifier support to vanilla keybindings.
2016-04-04 18:06:29 -07:00
LexManos 034efaff3d Merge pull request #2604 from williewillus/pie
New PlayerInteractEvent for 1.9
2016-04-04 18:06:11 -07:00
Vincent Lee e8ea52558b Player Interact Event 2016-04-04 19:58:46 -05:00
mezz 8f49ea7c5f Add modifier support to vanilla keybindings.
Add Orange conflict color for modifier/key conflicts
(like Ctrl and Ctrl-Z conflicting)
Related to #2692
2016-04-04 16:52:16 -07:00
LexManos 8fd0817c81 Merge pull request #2704 from AEnterprise/1.9
onBlockHarvested is no longer called twice
2016-04-04 15:49:49 -07:00
LexManos ce4bb8fe93 Fix improper logic in ItemHandlerHelper.giveItemToPlayer causing some items to not be added. Closes #2705 2016-04-04 15:44:03 -07:00
LexManos 9f1505dd53 Fixed EntityJoinWorldEvent not being fired for some entitites on Server Worlds. Closes #2685 2016-04-04 15:33:45 -07:00
LexManos 6342bfea3e Fix issue caused by setting spawnRadius to 0. Closes #2624 2016-04-04 15:22:17 -07:00
RainWarrior 2ae47c0903 Made both exceptions occuring during item model loading print in the log; closes #2696. 2016-04-04 18:07:06 +03:00
RainWarrior 879b7b5a61 Added the ability to change the printed model error count; Added printing of actual exceptions causing missing variants related to blockstate loading, closes #2689. 2016-04-04 16:02:21 +03:00
AEnterprise dbe9053d50 onBlockHarvested is no longer called twice 2016-04-04 11:37:40 +02:00
LexManos 1e3df55689 Merge pull request #2702 from McJty/1.9
Added DimensionManager.createProviderFor() to WorldClient constructor…
2016-04-03 22:49:11 -07:00
McJty 9c3def9cb0 Added DimensionManager.createProviderFor() to WorldClient constructor similar to what is done
in WorldServer to make sure the correct provider is created client-side too.
2016-04-04 06:26:46 +02:00
LexManos 1811d88266 Merge pull request #2616 from iTitus/updateNotificationIcon
Add update notification icon made by @gigaherz, closes #2582
2016-04-03 18:22:27 -07:00
Fry 132e0d8f93 Merge pull request #2697 from mezz/keyBinding19-3
Fix inability to attack while holding modifier keys
2016-04-04 00:19:52 +04:00
mezz bc2b5ad517 Fix inability to attack while holding modifier keys 2016-04-03 13:15:18 -07:00
Fry df1adb577c Merge pull request #2695 from mezz/keyBinding19-2
Re-Add key binding modifiers and contexts.
2016-04-03 12:50:08 +04:00
mezz 21d39f6558 Re-Add key binding modifiers and contexts. 2016-04-03 01:46:29 -07:00
RainWarrior 9baabf9249 Revert "Add key binding modifiers and contexts.", until it's fixed.
This reverts commit 34c3af7e85.
2016-04-03 11:01:09 +03:00
RainWarrior 77772ac3f5 Changed generic signature of GameRegistry.register methods to work around the type inference bug; updated all example mods to the new block/item registration method. 2016-04-03 10:14:16 +03:00
LexManos fc57d5e6c6 Merge pull request #2693 from Adubbz/1.9
Fixed mismatched registry names and mod ids
2016-04-02 23:04:15 -07:00
LexManos d13449b1b3 Merge pull request #2692 from mezz/keyBinding19
[1.9] Add key binding modifiers and contexts.
2016-04-02 23:02:59 -07:00
LexManos 087a7d8c59 Properly deprecate and link the replacement methods in GameRegistry. Add helper method for registering a block with default ItemBlock because people keep complaining -.- 2016-04-02 22:16:22 -07:00
Adubbz 8374a80283 Fixed mismatch registry names and mod ids 2016-04-03 15:13:25 +10:00
mezz 34c3af7e85 Add key binding modifiers and contexts.
Same as #2674, but for Minecraft 1.9
2016-04-02 21:25:44 -07:00
LexManos 8058c675ab Fixed compile error in registry code with Eclipse. 2016-04-02 12:01:40 -07:00
cpw 404995122a Capture a vanilla freeze - will be used when FML connects to vanilla servers, soon 2016-04-02 14:16:17 -04:00
cpw efcb9ee570 Support ResLocations for IMC 2016-04-02 12:19:36 -04:00
RainWarrior 4c8da35655 Improved UV offset hackery - should fix most visible custom model seams. 2016-04-02 18:49:18 +03:00
cpw c74216bdf2 MinecraftForge-2684 [1.9] New Registry ignores keys 2016-04-02 11:38:03 -04:00
cpw c44ed8fbde MinecraftForge-2683 InvocationTargetException for Forge 1820 for 1.9 2016-04-02 07:50:02 -04:00
cpw e72c224294 Add registries for soundevents, enchantments and potiontypes
MinecraftForge-2576 [1.9] SoundEvents (and Enchantments and PotionTypes) need a FML registry
2016-04-02 00:00:38 -04:00
cpw acf8220414 Reconcile Block.patch 2016-04-01 21:28:28 -04:00
cpw 6e04a6c572 Squashed commit of the following:
commit b3b290aec9d3010a134859da6001ea28a96c2fdc
Merge: c6ce6a0 d803f7d
Author: cpw <[email protected]>
Date:   Fri Mar 25 13:28:04 2016 -0400

    Merge branch 'RegistryRework' of https://github.com/LexManos/MinecraftForge into LexManos-RegistryRework

    Implement proper registry slaves. Should help with rollback related issues.

    Missing patch

commit d803f7db76
Author: LexManos <[email protected]>
Date:   Tue Mar 22 03:36:14 2016 -0700

    Update VillagerRegistry and use it. Should in theory make custom villagers work now. Using string version instead of int id for networking.

commit eb5e5b4b42
Author: LexManos <[email protected]>
Date:   Tue Mar 22 02:14:16 2016 -0700

    More cleanup.

commit edbc56b2ff
Author: LexManos <[email protected]>
Date:   Tue Mar 22 02:05:23 2016 -0700

    More cleanups, removed deprecated UniqueIdentifier {ResourceLocation now}

commit e2df8d1be3
Author: LexManos <[email protected]>
Date:   Tue Mar 22 01:29:19 2016 -0700

    Stupid generics....

commit 46d57dc467
Author: LexManos <[email protected]>
Date:   Tue Mar 22 01:00:25 2016 -0700

    Some registry tweaking to provde a non-complicated API modders can use.
2016-04-01 20:56:06 -04:00
Hea3veN b427b26583 Fix remapped blocks being overriden with dummy air blocks. Closes #2491 2016-04-01 20:55:19 -04:00
Fry 7668472c26 Merge pull request #2679 from tterrag1098/render_in_layer_state
Add state param to Block.canRenderInLayer
2016-04-01 11:13:28 +04:00
tterrag1098 5862aaf3a0 Add state param to canRenderInLayer 2016-04-01 03:12:01 -04:00
LexManos 74a0709356 Merge pull request #2678 from shadowfacts/BlockAddInfo-19
Forward ItemBlock#addInformation to Block#addInformation
2016-03-31 19:04:58 -07:00
Shadowfacts b7327e6a35 Forward ItemBlock#addInformation to Block#addInformation 2016-03-31 21:12:17 -04:00
LexManos 42e4d1fa77 Merge pull request #2659 from kashike/feature/immutable-blockpos
Replace Forge's getImmutable method with the vanilla method
2016-03-30 16:20:43 -07:00
LexManos 82f964c00d Merge pull request #2664 from gigaherz/capability-storage
Make access to the Capability IStorage less annoying
2016-03-30 16:00:47 -07:00
LexManos 7a8475df6e Fix landing particles not showing up. Cloes #2661 2016-03-30 15:59:14 -07:00
LexManos 38c57d9038 Make NoteBlockEvent raw constructor protected to allow subclasses. Closes #2153 2016-03-30 15:26:48 -07:00
LexManos 9b9e48b3db Fix bows not animating properly when picking up ammo while using. Closes #2672 2016-03-30 15:21:00 -07:00
LexManos c662810814 Fix shrubs not generating correctly. Closes #2663 2016-03-30 15:20:18 -07:00
LexManos 746c07fc6c Fix EntityPlayer still running old armor logic. Closes #2670 2016-03-30 14:05:27 -07:00
LexManos 1083984c8a Merge pull request #2634 from mezz/null-pick
Fix Block.getPickBlock returning an ItemStack with a null Item
2016-03-30 13:48:02 -07:00
RainWarrior 90758f8c96 Fixed StackOverflow caused by the previous commit, closes #2669. 2016-03-29 15:34:45 +03:00
RainWarrior a073b0e386 Prevent missing model from loading multiple times. 2016-03-29 12:07:26 +03:00
mezz 0f06365e1f Fix Block.getPickBlock returning an ItemStack with a null Item 2016-03-28 16:21:35 -07:00
gigaherz 70e85b5eec Add wrapper methods for IStorage#readNBT/writeNBT. 2016-03-28 18:22:42 +02:00
kashike 45881d1c90 Replace Forge's BlockPos#getImmutable method with the included BlockPos#toImmutable (func_185334_h), while keeping the override in PooledMutableBlockPos to prevent mutable leaks.
Also prevent a mutable blockpos leak in World#setTileEntity
2016-03-27 09:43:56 -07:00
RainWarrior efa7fd4dfe Fixed crosshair always being white, closes #2653. 2016-03-26 09:45:20 +03:00
RainWarrior 6e68aa4106 Enabled diffuse lighting by default in UnpackedBakedQuad.Builder. 2016-03-26 09:41:05 +03:00
RainWarrior 6385d7cc9f Fixed diffuse lighting not being applied if forge lighting pipeline is disabled, closes #2651 2016-03-26 09:29:28 +03:00
LexManos c6ce6a00a2 Merge pull request #2650 from mezz/1.9
Make tooltips layout in the right direction, wrap if there is no room
2016-03-24 20:43:45 -07:00
mezz da2964fbd3 Make tooltips layout in the right direction, wrap if there is no room
Same as #2649, but for Minecraft 1.9
2016-03-24 20:39:08 -07:00
LexManos c7e54b8ecc Merge pull request #2649 from mezz/tooltips
Make tooltips layout in the right direction, wrap if there is no room
2016-03-24 19:18:26 -07:00
mezz eca3b900e0 Make tooltips layout in the right direction, wrap if there is no room
Fixes #2255
2016-03-24 19:12:46 -07:00
RainWarrior c891d9fe16 Disabled erroring block, fixed DynBucketTest.TestItem model. 2016-03-25 00:49:34 +03:00
LexManos dd201c066e Merge pull request #2645 from diesieben07/populate_event
Fix PopulateChunkEvent.Post not firing.
2016-03-24 14:37:55 -07:00
RainWarrior 75032ebf9c Made some more public fields either private or final. 2016-03-24 22:22:21 +03:00
RainWarrior 756c58d5cb Removed RenderWorldEvent, encapsulated all public event fields. 2016-03-24 22:22:21 +03:00
RainWarrior 08c00662a0 Removed LanguageRegistry and CollectionWrapperFactory. 2016-03-24 22:22:21 +03:00
RainWarrior 1d25d9ff49 Fixed isSideSolid causing infinite loops due to the call to getActualState. 2016-03-24 22:22:21 +03:00
RainWarrior a9d23f5e78 Cleanup: removed IEEP, removed redundant casts, fixed imports, fixed typos. 2016-03-24 22:22:20 +03:00
LexManos 7e4d7077a5 New Builder class in BlockStateContainer. Makes building containers with both listed and unlisted properties cleaner.
Make all methods of BiomeGenBase$BiomeProperties public so that modders can use that class outside subclasses.
2016-03-23 19:10:10 -07:00
Take Weiland bc5313c67b Fix PopulateChunkEvent.Post not firing 2016-03-24 02:24:36 +01:00
LexManos 640670052c Merge pull request #2643 from diesieben07/beetroots
Fix BlockCrops.getDrops not respecting new age methods (for beetroots)
2016-03-23 16:33:03 -07:00
Take Weiland 8a6dafc3bb Fix BlockCrops.getDrops not respecting new age methods (for beetroots) 2016-03-23 19:51:15 +01:00
iTitus ecd6f4c1d2 Add flashing update notification icon made by @gigaherz, closes #2582
It is added to the "Mods" button in the main menu and to out-of-date mods in the mod list (there it replaces the "U").
Also fixes a little typo.
2016-03-23 14:48:29 +01:00
RainWarrior 1d608c6fe4 Register the animation Capability. No idea how it worked before at some point. 2016-03-23 08:20:06 +03:00
RainWarrior 884cc690ea Show meaningful error if ModelLoaderRegistry is used before the missing model is initialized. 2016-03-23 08:20:06 +03:00
LexManos 9edd056f55 Fix typo causing biomes to be generated in wrong chunks. Closes #2632 2016-03-22 18:59:37 -07:00
LexManos 0ce790ca2b Fixed custom entities unique ids. 2016-03-22 15:29:42 -07:00
LexManos 25cd7cc3e1 Update FML Entity Spawn packet for 1.9's location change. Closes #2567 2016-03-22 13:35:45 -07:00
LexManos a596984bfd Merge pull request #2622 from williewillus/dupedropfix2
Actually fix dupe drop
2016-03-22 13:00:28 -07:00
RainWarrior 08663587d4 Added Capability.cast, to allow avoiding unchecked casts in ICapabilityProvider.getCapability 2016-03-22 09:01:00 +03:00
LexManos a4d5760539 Fix swap animations for sure this time. 2016-03-21 20:43:22 -07:00
Vincent Lee b38cfc1769 Actually fix dupe drop 2016-03-21 22:39:48 -05:00
LexManos 3ce53a7ee0 Make OreDictionary.initVanillaEntries() private so that dumb modders will stop calling it. 2016-03-21 19:57:59 -07:00
LexManos d878c866b3 Allow finite fluids to be drained correctly 2016-03-21 19:56:31 -07:00
LexManos 1d21345dfd Merge pull request #2531 from Choonster/finite-fluid-drain-fix
Allow finite fluids to be drained correctly
2016-03-21 19:54:53 -07:00
LexManos 2a1c98048e Merge pull request #2587 from diesieben07/spawn_egg_fix
Fix mod spawn eggs and EntityList.func_188429_b
2016-03-21 19:42:59 -07:00
LexManos ac44fe298a Merge pull request #2592 from matthewprenger/patch-1
Pass exceptions thrown in mod event buses back to FML to handle appropriately
2016-03-21 19:39:09 -07:00
LexManos 81e0f2350d Merge pull request #2593 from williewillus/dupedropfix
[1.9] Fix double dropping of items. Closes #2549
2016-03-21 19:35:58 -07:00
LexManos 76efd93235 Merge pull request #2621 from Thutmose/patch-1
Fix pushing players inside blocks.
2016-03-21 19:34:58 -07:00
Thutmose e349855688 Fix pushing players inside blocks.
same changes made to the 1.9 branch
2016-03-21 22:33:35 -04:00
LexManos 5cb4fe33bc Merge pull request #2614 from williewillus/entitycaps
Expose IItemHandler on vanilla entities
2016-03-21 19:27:25 -07:00
LexManos a365582b58 Added support for custom dyes with Banners. Closes #2596 2016-03-21 19:24:12 -07:00
LexManos caf3d01586 Make RenderLivingBase.add/remvoeLayer, Closes #2573 2016-03-21 19:23:30 -07:00
LexManos f14f77d445 Fix pushing players inside blocks. 2016-03-21 18:42:37 -07:00
Vincent Lee dabb17f869 Update according to suggestions 2016-03-21 20:31:33 -05:00
LexManos c7b8020279 Exclude jna from termal tansformer. 2016-03-21 18:20:30 -07:00
LexManos 08a3b654b9 Add ShieldDecoration and Tipped arrows to recipe sorter. Closes #2613 2016-03-21 18:20:15 -07:00
LexManos cc5dea0df6 Fixed Item.shouldCauseReequipAnimation hook. 2016-03-21 17:56:59 -07:00
LexManos 2ca7cff075 Fix Chests not opening correctly with semi-solid blocks on top. 2016-03-21 17:56:59 -07:00
LexManos 1830d6de89 Merge pull request #2618 from Thutmose/patch-1
Allow players sized smaller than 1 block to walk into small spaces
2016-03-21 17:15:26 -07:00
LexManos b317d5d107 Merge pull request #2605 from Thutmose/playersize
Fixed players smaller than 1 block not being able to walk under overhang
2016-03-21 17:15:11 -07:00
LexManos 6fd9a2c00e Rework DimensionManager for new DimensionType enum, replaces the old provider registry. Also fixed save folder issues with dimensions. Closes #2570 2016-03-21 17:12:34 -07:00
Thutmose ba294d48dc Allow players sized smaller than 1 block to walk into small spaces
Same as #2605 but for 1.9 branch
2016-03-21 18:31:25 -04:00
Thutmose cd81cd0934 Allow players sized smaller than 1 block to walk into small spaces 2016-03-21 17:41:41 -04:00
LexManos 3930f6f8bd Merge pull request #2612 from CovertJaguar/master
Add missing Minecart/Track hook.
2016-03-21 14:08:40 -07:00
RainWarrior bebf22c0b0 Added default left hand transforms for forge transform strings. Closes #2615. 2016-03-21 18:55:22 +03:00
RainWarrior 9eb04ce1ef Made VertexBuffer.sortVertexData cleanup pointers after it's done. Closes #2528. 2016-03-21 18:54:25 +03:00
RainWarrior 438145995c Ignore blocks/items with null registry name during model loading. Fixes NPE during resource reloading in worlds with removed blocks/items. 2016-03-21 18:29:45 +03:00
RainWarrior 4e6ad80370 Removed blockCenterToCorner from TRSRTransformation constructor. Closes #2461. 2016-03-21 18:23:27 +03:00
RainWarrior c589a3a299 Implemented slightly more generic version of UVLock, re-enabled it for json models. Closes #2607. 2016-03-21 18:06:35 +03:00
Vincent Lee 30db41be9a Expose IItemHandler on vanilla entities 2016-03-21 09:24:36 -05:00
CovertJaguar f61605c7af Add missing Minecart/Track hook. 2016-03-21 03:18:25 -07:00
RainWarrior 4b53f0716b instance -> INSTANCE 2016-03-21 10:48:52 +03:00
RainWarrior 286c8c05b7 Separated model classes to client and common packages. 2016-03-21 10:48:52 +03:00
RainWarrior 5f62404f8a Switched animation system to capabilities, added animated item example, fixed state passing in MultiModel. 2016-03-21 10:48:52 +03:00
LexManos 558348125d Merge pull request #2610 from gigaherz/1.9-enchantment
Fix for enchantment table rolling invalid enchants
2016-03-20 21:53:07 -07:00
LexManos 4c5bc9c613 Merge pull request #2590 from blay09/patch-1
[1.9] Fix KeyInputEvent only being fired if Keyboard.getEventKeyState() is false
2016-03-20 21:50:20 -07:00
LexManos b00af6828f Merge pull request #2606 from CovertJaguar/1.9
Fix #2601 Minecart infinite acceleration
2016-03-20 21:27:17 -07:00
gigaherz 449bf3a292 Fix a condition that caused the enchantment table to roll invalid enchantments. 2016-03-21 04:18:16 +01:00
CovertJaguar 17589e61bd Fix #2601 Minecart infinite acceleration 2016-03-20 16:33:49 -07:00
Take Weiland 313d7bbc11 Fix EntityList.func_188429_b not supporting mod-entities, fixes spawn eggs, fixes #2581 2016-03-20 15:10:22 +01:00
LexManos cc2895b793 Merge pull request #2594 from Corosauce/master
Fix for patch targetting the wrong field to change for failed pathfinding penalty
2016-03-20 06:53:53 -07:00
Corosauce c01e98e25f Fix for patch targetting the wrong field to change for failed pathfinding penalty 2016-03-20 02:05:38 -04:00
LexManos 5ad2fc90cb Merge pull request #2589 from diesieben07/player_riding_fix
Fix broken patch in EntityPlayer.updateRidden
2016-03-19 21:23:25 -07:00
LexManos 9e475300f9 Merge pull request #2586 from williewillus/fixcrops
[1.9] Fix BlockCrops looking for wrong AGE property for subclasses. Fix #2555
2016-03-19 21:13:18 -07:00
LexManos d4cb82b019 Merge pull request #2585 from iTitus/patch-1
Fix the EntityPlayer patch
2016-03-19 21:12:23 -07:00
LexManos 3d7a16d32e Merge pull request #2584 from Corosauce/1.9
Fix for patch targetting the wrong field to change for failed pathfinding penalty
2016-03-19 21:10:07 -07:00
cpw 76e93e854a Fix bucket test 2016-03-19 21:36:21 -04:00
cpw ce8a758667 Merge branch 'master' into 1.9 2016-03-19 21:19:19 -04:00
cpw af4b74b079 Ignore classes directory 2016-03-19 21:18:47 -04:00
Vincent Lee c39328993e Fix double dropping of items. Closes #2549 2016-03-19 19:57:11 -05:00
Matthew Prenger ee6c041424 Pass exceptions thrown in mod event buses back to FML to handle apropriately 2016-03-19 19:07:04 -05:00
Blay09 8c38f6c1d3 Fix KeyInputEvent only being fired if Keyboard.getEventKeyState() is false.
It used to be called for both key-up and key-down states prior to 1.9, so I assume Vanilla's changes to F3 behavior broke the patch.
2016-03-20 00:12:08 +01:00
Take Weiland 590f3f610e Fix broken patch in EntityPlayer.updateRidden 2016-03-20 00:11:03 +01:00
Vincent Lee b1a5339b29 Fix #2555 2016-03-19 17:15:26 -05:00
iTitus d5d0374015 Fix the EntityPlayer patch
In 1.8.9 the call goes to getDisplayNameString() so that any changes from the PlayerEvent.NameFormat event are being take into account.
In this patch the call goes to func_70005_c_() which is the getter for the GameProfile name.
I changed it back.

Sorry if you do not want to accept it because it is a one-liner.
2016-03-19 22:37:59 +01:00
Corosauce 8ea90eb39e Fix for patch targetting the wrong field to change for failed pathfinding penalty 2016-03-19 16:55:19 -04:00
RainWarrior ad03581fbe Fixed sprite not being passed to the quad builder for custom models. 2016-03-19 09:48:46 +03:00
RainWarrior 7795570421 Fixed outline shader rendering, closes #2560. 2016-03-19 08:24:59 +03:00
RainWarrior f37a80b302 Fixed Block.doesSideBlockRendering, closes #2564. 2016-03-19 07:20:25 +03:00
RainWarrior 3f3989f6ac Fixed invalid index calculation in BakedQuadRetextured. 2016-03-18 16:55:21 +03:00
LexManos 093646e6f1 Fix AT lines. 2016-03-18 00:29:57 -07:00
RainWarrior a81dfbc4ef Fixed quads that don't need diffuse lighting getting it anyway. 2016-03-17 14:11:24 +03:00
Fry 2c55969ff3 Merge pull request #2559 from Adubbz/master
BlockColors and ItemColors no longer assume non-Vanilla id constancy. Added a getter for ItemColors.
2016-03-17 08:40:58 +04:00
RainWarrior b8bb8c374c Fixed MultiLayerModel not getting correct submodels; Unified the gui lighting of normal and custom models - diffuse lighting is now done in the pipeline, no need for IColoredBakedQuad anymore. 2016-03-17 07:29:44 +03:00
Adubbz 02e228095e BlockColors and ItemColors no longer assume non-Vanilla id constancy. Added a getter for ItemColors. 2016-03-17 14:27:55 +11:00
LexManos 0b0b5097e5 Fixed NPE when sneak using a item. 2016-03-16 18:25:53 -07:00
LexManos 1d2d9ebc83 Fixed Sand not falling. 2016-03-16 18:25:26 -07:00
LexManos c442cd2909 Fixed onUseStop being called twice {Bows firing twice} 2016-03-16 18:25:14 -07:00
LexManos 1591373bf6 Fix vanilla bug where bows consumed tipped arrows in creative. 2016-03-16 18:24:48 -07:00
LexManos f22ed86ad9 Remove our entity position fixer. Vanilla fixed the bug in 1.9. 2016-03-16 18:24:11 -07:00
RainWarrior 6b926f9a06 Javadocs, small cleanup. 2016-03-16 05:17:33 +03:00
RainWarrior 8b4bce37de Fixed progress reporting for model loading. 2016-03-16 05:00:44 +03:00
RainWarrior 87f4351783 Removed imports in patches. 2016-03-16 04:23:40 +03:00
RainWarrior 4189f63905 Fixed EffectRenderer patch, closes #2547. 2016-03-16 04:23:40 +03:00
RainWarrior 12c051d52b Fixed incorrect culling of mod TESRs. 2016-03-16 04:23:40 +03:00
RainWarrior 78a397bc69 Fixed incorrect rotations for items in the left hand. Closes #2548. 2016-03-16 04:23:28 +03:00
RainWarrior b81a13d010 Fixed model error reporting, fixed model errors in test mods that shouldn't happen, fixed custom texture loading, made more things private/final. 2016-03-16 01:42:23 +03:00
LexManos 2bdb614fda Merge pull request #2544 from Vazkii/patch-1
1.9: Fixed registering armor materials through EnumHelper exploding
2016-03-15 12:41:27 -07:00
Vasco Lavos 05801a74af 1.9: Fixed registering armor materials through EnumHelper exploding
1.9 ArmorMaterial now requires a SoundEvent for the equip sound.
2016-03-15 17:52:58 +00:00
LexManos ae72fa7ceb Fixed breaking of tall grass. It now uses fortune. Expanded grass seed hooks to allow Fortune. Potentially removing in future in favor of LootTables. 2016-03-15 01:17:38 -07:00
LexManos 7b0d8f09e9 Fix digging blocks in survival. 2016-03-14 23:44:10 -07:00
LexManos 28ae283b96 PlayerManager updated. 2016-03-14 22:58:01 -07:00
LexManos 3839d33770 Delete mcp patches. 2016-03-14 21:07:05 -07:00
LexManos 9e74f9e7c0 We are based on 1.9 not 1.8.9 :D 2016-03-13 18:51:31 -07:00
LexManos c27b13c705 Update patches for fixed inner class suffeling in srg files. 2016-03-13 18:32:53 -07:00
RainWarrior 5d352bda6c Big model loader refactoring: simplified a lot of things, broke some error reporting. Still generally works. 2016-03-13 16:16:25 +03:00
RainWarrior a799bbad2d First version of updated of ModelLoader, mostly works. 2016-03-13 12:10:50 +03:00
RainWarrior bda688b9b5 Fixed some errors in forge.exc 2016-03-13 09:59:30 +03:00
RainWarrior 4650ee2789 Updated to latest mappings. Exc is broken, some anonymous classes didn't map to srg names. 2016-03-13 04:40:03 +03:00
LexManos ba80ead005 Merge pull request #2539 from bonii-xx/bugfix
Fix CombinedInvWrapper accessing incorrect slots
2016-03-12 16:33:06 -08:00
Bernhard Bonigl bcab92daf6 Fix CombinedInvWrapper accessing incorrect slots
Closes #2533
2016-03-12 22:17:57 +01:00
cpw 52e877bdd0 Switch to srg patches 2016-03-11 19:59:24 -05:00
RainWarrior 93c1c737e1 Fixed armor rendering 2016-03-11 01:26:04 +03:00
RainWarrior 018c67d969 Fixed incorrect rendering state caused by transparent rendering pass for entities. 2016-03-11 00:57:05 +03:00
RainWarrior 5c9808ada8 Fixed emply hand not rendering in first person. 2016-03-11 00:43:18 +03:00
cpw cdf8a820a6 Capture Biome Registry within FML 2016-03-09 23:01:04 -05:00
RainWarrior 8e9b403fbf Fixed (hopefully) perspective transformations for custom models too. 2016-03-10 04:48:13 +03:00
RainWarrior cf93859095 Fix items rendering too low in first person. 2016-03-10 04:19:54 +03:00
cpw 98f606d4d2 Move the patch into the fml override handler, for less patch 2016-03-09 20:08:24 -05:00
cpw 301d4b9fa0 Fix race condition between server ticks and the netlogin code handshaking for FML 2016-03-09 20:00:10 -05:00
RainWarrior 173cec4149 Fix perspective transformations for left-handed items, disable ModelAnimationDebug until model loading is fixed. 2016-03-10 03:38:58 +03:00
LexManos 873899a62b Fixed position being shifted before being sent to shouldSideBeRendered. 2016-03-09 15:15:52 -08:00
LexManos e4da09df2a Bump version info. Rather important. 2016-03-09 14:52:32 -08:00
LexManos 90b2c86a9f Added bypass functions to Defaulted registry, DO NOT USE THIS MODDERS FORGE INTERNAL ONLY.
And some other fixups for running.
2016-03-09 14:41:13 -08:00
LexManos 7b7156e87f Interaction hooks need to be re-added but compiles {Doesn't run} 2016-03-09 14:11:56 -08:00
cpw 846910b8c8 Fix up PlayerSP for the AT 2016-03-09 01:08:42 -05:00
cpw e8a7e28110 Another AT, for the player 2016-03-09 00:59:28 -05:00
cpw aa24916736 Finish world, chunkloading should work again? 2016-03-09 00:48:32 -05:00
cpw c11732fc40 Potion cleanup. Moar fixes! 2016-03-08 23:49:19 -05:00
cpw 56a0d125bd Remove more chestgenhooks stuff. Clean up some more ATs 2016-03-08 23:39:37 -05:00
cpw 25256c8ddd More fixups, removing chestgenstuff aggressively. Use loot tables. Any missing ones WILL be added by Mojang. 2016-03-08 23:22:54 -05:00
cpw a44d76652b Another compilation fix
More patch tweaks for compilation errors. onItemUseTick takes an entity now, cos skellies use stuff too
2016-03-08 16:36:50 -05:00
cpw fffbc0f078 Some more forge code fixes 2016-03-08 16:23:54 -05:00
RainWarrior befbb45522 Most of ItemInWorldManager reject, various small error fixes. 2016-03-08 23:33:28 +03:00
RainWarrior 4b4146bbed World 2016-03-08 22:43:05 +03:00
LexManos 776eb00ed3 10 more rejects down.
98 errors 6 rejects left.
2016-03-07 23:34:40 -08:00
LexManos 26ca27193c More patch work, client patches. 2016-03-07 21:06:54 -08:00
Choonster TheMage 9ca3ede736 Allow finite fluids to be drained correctly 2016-03-07 21:31:27 +11:00
cpw f0e5baa8e5 Few more compile fixups 2016-03-07 00:23:00 -05:00
cpw ade3bbad14 Command fixups 2016-03-07 00:08:29 -05:00
cpw 020bf5ee98 Remove two patches that aren't needed anymore 2016-03-06 23:46:27 -05:00
cpw 2dcb2187c0 Some client handler cleanup 2016-03-06 23:42:30 -05:00
cpw e49e6a9e09 Fix up import in Potion 2016-03-06 23:20:06 -05:00
cpw 01912a459a Some more FML related fixups 2016-03-06 23:18:36 -05:00
cpw b342bf8481 Some fixups for FML, and use the FML registry for potions 2016-03-06 23:07:25 -05:00
LexManos 2847644368 NetworkDispatcher/FMLProxyPacket 41 more errors cleaned. 2016-03-06 18:45:21 -08:00
LexManos a83fe44d8a Temporary hack to fix MCP mappings for param names we are using that is causing compile errors. 2016-03-06 18:02:44 -08:00
LexManos 09bac53ed6 Fishing is now a loot table no more need for FishingHooks. {LootTables still need to be evaludated if they need extra hooks, but thats later} Goodbye 44 compile errors! 2016-03-06 17:01:52 -08:00
LexManos 206a21d563 Fixed errrors in Fluids package. TODO: Make BlockLiquid implement IFluidBlock and REMOVE FluidContainerRegsitry. Everything *should* be able to use IFluidContainer directly. 2016-03-06 16:54:47 -08:00
RainWarrior ee82341312 Made OBJModel.java compile. 2016-03-06 03:00:08 +03:00
RainWarrior 3e22a2b90d Model UV lock handling from the state to the model, fixed most compile errors in ModelLoader, disabled it (and ModelBakeEvent) until it's functional, fixed some errors in ForgeHooksClient. 2016-03-06 02:51:39 +03:00
RainWarrior 70670d70ea Removed generics from IModel subinterfaces, add ed ModelProcessingHelper instead. 2016-03-06 01:34:04 +03:00
cpw 0f2cead3c8 WorldServer: NOTE - ChestGenHooks has NOT been updated in accordance with plans for removing it
GuiStats
Fixup deletion of egg handling in entity registry?
2016-03-04 22:39:35 -05:00
cpw 3c7bda77e3 ServerPinger
PlayerList
2016-03-04 21:51:53 -05:00
RainWarrior 7735ff7791 ModelBox, PositionTextureVertex, TexturedQuad. Does anyone really use those on the server? 2016-03-05 05:29:55 +03:00
cpw c5e10c8cb8 LanguageManager
NetHandlerPlayClient
2016-03-04 21:26:17 -05:00
RainWarrior cb909eeb59 Fixed B3D loader, fixed some obvious errors in ModelLoader. 2016-03-05 05:02:34 +03:00
RainWarrior ed8a8b415b Fix various errors in text mods. 2016-03-05 04:43:41 +03:00
LexManos 74b2c3dfe6 World Patches work. 2016-03-04 16:40:34 -08:00
LexManos 8a506022d7 More work on misc things. 2016-03-03 02:57:38 -08:00
LexManos f821759c21 Delete reject files i missed 2016-03-02 23:37:05 -08:00
LexManos ec882538c0 Merge pull request #2521 from Adubbz/master
Updated BiomeManager to 1.9
2016-03-02 23:35:36 -08:00
Adubbz c87feabd6e Updated BiomeManager to 1.9 2016-03-03 18:33:26 +11:00
LexManos b096f58a6d Merge pull request #2520 from Adubbz/master
Updated the biome dictionary to support 1.9
2016-03-02 23:24:24 -08:00
LexManos b6bcf7bf4b Enchantments, some world, Biomes, bucks, world/gen/features. 2016-03-02 23:23:40 -08:00
Adubbz 706e894cbb Updated the biome dictionary
Squashed commits:

[4064de6] Updated the biome dictionary
2016-03-03 18:15:30 +11:00
cpw b15667a7e6 DedicatedServer
IntegratedServer
2016-03-02 13:22:04 -05:00
RainWarrior becb0a9e0e Chunk 2016-03-02 20:28:51 +03:00
RainWarrior cff4bf21ae Updated raw types in ExtendedBlockState, fixed some ATs, updated some things that needed updating in model classes. 2016-03-02 20:00:32 +03:00
RainWarrior d44d82e19d removed Item.getModel, functionality is now achieveable via ItemOverrides. 2016-03-02 15:36:32 +03:00
RainWarrior 24b66ff9f3 GuiOverlayDebug, ItemModelMesher, RenderManager, Stitcher fixed + minor fixes in forge gui classes. 2016-03-02 15:32:22 +03:00
RainWarrior 3fd09af1d3 GuiCreateWorld, GuiSlot, GuiUtilRenderComponents, GuiContainerCreative 2016-03-02 15:06:36 +03:00
LexManos 7fadb5aeb8 Small renames before bed. 2016-03-02 01:44:41 -08:00
LexManos 636a89c195 Merge pull request #2514 from CovertJaguar/1.9
Fix broken patches for EntityMinecart
2016-03-02 01:25:01 -08:00
LexManos 8863aab9e5 Items done, <1000 errors whoot! 2016-03-01 23:38:31 -08:00
CovertJaguar 8fe432230d Fix broken patches for EntityMinecart 2016-03-01 23:04:07 -08:00
LexManos ad788880e5 Some entity patches. 2016-03-01 20:42:36 -08:00
RainWarrior 728319cbb5 Fixed most errors in the model stuff, except for ModelLoader and b3d and obj getQuads/handleBlockState methods. 2016-03-01 23:19:38 +03:00
RainWarrior d9b69fda65 FontRenderer 2016-03-01 21:08:51 +03:00
RainWarrior d5c4b1825c tabs -> spaces. 2016-03-01 20:52:36 +03:00
RainWarrior d35c38d261 EntityRenderer, most of RenderGlobal, minor fix to LayerBipedArmor. 2016-03-01 20:52:19 +03:00
RainWarrior 153fb6b30d RendererLivingEntity, RenderEntityItem, RenderItem, RenderManager, LayerArmorBase; Item.getModel + ISmartItemModel are now inside ItemOverrideList; fix class rename in TESR patch. 2016-03-01 20:13:37 +03:00
RainWarrior c9a01a439d A bunch of rendering rejects updated. 2016-03-01 19:22:21 +03:00
RainWarrior c1744f00e0 Updated various block model patches. 2016-03-01 17:59:58 +03:00
LexManos ac7c4d2f6c Some import renames and compile error fixes, killed ~800. 2016-03-01 04:58:03 -08:00
LexManos 1f80eb17df util, tileentity, stats, realms. Potions got an overhaul and out registry will need to be adapted. 2016-03-01 04:07:00 -08:00
LexManos f654157adb net.minecraft.block.* patches 2016-03-01 00:31:58 -08:00
cpw bf7527d3cd First few patches applied 2016-02-29 22:54:48 -05:00
cpw 213abdb561 Add rejects with mcp names for application to main codebase. Let's roll? 2016-02-29 21:45:40 -05:00
cpw d29b9f8752 Add in mcp named patches and use them. Initial 1.9 setup. 2016-02-29 21:37:08 -05:00
cpw 95d1ba5dc5 Don't ignore rejects 2016-02-29 19:43:05 -05:00
LexManos 250a77b359 Merge pull request #2476 from Abastro/fovfixes
Added Event: EntityViewRenderEvent#FOVModifier
2016-02-29 13:20:46 -08:00
LexManos 0e35c3125a Merge pull request #2500 from me4502/master
Added local click position to PlayerInteractEvent. Fixes #2482
2016-02-27 01:21:25 -08:00
Matthew Miller (Me4502) f1ad05dd8e Added local click position to PlayerInteractEvent. 2016-02-27 11:27:21 +10:00
Abastro c4ca8270b9 Added EntityViewRenderEvent#FOVModifier
Enables mods to modify raw FOV directly.
Avoids modifier limit from FOVUpdateEvent.
Aware of blocks which are needed for fov change related with materials.
2016-02-27 09:25:19 +09:00
LexManos ecfb9accaa Fixed dummy blocks not being removed from registry on dedicated server correctly. Closes #2487
Also added some more debug logs!
2016-02-24 16:56:20 -08:00
LexManos 0dd796fb16 Merge pull request #2497 from bonii-xx/universal_bucket
Fix WordServer.canCreatureTypeSpawnHere not using Forge Events.
2016-02-23 01:04:09 -08:00
Bernhard Bonigl 17e960c158 Fix WordServer.canCreatureTypeSpawnHere not using Forge Events.
Followup of #2496
2016-02-23 09:53:26 +01:00
LexManos 76f867561d Merge pull request #2495 from elix-x/master
Increased actual maximum fuel burn time
2016-02-22 11:31:39 -08:00
LexManos b009546a94 Merge pull request #2496 from bonii-xx/universal_bucket
Fix WorldEvent.PotentialSpawns Event passing the list instance of the…
2016-02-22 11:16:55 -08:00
Bernhard Bonigl de1c270644 Fix WorldEvent.PotentialSpawns Event passing the list instance of the ChunkProvider to users 2016-02-22 18:45:31 +01:00
elix-x 0ddd897446 Increased actual maximum fuel burn time
Increased actual maximum fuel burn time from 32767 to 2147483647.
Backwards compatible.
2016-02-22 18:16:45 +01:00
RainWarrior e495b7599c ModelLoader: added verbose error logging showing items/blockstates associated with model locations; removed redundant cast leftover from ungenerified code; fixed up a couple of warnings. 2016-02-22 03:53:26 +03:00
cpw 3e4107a222 Fix race condition when using indexed codec in a LAN server. Fixes spurious crash when LAN server is running. 2016-02-20 16:04:31 -05:00
cpw c88bc769ef Log when it's likely the indexedcodec is gonna fail, because of LAN server derps likely. Try and give some context for debuggers. 2016-02-19 23:18:46 -05:00
Fry 34382745ab Merge pull request #2488 from bonii-xx/universal_bucket
Fix universal bucket logging an exception
2016-02-19 13:27:59 +03:00
Bernhard Bonigl 9b128aaed2 Fix universal bucket logging an exception 2016-02-19 11:17:23 +01:00
LexManos fe340a213f Merge pull request #2485 from AlgorithmX2/world_getLightOpacity
Test getLightOpacity(world,pos) in World as well as the chunk.
2016-02-18 19:11:55 -08:00
AlgorithmX2 9eb22c3154 Test getLightOpacity(world,pos) in World as well as the chunk. 2016-02-18 20:43:24 -06:00
LexManos ad69f0f447 Merge pull request #2443 from AlgorithmX2/cap_pickup_entityitem
Preserve ItemStack Caps when picking Items up.
2016-02-18 14:10:32 -08:00
AlgorithmX2 e6b3c7ba64 Preserve ItemStack Caps when picking Items up. 2016-02-18 16:08:23 -06:00
LexManos c0915526ff Merge pull request #2429 from AlgorithmX2/in_material_hooks
In Material Hooks - For Swimming, Overlays, Boats, and Fishing.
2016-02-18 13:40:41 -08:00
AlgorithmX2 3c4a2b0f42 In material Liquid Hooks. 2016-02-18 14:41:15 -06:00
LexManos 1b3699d90b Merge pull request #2481 from diesieben07/potion-draw-fix
Fix Potion.shouldRenderInvText
2016-02-17 17:50:18 -06:00
Take Weiland 50f77a71ae Fix Potion.shouldRenderInvText 2016-02-18 00:37:57 +01:00
LexManos 6f9e63e3ee Merge pull request #2478 from AlgorithmX2/pre_getLightOpacity
Fix bug with getLightOpacity based on TileEntities,
2016-02-17 14:16:50 -06:00
AlgorithmX2 5c229dd6c7 Fix bug with getLightOpacity based on TileEntities,
Capture getLightOpacity prior to removing the tile entity.
2016-02-17 14:14:18 -06:00
LexManos f77d50b48c Fix loading of world ID maps for worlds without dummy data. Closes #2477 2016-02-17 12:06:57 -08:00
LexManos 13a25ee0ba Merge pull request #2474 from bonii-xx/universal_bucket
Fix customized bucket names not getting translated correctly
2016-02-17 13:31:12 -06:00
RainWarrior e8915b6a55 Added default levels for fluid extended properties in fluid model. 2016-02-16 14:13:19 +03:00
Bernhard Bonigl eb879b3020 Fix customized bucket names not getting translated correctly 2016-02-16 09:39:33 +01:00
LexManos 6b51665c42 Merge pull request #2333 from bonii-xx/universal_bucket
Add an universal bucket.
2016-02-15 17:56:05 -06:00
Bernhard Bonigl 1055206ba8 Add universal bucket 2016-02-16 00:49:01 +01:00
LexManos 74fe690227 Fix chat formatting not surviving line wraps in chat messages. 2016-02-15 14:30:24 -08:00
Fry 9760b3b52f Merge pull request #2470 from diesieben07/shader-fix
Fix the entity shader hook
2016-02-14 17:51:55 +03:00
Take Weiland b875274c4f Fix the entity shader hook 2016-02-14 15:25:11 +01:00
Fry 4d33fe6b26 Merge pull request #2467 from iLexiconn/master
Added hook to add entity spectator shader
2016-02-14 12:26:47 +03:00
LexManos 94f99faf87 Merge pull request #2468 from nallar/master
Workaround JDK-8087309: Constant folding "static final boolean" is incomplete
2016-02-13 15:23:24 -06:00
Ross Allan ccf5da2113 Workaround JDK-8087309: Constant folding "static final boolean" in boolean expressions is incomplete 2016-02-13 14:43:37 +00:00
iLexiconn 776f5b91d5 Added hook to add entity spectator shader 2016-02-13 00:09:04 +01:00
LexManos 06130912c5 Protect BlockSnapshot and Chunk.getTileEntity from mutible BlockPos instances. Closes #2438 2016-02-11 16:48:32 -08:00
LexManos 70fe18c163 Fixed Block.onNeighborChange not being called for all axises. Closes #2428 2016-02-11 16:29:07 -08:00
LexManos f4b0506515 Add missing classes to CrashReport preloading. Closes #2421 2016-02-11 16:28:25 -08:00
LexManos fa6610b3c8 Fixed invalid item being passed to gatherCapabilities when itemstacks changed item. Closes #2445 2016-02-11 16:27:38 -08:00
LexManos bd6af1e49a Fixed implementation of RenderEntityItem.shouldSpreadItems. Closes #2448 2016-02-11 16:26:48 -08:00
LexManos 53301e1aeb Fixed vanilla bug where network clients would see incorrect break progress on blocks. Closes #2462 2016-02-11 16:26:12 -08:00
LexManos a607a48719 Fixed Block/Item.setRegistryName printing a incorrect warning when used. Closes #2398 2016-02-11 16:25:25 -08:00
LexManos a9ea634141 Fixed Entity.shouldRiderSit modifying game logic and not just rendering. Closes #2402 2016-02-11 16:24:38 -08:00
LexManos 124799d633 Fixed invalid parameters being sent to LivingSpawnEvent.CheckSpawn. Closes #2453 2016-02-11 16:23:49 -08:00
LexManos 9070ab56e3 Potential fix for NPE when using an item to open a slotless inventory. Closes #1354 2016-02-10 11:25:41 -08:00
RainWarrior ed9517a8b4 Fix custom model loader reload hook not firing during registration. 2016-02-10 10:20:13 +03:00
RainWarrior a9a022f45e Fix incorrectly updated patch to ChunkCache. Related to #2451. 2016-02-10 10:11:53 +03:00
RainWarrior 7e7b855ddf Fix multiple registrations of reloading hooks in custom model loaders. 2016-02-09 16:09:55 +03:00
LexManos 2c6af18a81 Remove Mojang logger spam in EntityItem. 2016-02-07 15:45:06 -08:00
LexManos 32a2bd1dea Fix jar signer not applying to universal packed in the installer. 2016-02-07 15:44:46 -08:00
RainWarrior 12c924751a Fix TRSRTransformation.toItemTransform. Closes #2425. 2016-02-07 17:49:06 +03:00
Fry 4ae2a1fa35 Merge pull request #2437 from pau101/master
Fix #2321
2016-02-07 15:16:22 +03:00
pau101 cb70f1378c Fix #2321 2016-02-04 22:58:21 -08:00
LexManos 8af1624f9e Merge pull request #2423 from Mumfrey/fix/jdt
Fix ASM SignatureReader choking on invalid lambda local var signatures emitted by JDT
2016-02-04 12:34:04 -06:00
RainWarrior 085b28ba35 Revert binary-incompatible changes in models. 2016-02-04 13:34:40 +03:00
RainWarrior e611162de5 Fix droppers not dropping. 2016-02-03 19:11:33 +03:00
RainWarrior bfa17d2f0d One day I will learn to include all required classes in the commit. 2016-02-02 12:42:41 +03:00
RainWarrior 3bdc75ad49 Added "gui3d" and "smooth_lighting" options to the forge blockstate. Implemented them for vanilla and B3D models. Added generic types to IModel subinterfaces, to simplify chaining. 2016-02-02 12:23:26 +03:00
LexManos 7103862bf9 Merge pull request #2434 from matthewprenger/logcommandexceptions
Log unknown exceptions in commands. Resolves #2433
2016-02-01 18:36:39 -06:00
Matthew Prenger 76f659c02e Log unknown exceptions in commands. Resolves #2433 2016-02-01 18:25:40 -06:00
Mumfrey 63798d6a8f Fix ASM SignatureReader choking on lambda signatures generated by JDT 2016-01-29 00:19:59 +00:00
RainWarrior 741fdd0a85 Fixed incorrect patch to GenLayer, causing large vanilla biomes to not work properly. 2016-01-28 08:00:27 +03:00
RainWarrior 7b7d18f676 Provide original armor model in the custom armor model hook. 2016-01-28 07:43:55 +03:00
RainWarrior be6c2bd588 Fixed small bug in item extraction code. 2016-01-27 13:29:07 +03:00
RainWarrior a0bf0155ac Fix NoSuchElementException in ModelBlockAnimation caused by empty event list. 2016-01-26 01:22:21 +03:00
LexManos e45d111685 Bump version in prep for new Recomended Build. 2016-01-25 11:32:41 -08:00
LexManos b71b963301 Loosen TileEntity's default hasCapability implementation. Modders should specifically opt in. 2016-01-25 11:27:08 -08:00
LexManos 7a0a801740 Merge pull request #2336 from VikeStep/master
[1.8.9] Add EntityTravelToDimensionEvent
2016-01-25 11:07:19 -08:00
RainWarrior 960717eb0c Fixed minor race condition between mouse clicks and TESR in the animation example. 2016-01-25 17:39:43 +03:00
VikeStep 026d179c0d Add EntityTravelToDimensionEvent
Resolve Merge Conflict

Move event call inside conditional
2016-01-25 17:57:52 +10:00
RainWarrior e929199758 Sometimes I forget how much trivial things are missing from Java 6. 2016-01-24 10:10:21 +03:00
Fry e9be24700e Merge pull request #2331 from RainWarrior/model-animation
Model animation system
2016-01-24 10:01:58 +03:00
RainWarrior 0710bdf3f5 Model animation system.
Main things of interest:
  * IAnimationStateMachine - state machine for animations; can load
    from json.
  * AnimationTESR - automatic TESR for animated models.
  * AnimationModelBase - same for entities.
  * ITimeValue - time-varying value, used to control animation
    parameters from code.

  * TESRs can now be batched - look at TESR.renderTileEntityFast +
    TE.hasFastRenderer.
  * RegionRenderCache is not accessible to TESRs and other client-side
    logic - MinecraftForgeClient.getRegionRenderCache.
2016-01-24 09:59:38 +03:00
LexManos 01919e4eed Fix J6 compile error in IItemHandler PR. 2016-01-23 22:52:32 -08:00
LexManos 5257739d06 Merge pull request #2401 from ShetiPhian/Fix-isBeaconBase-BlockPos
Fixed: the BlockPos passed to isBeaconBase
2016-01-23 22:07:31 -08:00
LexManos e9a86f27fb Merge pull request #2385 from rwtema/master
Add IItemHandler capability
2016-01-23 22:06:29 -08:00
rwtema a1e41f5464 Add IItemHandler capability
Add the actual patches that I forgot.

Add simple implementations of IStorage and the factory methods.

Add ItemStackHandler. A simple IItemHandler implementaton.

return nulls, not throw nulls.

Move the vanilla wrappers to a separate class for now.

Minor clean ups of VanillaWrapper code.

Inline static methods.

Add comments.

Minor cleanup of code.

Remove redundant size field and add a validate slot index method.

Minor formatting issues.

Break early If stacksize to insert is 0.

Remove setByte() methods.

Throw exception if IItemHandler can't be modifyed in NBT loading.

Replace event handler with patches

Add capability to mine cart inventory entities.

Change formatting and registration of capability.

Make InventoryPlayer implements IItemHandler because why not. Also added a field to allow mods that add additional player inventory space to publicly expose them.

Reduce patch sizes

Lazy initialization of the item handler for vanilla tiles.

Minor formatting changes.

Create a single vanilla chest item handler that will merge with adjacent chests when detected. Added hooks to reset the cached adjacent value when a block update is detected and when a chunk loads.

Revert "Make InventoryPlayer implements IItemHandler because why not. Also added a field to allow mods that add additional player inventory space to publicly expose them."

This reverts commit 306d4a37fd0e8c8a0754411c013b750dfe8e2c87.

Fix furnace derp

Replace double chest code with a simpler method.

Vanilla wrappers implement IItemHandlerModifiable (since they are modifiable)

Minor code cleanups

Add an onContentsChanged() and onLoad() callback methods.to the default implementation.

Add slot as a parameter in the callback method.

Change IItemHandlerModifiable.setStackInSlot() to void, and added a note about not being intended for cross-mod use.

Improve ItemStackHandler handling of errored NBT.

Make the stacks array protected.

Fix a lot of derps in SlotItemHandler.

Fix derp in ItemStackHandler

Clarify comments on IItemHandler

ItemStackHandler no longer caches the stack array in local variable.

Clean up the Chests code to make intentions clearer

Vanilla hoppers have their cooldown activated when an item is inserted. Made this behavior part of an item handler (rather than the insertion code)

Fix mistake in ItemStackHandler

More documentation of potential edge cases in getStackInSlot()

Make limit checking more resiliant.
2016-01-24 05:20:58 +00:00
Timothy Tomkins 3b9741613c Fixed: BlockPos passed to isBeaconBase 2016-01-22 09:25:55 -05:00
LexManos d480ae5380 Merge pull request #2378 from blay09/bugfix/slotdrop
Fix items being dropped through slots outside GUI boundaries
2016-01-21 13:49:32 -08:00
LexManos bce7c6d61f Merge pull request #2399 from asiekierka/fix-2388
Fixed ItemStack.splitStack not preserving capabilities, Closes #2388
2016-01-21 13:42:13 -08:00
LexManos 82647f5b66 Restore OreDictionary.getOres(String, boolean) and doeOreNameExist(String) functions that went MIA in git merge issue.
Original Commit: https://github.com/MinecraftForge/MinecraftForge/commit/cd3bbfb02c9fcd4ce4bbf00f460dfdd6a386d107
2016-01-21 13:41:26 -08:00
LexManos be6577b9ce Fix invalid ServerHangWatchdog patch causing it to not apply. 2016-01-21 13:40:00 -08:00
asiekierka 568061864f Fix #2388 2016-01-21 22:09:23 +01:00
LexManos c7dafeed5f Merge pull request #2396 from Minecrell/patch-3
Strip console formatting codes for Vanilla log file
2016-01-21 13:02:34 -08:00
LexManos be8eb484d1 Merge pull request #2394 from iLexiconn/master
Fixed makeItemStack ignoring stackSize
2016-01-21 13:00:34 -08:00
Minecrell 66340a7ec9 Strip console formatting codes for Vanilla log file 2016-01-21 20:00:41 +01:00
iLexiconn a3d4fe5d25 Fixed makeItemStack ignoring stackSize
Fixes #2376
2016-01-21 15:31:39 +01:00
RainWarrior 17e8de8a3a Fixed error detection login in ModelLoader, reduced the maximum number of printed stack traces to 5 per domain. 2016-01-20 01:20:26 +03:00
LexManos 447a87c0c7 Fix forge logging not working correctly in ForgeDev. 2016-01-19 02:14:40 -08:00
LexManos f3c2eb8e9c Fix Deobfusication transformer throwing verification errores in Eclipse development environments. 2016-01-19 02:14:22 -08:00
RainWarrior 968b7cae40 Correctly handle error caused by missing/malformed bucket model definition file. 2016-01-18 21:35:23 +03:00
LexManos 812e69cee3 Call deserialze on capabilities in ItemStack.setItem. Closes #2384 2016-01-17 14:19:59 -08:00
LexManos 3c5103acfb Fix ItemStacks not getting the parent capability provider from items. Closes #2383 2016-01-17 13:37:57 -08:00
cpw b8238e7f22 Merge pull request #2367 from kashike/feature/quiet-watchdog
Skip hang detection on first run of the server hang watchdog
2016-01-16 19:16:23 -05:00
cpw 7574b32b47 Merge pull request #2358 from boq/bedless
Allow sleeping without bed block under player
2016-01-16 19:10:59 -05:00
Bartek Bok fae5ff67ed Allow sleeping without bed 2016-01-17 00:43:29 +01:00
RainWarrior accf6cf218 Fixed missing model error reporting, made block and item variants sort before loading, to make the splash screen info more useful. 2016-01-17 01:57:06 +03:00
cpw 90d1abebd4 Fix spruce not growing properly 2016-01-16 17:04:16 -05:00
cpw cc593d4b54 Fixed problem with LAN connections seeing the original ProxyPacket and consuming the first byte. Closes #2373 2016-01-16 16:34:02 -05:00
cpw 66895a520a Fix shouldRefresh not to be so over-eager about modded TEs. Should fix Packet21 causing a TE reset. 2016-01-16 16:11:34 -05:00
Blay09 30ac80f978 Fix items being dropped out of a GuiContainer when dealing with a slot outside of the xSize/ySize boundaries. 2016-01-16 06:34:07 +01:00
LexManos 7b92a27908 Clone FML packet indexes if channel is not open. Fixes potential threading issue. 2016-01-14 13:35:19 -08:00
Fry dad870ea0b Merge pull request #2375 from bonii-xx/dynbucket
Default bucket model is empty, allow bucket model without fluid.
2016-01-15 00:16:26 +03:00
Bernhard Bonigl 2857b710f8 Default bucket model is empty, allow bucket model without fluid.
This allows capsules, cans, bottles,... to use the same item model for their item variant. Also it's makes much more sense.
2016-01-14 22:13:31 +01:00
LexManos 38531a5ba8 Merge pull request #2370 from mezz/screenBackground
Add DrawScreenBackgroundEvent
2016-01-13 14:26:56 -08:00
mezz aee1bd6014 Add GuiScreenEvent.BackgroundDrawnEvent 2016-01-13 13:01:16 -08:00
cpw 9a737b0c90 Fix problem which meant runtime deobf to MCP names wasn't working. SRG named mods located in the mods dir of a dev
environment will now load normally.
2016-01-13 00:26:52 -05:00
kashike 2ba595b207 Skip hang detection on first run of the server hang watchdog 2016-01-12 04:15:11 -08:00
LexManos 17db34ae31 New Capability system allowing for more manageable world object features.
When combined with @Optional this should address all issues of soft dependancy on mods/apis.
This also addresses the issue of dynamic functionality in TileEntities/Entities.

Current capability providers: TileEntity, Entity, ItemStack

Also added INBTSerializeable, a generic interface for game objects that can be written to/from NBT tags.

Vanilla capabilities will be coming soon, mostly on request and review.
So start requesting capabiliteis on vanilla/Forge features.
2016-01-11 16:04:22 -08:00
LexManos 4672f7bab0 Fixed banners not droping the correct item when harvested using modded mechanics. Closes #2258 2016-01-10 21:34:52 -08:00
LexManos aff6b0004c Fix jline server console not showing colored text. Closes #2334 2016-01-10 20:39:22 -08:00
LexManos 2594196c15 Fixed GuiWrongMinecraft having wrong Log file name. Closes #2348 2016-01-10 20:31:55 -08:00
LexManos afc46fa59a Made WrongMinecraftVersionException and ModSortingException a bit easier to read in log files. Closes: #2345 2016-01-10 11:07:12 -08:00
LexManos 76c40896e4 Remove dead code in JarDiscoverer. Closes #2346 2016-01-10 11:06:37 -08:00
RainWarrior 4dbf1965df Catch GROUND item transform type with the forge hook too. 2016-01-10 13:07:07 +03:00
RainWarrior f42137907e Implemented face culling for item models, improves performance slightly. Closes #2326 2016-01-09 19:05:18 +03:00
LexManos 0921473f53 Merge pull request #2355 from williewillus/fixentityitemdupe
Fix bug with /give command and items with larger than default lifespans
2016-01-08 19:13:52 -08:00
Vincent Lee 591cd5c1b0 Fix visual effect entity persisting longer than it should
Fix derp
2016-01-08 18:51:08 -06:00
LexManos c78a7ce41e Fixed issue with WorldServer.getTileEntities when being called with ranges that overlap chunks oddly. Closes #2350 2016-01-08 14:42:29 -08:00
RainWarrior 5c5d946ff5 Made block model loading bar more robust, and fixed the count. 2016-01-07 02:09:29 +03:00
RainWarrior 95615cb4bf Added progress bar for the ModelLoader. 2016-01-06 22:53:34 +03:00
RainWarrior 68339f51cf Derp. 2016-01-06 22:06:36 +03:00
RainWarrior 949e77b46a Model loader improvements: adding custom data/textures to models that don't need them doesn't cause a error now, since it's common to put those in the defaults section of the blockstate json; you can get IModel associated with the variant now - using ModelLoaderRegistry.getModel; MultiLayerModel should now respect transformations applied to it, and respect part transformations. 2016-01-06 22:00:43 +03:00
cpw 632d8e553d STFU I know how to code. *shouts* get off my lawn! 2016-01-04 16:18:44 -05:00
cpw 035dd4c245 Make the parent dir tree for the dep extractor 2016-01-04 09:07:28 -05:00
RainWarrior d8440de49b Changed default implementation of Block.getExtendedState. Closes #2309. 2016-01-04 15:31:03 +03:00
RainWarrior 4732acc1c4 Java6 + Eclipse + Gradle strike again. 2016-01-04 15:18:36 +03:00
RainWarrior b8dd4c54e1 Fixed implementation if IRetexturableModel in ItemLayerModel. Closes #2244. 2016-01-04 14:21:31 +03:00
RainWarrior f562579054 Don't crash on exception during loading of item variants from blockstate jsons. 2016-01-04 14:08:52 +03:00
RainWarrior 856a9c3cdd Fixed perspective transformation handling for fluid models, changed inventory fluid model to use unrotated still texture. 2016-01-04 13:54:45 +03:00
RainWarrior 826b1d20f8 Fixed invalid flow vector caching of still fluids. 2016-01-04 12:48:10 +03:00
RainWarrior 686b32bfd0 Fixed random offset not working properly for flatly-lit models. 2016-01-04 12:04:30 +03:00
cpw 3c08c104cc Explicitly close the file. 2016-01-03 10:06:25 -05:00
cpw dc4dc55dcd Add a simple ContainedDep mechanic- mods can contain other mods or libs, and can specify them using a manifest tag: "ContainedDeps".
This is a space separated (manifest standard) list of jar files that are to be extracted into the version specific directory.

There's also a special system property "fml.skipContainedDeps" that will allow for runtime skipping of extraction of contained deps (a comma separated list, based on the file name).
2016-01-02 17:28:35 -05:00
LexManos 1a31ff9f06 Added new get/setRegistryName functions to Item and Block.
And helper functions in GameRegistry to allow for registering using those names automatically.
This is to simplify registration and get rid of the horrible hacks users are doing now with 'unlocalised names'.
2016-01-02 12:58:57 -08:00
cpw fb54ea94c0 Move substitution activation after id loading. This should fix the problem of null for existing object. 2016-01-02 12:06:53 -05:00
RainWarrior d105c444ee SidedProxy now has sensible default values - nested ClientProxy and ServerProxy classes. 2016-01-02 09:59:14 +03:00
LexManos 40a124d571 Merge pull request #2332 from killjoy1221/master
Add links for messages and other commands
2016-01-01 20:00:52 -08:00
Matthew Messinger 577f607b5f Add links for messages and other commands 2016-01-01 21:20:27 -05:00
RainWarrior 104feb2973 Reverted Render registration changes due to them working. 2016-01-01 08:51:56 +03:00
RainWarrior a4123580b1 Nobody is left behind. 2016-01-01 02:17:10 +03:00
RainWarrior cf2bbd1353 Fixed RenderingRegistry not working. Closes #2312. 2016-01-01 02:01:03 +03:00
cpw 6e90348dc5 Fix that the dummy registry entries don't allow clients connecting to servers. Also fix that it repeatedly nags about missing stuff in the world. 2015-12-31 17:59:11 -05:00
LexManos 50f235c81b Fix boss health bar rendering when debug overlay is enabled. Closes #2328 2015-12-31 14:48:54 -08:00
LexManos 755df95c96 Swap Mod and Realms button to fix new realms 'notification' icon. 2015-12-31 14:41:08 -08:00
LexManos e0f0273c5e Fix J6 compile issue with ModelFluid. 2015-12-31 14:40:32 -08:00
LexManos 3665d7bf73 Allow for default 1.8.8 mods to be loaded. Should be SRG compatible. 2015-12-31 14:40:17 -08:00
RainWarrior ea2beba5ca Restored transparency to the Forge logo. 2015-12-30 19:35:32 +03:00
RainWarrior 6c40b15d04 Updated the forge logo to a higher-quality GIF file. Closes #2276. 2015-12-30 19:10:33 +03:00
RainWarrior 23a2316157 Fixed wrong import. 2015-12-30 16:14:27 +03:00
RainWarrior 10658f682e Fixed broken leaky caching of OBJ models. 2015-12-30 16:08:08 +03:00
RainWarrior 33b1f8f30f Caching of fluid models. Fixes #2145. 2015-12-30 13:31:36 +03:00
RainWarrior db3e039b31 TESRs registering in preinit don't break pistons anymore. Fixes #2298. 2015-12-30 11:37:32 +03:00
RainWarrior 09e9a181ee Fixed color disabling not working for forge pipeline. Closes #2286. 2015-12-30 11:22:22 +03:00
RainWarrior 56eba05237 1.8.9 update 2015-12-30 07:15:03 +03:00
LexManos 6644e8c9ed Merge remote-tracking branch 'origin/1.8.8' 2015-12-29 19:25:38 -08:00
Fry ad40f24fb1 Merge pull request #2322 from bonii-xx/dynbucket
Fix bucket replacement not loading the bucket model by itself if repl…
2015-12-29 15:34:59 +03:00
Bernhard Bonigl 509cc79112 Fix bucket replacement not loading the bucket model by itself if replacing buckets.
This happens when no other mod that uses the bucket model is present.
Also added a simple method for registering the bucket model, should give
modders an idea on how to use the general model.
2015-12-29 13:31:35 +01:00
LexManos cce0f7a2ed Merge pull request #2320 from bonii-xx/slime
Add a hook for custom particle spawning for slimes
2015-12-28 13:17:28 -08:00
Bernhard Bonigl 7f52bc6547 Add a hook for custom particle spawning for slimes 2015-12-28 21:01:30 +01:00
LexManos 7298b21cb5 Merge pull request #2318 from diesieben07/entity-egg
Allow forge-type spawn-eggs to spawn child entities when clicking EntityAgeable
2015-12-28 07:12:39 -08:00
Take Weiland af1e769895 Allow forge-type spawn-eggs to spawn child entities when clicking EntityAgeable 2015-12-28 15:58:37 +01:00
LexManos d2248c3774 Fix Button/Torch/Lever placement on stairs and slabs. Closes #2291 2015-12-27 14:39:29 -08:00
RainWarrior 1cd0bf9ee4 Fixed random block position offset not applying correctly. 2015-12-25 09:31:32 +03:00
RainWarrior 097c0c6130 Added an ability to register custom item variants, not ending with "#inventory". Should allow grouping multiple item models into 1 blockstate json. 2015-12-24 06:06:38 +03:00
cpw a54b939ea3 Try and make sure active substitutions are immediately available in the block to item map. 2015-12-23 16:41:53 -05:00
cpw 95825e5de0 Actually use the delegate for the itemblock 2015-12-23 15:55:45 -05:00
cpw 54e9a36b67 Capture ItemBlock remaps. 2015-12-23 15:07:16 -05:00
cpw 53227982e3 Try and fix registry NPE when substitution is active. 2015-12-23 14:11:17 -05:00
cpw bcecf59a87 Blocks are no longer erased from the registry if the mod isn't present. This means that modded blocks can potentially retain their IDs
even if they are temporarily not present in the game. Currently TileEntity data associated with the block is erased.
2015-12-23 11:18:54 -05:00
cpw 5562c14c45 Fix up persistent substitution. Should close #2259 2015-12-23 10:37:11 -05:00
cpw d8ca68b280 Fix the channel handler naming. It now uses the standard netty namer for it, by careful use of cunning reflection. 2015-12-22 18:12:35 -05:00
LexManos 6a8a9b3097 Fixed vanilla bug related to spawning entities on top of fences. Closes #2303 2015-12-22 11:52:36 -08:00
LexManos cb609dbab3 Fixed registry issues that prevented connecting to 1.8 Forge servers.
More precisely: Servers with missing registries default back to frozen version.
Throw descriptive error if we do not have any information.
2015-12-21 13:42:40 -08:00
Fry c7790f7b35 Merge pull request #2282 from bonii-xx/dynbucket
Add a dynamic bucket model that displays the animated liquid contained
2015-12-22 00:26:25 +03:00
Bernhard Bonigl 4f6784b733 Add a dynamic bucket model that displays the animated liquid contained
Has a config option (default off) that replaces the vanilla buckets with the forge bucket model

New original bucket textures from mr_hazard
2015-12-21 22:22:40 +01:00
RainWarrior 56f35f4401 Fixed NPE caused by accessing undefined layer in MultiLayerModel. 2015-12-20 22:16:17 +03:00
LexManos f8473adf6f Merge pull request #2293 from Lunatrius/fix/client-command-autocomplete
Fix client side command auto-complete not working correctly.
2015-12-19 11:31:43 -08:00
Lunatrius b665026378 Fix client side commands adding parts of the color codes on autocomplete (prefix "7" and suffix "r"). 2015-12-19 12:55:26 +01:00
RainWarrior 1dcc9abab2 Fix dependency resolution for models with custom data/textures. 2015-12-17 04:41:54 +03:00
RainWarrior 80ba13be89 LightUtil.pack and .unpack now work correctly with unpacked arrays of size <4. 2015-12-15 23:31:09 +03:00
RainWarrior d67c57827a Delayed quad list resolution in MultiModel, fixes NPE in MultiLayerModel. 2015-12-15 23:03:09 +03:00
RainWarrior f0ae51bb34 Forge pipeline will now take original model lightmap into account, if present. 2015-12-15 22:27:01 +03:00
RainWarrior 7c4d643de2 Fixed java6 errors in previous commit. 2015-12-15 22:27:01 +03:00
RainWarrior 86c09722a0 IModel can now depend on a variant definition (ModelResourceLocation); added MultiLayerModel - simple model that'll render correctly in multiple layers + example of using it. 2015-12-15 21:49:19 +03:00
RainWarrior d6ee373e87 Preparations for the Animation system.
Changes to the Model API - IModelState now works with Optional. Handling of parts of the model is not optional, and coordinate space/result interpretation is up to the caller. IModel doesn't extend IModelPart by default anymore; MapModelState uses composition to achieve previous functionality, IModelPart implementations are disjoint now. Updated perspective handing to the new API, removed IPerspectiveState (MapModelState is now the same thing). Perspective transforms for the default fluid model.
2015-12-14 23:27:27 +03:00
LexManos 9032f7e37e Fix enchanting applying the same enchantment multiple times. Closes #2273 2015-12-14 03:49:58 -08:00
cpw 82537e5763 Merge pull request #2272 from AlgorithmX2/addLandingEffects
Added addLandingEffects allowing mods to override landing particles
2015-12-13 17:09:13 -05:00
cpw bf779e6803 Merge pull request #2270 from AlgorithmX2/getHighlightTip
Add getHighlightTip allowing a item to override its displayed renderToolHightlight
2015-12-13 17:00:02 -05:00
AlgorithmX2 a319adba53 Added addLandingEffects allowing mods to override landing particles, for blocks that require world information to determine textures. 2015-12-13 15:35:15 -06:00
cpw 94eadab9fd A test for issue #1848. Please try this with any mods you can @ 1.8.8, and see if you still get log spam of any kind (not just the
log message from the issue either).
2015-12-13 14:22:53 -05:00
AlgorithmX2 8db720151d Add getHighlightTip allowing a item to override its displayed renderToolHightlight. 2015-12-13 04:47:25 -06:00
LexManos 2ed4f39a13 Merge pull request #2268 from minzmann/master
[1.8.8] Minor Fixes to PotionEffect.java.patch
2015-12-12 19:48:23 -08:00
cpw 0632f2aadf Fix derpage when loading a 1.8 world, with persistent state being entirely ignored in that case. 2015-12-12 18:53:44 -05:00
minzmann bf6c31c879 Update PotionEffect.java.patch 2015-12-12 17:05:14 +01:00
LexManos c6d64cd94a Merge pull request #2239 from bonii-xx/potionhiding
Add shouldRender() to Potions that allows to hide them completely in …
2015-12-12 00:18:18 -08:00
cpw cef50616d8 Merge pull request #2228 from Minecrell/patch-2
Fix some issues with the console command completion
2015-12-11 15:42:06 -05:00
cpw 3631955641 Use ItemStack.hasEffect. closes #2230 2015-12-11 15:30:43 -05:00
cpw 46840fb71a Merge pull request #2233 from liachmodded/mcl-typo
Fix a typo in jar detection
2015-12-11 15:16:24 -05:00
Fry 5fd04595f2 Merge pull request #2248 from AlgorithmX2/isOpaqueFace
Added doesSideBlockRendering to provide finer grain face culling.
2015-12-11 22:57:40 +03:00
AlgorithmX2 ea75a3be69 Added doesSideBlockRendering to provide finer grain face culling.
Implemented for BlockStairs and BlockSlab.
2015-12-11 13:42:04 -06:00
LexManos c356105e6d Fix wrong EventType passed for Emerald ore-gen. 2015-12-10 12:41:48 -08:00
LexManos dcda451a0a Deprecate int IDs in FluidRegistry. Modders should only ever use the String name. Also add a 'friendly' exception when attempting to get an ID for a unregistered fluid. Closes #1374 2015-12-10 02:54:00 -08:00
LexManos 2302963a9f Add EMERALD and SILVERFISH to GenerateMinable event. Closes #1158 2015-12-10 02:16:58 -08:00
LexManos b9d1d92654 Fixed ModList GUI rendering incorrectly. Closes #2254 2015-12-10 01:01:51 -08:00
LexManos 3f163fd41e Merge pull request #2253 from simon-i1-h/patch-1
[1.8.8] Fixed edge case where position dependent light would not update.
2015-12-09 20:07:50 -08:00
simon-i1-h 4c4223a817 Fixed that oldLight is not being used. 2015-12-10 00:40:58 +09:00
RainWarrior 724405d6d8 Workaround for https://github.com/google/guava/issues/738 2015-12-09 14:56:01 +03:00
RainWarrior 3254e2acc6 Fixed orientations of generated item faces. Fixes #2215. 2015-12-08 12:26:02 +03:00
LexManos 12cd28715a Fixed colored leather armor, and custom armor textures. 2015-12-08 00:54:27 -08:00
LexManos 01f4a627be Remove MCP reference patches. 2015-12-08 00:34:42 -08:00
Bernhard Bonigl 2324c2fd20 Add shouldRender() to Potions that allows to hide them completely in the inventory 2015-12-05 10:09:02 +01:00
Minecrell bb3596b31e Improve the console command completer
- Fix space after command getting removed when completing a
  subcommand together with the command prefix
- Add support for completing without input (shows command list)
- Sort command completion results
- Fix console spamming command prefixes after closing the input stream
2015-12-04 16:50:07 +01:00
cpw 30bc2653c5 Add a flag to the modidremapping event. If the remapevent is because the registry is refreezing, it'll be true. 2015-12-03 17:21:04 -05:00
liach ee61baee73 Fix typo in guava 2015-12-01 22:01:21 -08:00
cpw f8447264e6 Clean up chunk patch. 2015-12-01 19:54:40 -05:00
LexManos 4416537776 Merge pull request #2231 from techbrew-mc/patch-1
Initialize sources list
2015-12-01 16:04:56 -08:00
techbrew-mc 606b402c2d Initialize sources list
Fixes crash NPE thrown by addFile()
2015-12-01 16:02:45 -07:00
cpw 31faf63e94 Most requested feature of all time? TileEntity init method called after it's ready to roll. remove all the if (firstTicks) 2015-12-01 15:20:10 -05:00
cpw e6681ada93 Merge branch 'Emberwalker-lang-adapter-fix' into 1.8.8
Closes #1898
2015-12-01 14:43:42 -05:00
Arkan Emberwalker 7a960edb35 Fix language adapter loading.
The language adapter is now properly picked up after the mod is loaded
on the classpath, fixing the ClassNotFoundException occurring before.
Also fixed some minor formatting and made it throw a full
RuntimeException on failure.

Fix up some formatting
2015-12-01 14:43:14 -05:00
cpw a703367553 Be noisy when API is in a coremod. It'll never work and modders should realize that fact. 2015-12-01 13:08:35 -05:00
cpw 8e9feb21fa Merge branch 'mezz-potionIsBadEffect2' into 1.8.8 2015-12-01 09:03:23 -05:00
cpw d967c6d5d4 Merge branch 'potionIsBadEffect2' of https://github.com/mezz/MinecraftForge into mezz-potionIsBadEffect2 2015-12-01 09:02:36 -05:00
cpw 5087f30ca5 Merge branch 'kashike-fix/secman' into 1.8.8 2015-12-01 08:47:52 -05:00
cpw 413f380781 Merge branch 'fix/secman' of https://github.com/kashike/MinecraftForge into kashike-fix/secman 2015-12-01 08:47:26 -05:00
cpw 8187f48ddc Allow entity selectors to select "." in entity names. Closes #2125 2015-12-01 00:14:05 -05:00
cpw a2e06d968e Merge branch 'Minecrell-jline' into 1.8.8 2015-11-30 14:16:18 -05:00
cpw ff42107b92 A few fixes 2015-11-30 14:14:56 -05:00
cpw cf4c0ca001 Fixup Jline integration 2015-11-30 14:14:03 -05:00
cpw 321665efff Merge branch 'jline' of https://github.com/Minecrell/MinecraftForge into Minecrell-jline 2015-11-30 13:14:49 -05:00
cpw 55e707cc07 Some tweaks - GameRegistry is modder facing API, so avoid having MC methods there. Fix a couple of registry bugs. 2015-11-29 23:12:34 -05:00
cpw 0af45cbf25 Merge branch 'PotionRegistry2' of https://github.com/bonii-xx/MinecraftForge into bonii-xx-PotionRegistry2 2015-11-29 22:43:23 -05:00
cpw d58ad8db68 Fix problem with spam from registry on loading a second world. Empty the staging. 2015-11-29 22:41:11 -05:00
Bernhard Bonigl 57d1a657a0 Add a PotionRegistry to handle dynamic distribution and remapping of Potion IDs 2015-11-29 22:02:55 +01:00
LexManos a13ed35031 Merge pull request #2209 from lumien231/MemoryWorldLeak1.8.8
Fixed: Server not being stopped, causing Worlds to stay loaded
2015-11-28 16:51:38 -08:00
cpw 21173c3b65 Fix up blockstate rebuild. Closes #2221. Also fix formatting. IDEA has differences. Solved now. 2015-11-28 16:31:54 -05:00
LexManos 02e9b9d99c Add chunk loading protection to WorldSever.getTileEntitiesIn, may prevent orphanced chunks and a CME in EntityPlayerMP. Note: The 'max' parameters are NON-inclusive. 2015-11-28 03:36:33 -08:00
cpw 97ef6a5d1f Giant registry fixup 2015-11-28 03:07:53 -05:00
LexManos 5549b06f96 Compiler warnings pass, undeprecated SplashProgress related stuff. 2015-11-26 19:38:21 -08:00
LexManos e2818a2803 Removed IItemRenderer class, all functionality is possible with new rendering system. 2015-11-26 19:37:44 -08:00
LexManos d878a2ae26 Fixed Large mushrooms generating incorrectly. 2015-11-26 19:36:53 -08:00
LexManos 81f9f3f20d Fixed placing blocks on snow layers with more then one layer. 2015-11-26 19:36:38 -08:00
LexManos eb26b3ca0f Bump version for new Minecraft version. 2015-11-26 17:05:45 -08:00
cpw 7e5a2cb5ca Propogate AbortException. Closes #2206. Also fix tracing printstream when printStackTrace is called. 2015-11-25 16:28:06 -05:00
Lumien 2ecc92c4b3 Fixed: The Integrated Server not being stopped when exiting a singleplayer world to the main menu 2015-11-25 20:54:48 +01:00
cpw cb2d5992d2 Add .exc for StatList patch
More tweaking
2015-11-25 02:23:21 -05:00
cpw cde6be7742 Fix up a couple of patches, affected by the recent update 2015-11-25 02:23:21 -05:00
cpw 4f2feee931 Fix button and lever placement problem. Closes #2204 2015-11-24 22:00:27 -05:00
cpw 1351215182 Merge pull request #2205 from Illyohs/bugfix/mdk
[1.8.8] Remove trailing */ causing errors in the mdk build script
2015-11-24 21:15:26 -05:00
Anthony Anderson 91fe229bf0 Remove trailing */ in the build.gradle
Signed-off-by: Anthony Anderson <[email protected]>
2015-11-24 20:10:02 -05:00
cpw 85d7b69d19 More cleanups, some documentation, a bunch of deprecations. 2015-11-24 16:47:46 -05:00
cpw c5a980f8a4 Cleaning up some derpy names 2015-11-24 16:17:08 -05:00
cpw 8c5038c301 Clean up some very long dead code. Bukkit hasn't existed in a very long time now. IASM never worked, and I'm not about to implement it. 2015-11-24 15:52:14 -05:00
cpw f227f4ff72 Deprecate it as well, because hey, it's redundant now. 2015-11-24 15:39:18 -05:00
cpw aa40a8edd7 ONE EVENT BUS TO RULE THEM ALL AND IN THE DARKNESS FIRE THEM! 2015-11-24 15:35:24 -05:00
cpw 44c4011575 Yeah, amount is NOT deprecated. 2015-11-24 15:30:22 -05:00
cpw 1280462ec7 Fix MDK for 1.8.8 using FG2.1 snapshot 2015-11-24 15:30:09 -05:00
cpw c713309769 OMG! Documentation? WUT? I haz lost my mind.
Also, Functional interface for IMC. Senders can send a classname implementing Guava's function, and receivers
will be able to get that function, and do, well, whatever, really. Probably best for those callback type
scenarios, connecting up APIs and stuffs.
2015-11-24 14:44:19 -05:00
cpw b4dc15a9cb Cleanup Fluid deprecations stuff. 2015-11-24 10:05:35 -05:00
LexManos 22e99a2cff Update universal manifest for 1.8.8's json. 2015-11-24 03:37:17 -08:00
cpw 68dfcccd57 Update mappings to 20151122. 2015-11-23 23:18:52 -05:00
cpw 84c3ef0f5c Merge branch 'master' into 1.8.8 2015-11-23 22:39:49 -05:00
cpw 231ec7eaea Merge remote-tracking branch 'origin/noci-1.8.8' into 1.8.8 2015-11-23 22:08:42 -05:00
RainWarrior 9815d729b5 Fixed NPE is B3D loader caused by the missing vertex normal; updated the example chest model - it's now has 2 meshes; Updated ModelAnimationDebug - it now uses the new chest model, renders the base with the static world renderer, and only the lid with the TESR. 2015-11-23 10:12:01 +03:00
RainWarrior 11d237f5f2 Fixed forge lighting working incorrectly outside 0x1000000 coordinates. 2015-11-23 06:54:18 +03:00
RainWarrior 0d06ea6758 Removed face doubles from item models. 2015-11-23 06:54:18 +03:00
RainWarrior b5af11a89d Fix holes in generated item models. 2015-11-23 06:54:18 +03:00
RainWarrior f6ab01843c B3D loader: removed 2 redundand null checks, changed constructor args to final to fix (java6?) inner arg error. 2015-11-23 06:54:17 +03:00
RainWarrior f9024d2eb3 Implemented interpolation of TRSR transformations; B3D: added interpolation capabilities to B3DState, animated TESR example in ModelAnimationTest (pure TESR right now, no separation inside the example model between the static and dynamic parts right now). 2015-11-23 06:54:11 +03:00
cpw 918d59d6a6 Fix derpy fir trees in the taiga. So many patches. See if we can find any more mistakes?! 2015-11-22 22:35:21 -05:00
cpw 4320a0f1ed Fix weird patch issue where the this FG commit: https://github.com/MinecraftForge/ForgeGradle/commit/2f0ca9921b961133689d29b807333241010a802d
breaks if the exact end of a line is a srgname. Not ideal, but should work.
2015-11-22 16:27:13 -05:00
cpw 2abca14a05 Small tweak to the OUT/ERR logger - should skip the Throwable stuffs now. 2015-11-22 15:31:06 -05:00
cpw e70fb50b51 Back to srgnames for patches. We should be starting to look OK now. 2015-11-22 00:46:26 -05:00
RainWarrior 82d83feab1 Fixed forge lighting working incorrectly outside 0x1000000 coordinates. 2015-11-22 02:11:08 +03:00
cpw b5815a3b8d Use the 2.1 snapshot for FG 2015-11-21 13:24:02 -05:00
cpw aeff5272f3 Re-add trove and vecmath. Mojang no longer ship them. 2015-11-21 13:23:39 -05:00
cpw 059ba15b5a Fix a typesig that was broken 2015-11-21 13:23:20 -05:00
Minecrell e24c38bbb0 Add jline-based console with colors and tab-completion 2015-11-21 15:06:09 +01:00
RainWarrior c4742aadbc Removed face doubles from item models. 2015-11-21 08:09:38 +03:00
RainWarrior 62d0f01236 Fix holes in generated item models. 2015-11-21 07:45:56 +03:00
Lex Manos 1246f1a791 Fix invalid position passed to isAir/getLight in World.playAmbientSound 2015-11-20 11:18:00 -08:00
LexManos 8b70d770d5 Merge pull request #2196 from Choonster/master
BiomeManager: Fix off-by-one errors
2015-11-19 18:55:41 -08:00
Lex Manos 6e68d8fe74 Fix bold font rendering, Unicode is 2x pixel density of normal. 2015-11-19 18:38:33 -08:00
Choonster 48b82567d2 BiomeManager: Fix off-by-one errors 2015-11-20 11:02:37 +11:00
RainWarrior 07ccf667e4 B3D loader: removed 2 redundand null checks, changed constructor args to final to fix (java6?) inner arg error. 2015-11-19 23:40:44 +03:00
kashike 7689ea4f28 Use the FMLSecurityManager checkPermission(Permission) method for context-based permission checks. Fixes #2067 2015-11-18 15:39:00 -08:00
Lex Manos 767d733948 Enable the normal ModList GUI in game. Use GL_SCISSOR to support the transparent in-game GUI. 2015-11-18 00:28:26 -08:00
Lex Manos 904a30123d Moved client side Block.onBlockDestroyed to after Item.onBlockDestroyed to match server order. 2015-11-17 04:47:43 -08:00
Lex Manos a3a16d6593 Fix incorrect position passes to Block.getExplosionResistance from entities. 2015-11-17 04:46:50 -08:00
RainWarrior 13d7530e43 Implemented interpolation of TRSR transformations; B3D: added interpolation capabilities to B3DState, animated TESR example in ModelAnimationTest (pure TESR right now, no separation inside the example model between the static and dynamic parts right now). 2015-11-16 06:51:39 +03:00
cpw eb73c30b28 This should be everything needed to separate blocks and items completely. 2015-11-14 10:52:03 -05:00
cpw 06a2af3386 Merge branch 'master' into noci-1.8.8 2015-11-14 09:36:08 -05:00
LexManos 41e971ecc9 Merge pull request #2117 from lumien231/master
Fixes Client Login Issue when logging into a non existent dimension
2015-11-14 04:20:34 -08:00
Lumien 39e77bf468 Fix Client Login Issue when logging into a non existent dimension 2015-11-14 12:03:47 +01:00
cpw f4c59a3a5d Remove a suppression 2015-11-13 14:06:16 -05:00
RainWarrior deb26f5c80 ExtendedBlockState, Properties generic updates. 2015-11-13 19:29:44 +03:00
cpw 41c3846c51 Some generic and other warning cleanups 2015-11-13 10:13:47 -05:00
cpw 02e6d581d3 Merge branch 'master' into noci-1.8.8 2015-11-13 09:46:50 -05:00
RainWarrior c5ee4e6451 Model stuff: updated to generics, fixed various warnings, added handling of new perspective types. 2015-11-13 17:23:37 +03:00
cpw fe7f713b67 A few tweaks, things are starting to work now.. 2015-11-13 02:59:43 -05:00
cpw da03639bd7 All the patches done? Some code fixups.. It begins. 2015-11-13 02:32:08 -05:00
cpw a26c4017b1 Fix a newly missing AT. Remove all CL_ references. OBFID is gone. 2015-11-13 00:09:34 -05:00
cpw ce40f91fb0 WorldGen rejects, lots of them. Couple of small fixes elsewhere. 2015-11-12 23:30:53 -05:00
cpw 8f94ff14ff Enchantment,EnchantmentHelper,EntityEnderman,EntityZombie,EntityVillager,FurnaceRecipes,RecipeFireworks,RecipeRepairItem,NetworkSystem,S00PacketServerInfo
PotionEffect,StatList,Session,WeightedRandomChestContent,Explosion,ExtendedBlockStorage,SaveHandler.

All NBT patches seem to have been merged upstream, so removing. The IntegratedServer and MinecraftServer pending queue changes also removed, as fixed upstream.
2015-11-12 22:02:41 -05:00
Lex Manos df56bea102 Bump version for Recomended Build. 2015-11-12 13:48:53 -08:00
RainWarrior 7258d577cd Overlay patch fix: use the correct block position. 2015-11-13 00:05:19 +03:00
RainWarrior b77b036459 EntityRenderer, StringTranslate rejects fixed. 2015-11-12 23:26:44 +03:00
RainWarrior 3a5b7427a1 TextureMap, TextureManager and Stitcher rejects fixed. 2015-11-12 22:42:41 +03:00
RainWarrior e80f66778b Manually updated WorldChunkManager, Chunk and BiomeDecorator patches, removed imports. 2015-11-12 21:26:52 +03:00
RainWarrior bf63855292 ItemBlock, ItemBow, ItemMonsterPlacer, ItemReed, ItemSign rejects fixed. 2015-11-12 20:27:54 +03:00
RainWarrior a8a69775a1 PlayerManager, PlayerProfileCache, ServerConfigurationManager, NetHandlerHandshakeTCP rejects fixed; ItemInWorldManager patch error fixed. 2015-11-12 20:05:25 +03:00
RainWarrior c976ec494e TileEntity and TileEntityHopper rejects fixed, GuiOverlayDebug patch fixed. 2015-11-12 19:27:14 +03:00
RainWarrior 8000e22830 ItemRenderer, RenderGlobal, StateMap, RenderItem rejects updated. 2015-11-12 19:12:58 +03:00
RainWarrior 9deb54b75f RenderEntityItem, RenderPlayer, RendererLivingEntity, LayerArmorBase, ItemStack rejects fixed; changed Armor Layer hook to catch LayerBipedArmor only. 2015-11-12 18:25:08 +03:00
RainWarrior 632c190e6f GuiButton, GuiChat, GuiCreateWorld, GuiIngameMenu, ServerListEntryNormal, GuiStats rejects updated. 2015-11-11 23:30:06 +03:00
RainWarrior b6f91817f0 EntityPlayer patch updated. 2015-11-11 22:21:38 +03:00
RainWarrior 426340fed5 Updated FML Gui methods to WorldRenderer API changes. 2015-11-11 19:17:32 +03:00
cpw 13c7d038eb LoadingScreenRenderer,Minecraft,GuiContainerCreative,PlayerControllerMP,LanguageManager,Locale,SimpleReloadableResourceManager,EntityList,EntityLivingBase,EntityWither,EntityMinecart,EntityPlayerMP
NethanlderPlayClient patch is now in vanilla. The FMLCommonHandler future exception catcher is not needed anymore, it's in Util. The caching of player profiles is now in vanilla (SkinManager).
2015-11-11 10:33:37 -05:00
cpw 5147742049 Delete rejects that I initially processed. 2015-11-11 08:48:04 -05:00
RainWarrior 41bd8a41fa BlockOre, BlockRotatedPillar, SoundManager, EntityPlayerSP, GuiScreen, GuiAchievements, GuiContainer, BlockModelRenderer, ContainerEnchantment, Slot updated manually and imports removed; GitSlot patch updated. 2015-11-11 15:51:32 +03:00
Lex Manos 49d4005805 Merge pull request #2179 from arideus101/patch-1
Fixed issue where custom colored armor wouldn't be colored. (reverted from commit dee0b2084b)
2015-11-11 02:57:06 -08:00
LexManos dee0b2084b Merge pull request #2179 from arideus101/patch-1
Fixed issue where custom colored armor wouldn't be colored.
2015-11-10 17:28:28 -08:00
LexManos 5670868c5e Merge pull request #2177 from gabizou/master
Fix a possible NPE when checking supertypes of interfaces.
2015-11-10 17:24:58 -08:00
arideus101 1f20abde59 Allows Custom Armor Coloring to be done easily 2015-11-10 17:23:58 -08:00
cpw 112c41a707 Merge branch '1.7.10' - fix up some oredictionary and substitution related issues 2015-11-10 18:35:38 -05:00
Gabriel Harris-Rouquette d08cf58d80 Fix a possible NPE when checking supertypes of interfaces. Closes #2176.
Signed-off-by: Gabriel Harris-Rouquette <[email protected]>
2015-11-10 11:46:49 -08:00
RainWarrior d31ca0dbd8 EntityAIAttackOnCollide, ServerStatusResponse, MinecraftServer, NetHandlerLoginServer, Vec3, BiomeGenBase, AnvilChunkLoader, ChunkProviderServer, MapGenRavine, MinecraftServer updated; fix in Block, GuiIngameForge; can load the world and play with ~20 more manual error fixes. 2015-11-10 21:47:08 +03:00
RainWarrior df05edaa11 WorldProvider, WorldType, WorldServer, WorldServerMulti 2015-11-10 20:09:49 +03:00
RainWarrior adddfab850 IntegratedServer, World, EnumChatFormatting and EnumFacing 2015-11-10 19:39:41 +03:00
RainWarrior 4c4d1096a7 FontRenderer + Item patch update; WorldVertexBufferUploader patch derp fix. 2015-11-10 01:14:37 +03:00
RainWarrior f20b40fb80 Fix generics and error in the BlockState patch. 2015-11-10 00:42:56 +03:00
RainWarrior e833ee81fb Updated various rendering-related patches and classes to 1.8.8; forge still uses vecmath. 2015-11-10 00:03:39 +03:00
cpw 98125a97c9 Patches and rejected patches. Note: some which had imports are not listed here because they need
to be refactored not to have imports.
Progress: https://gist.github.com/cpw/29695e426e2b122cf8ff
2015-11-09 01:50:45 -05:00
cpw 1a6c816bac Test of mcp patching 2015-11-08 23:09:33 -05:00
Lex Manos bc05bfda4f Fixed Stronghold Library not having anything in it's chests. 2015-11-08 12:53:01 -08:00
Lex Manos ffbad6633d Fixed Open url confirm screen not showing URL. 2015-11-08 12:52:41 -08:00
cpw b1aa31215f regenerate reference patchset at patches.mcp. These will be used to generate a new patchtree under patches. 2015-11-08 15:50:52 -05:00
cpw ff19efe146 1.8.8 initial work 2015-11-08 12:53:56 -05:00
cpw 95b30f5153 Merge pull request #2174 from diesieben07/findBlockFix
Fix GameData.findBlock
2015-11-08 10:30:18 -05:00
Take Weiland e6d8fde415 Fix GameData.findBlock 2015-11-08 15:34:31 +01:00
RainWarrior b6664c76c5 Fixed anaglyph transformation not being applied in the forge lighting fully. 2015-11-08 15:11:22 +03:00
RainWarrior cbe2766c0a Provide ItemCameraTransforms for vanilla models when possible. 2015-11-08 09:37:33 +03:00
RainWarrior 8a11ad7a7a OBJ loader: reworked texture resolution: keys now have to start with #, like every other model loader; models without explicit library now work, remapping is possible by using the key "#OBJModel.Default.Texture.Name"; in addition to remapping by material name, remapping by texture name works too, like in other model formats. 2015-11-07 20:36:57 +03:00
RainWarrior 3d03461a52 Performace fix for item rendering. 2015-11-07 12:58:23 +03:00
LexManos f466a0c387 Merge pull request #2167 from Choonster/master
Fix texture error message for broken textures
2015-11-05 15:09:02 -08:00
Choonster 729fca7722 Fix texture error message for broken textures
-- Fixes #2100
-- Iterates over badTextureDomains instead of missingTextures.keySet()
as a domain can have broken textures without any missing textures
2015-11-06 06:52:09 +11:00
Lex Manos d790008353 Introduce a new centralized version checking system.
Using the @Mod annotation mods can opt-in to a centrally controlled update system.
This is PURELY a notification system and will NOT automatically download any updates.
The End User can control which mods check for updates and disabel the system entirely using the Forge Config and GUI.
Format for the json the URL must point to is described here: https://gist.github.com/LexManos/7aacb9aa991330523884
2015-11-04 14:37:15 -08:00
Lex Manos 479c7f8b54 Redesign the ModList GUI to use a scrolling list for the main body content.
Allowing for larger information to be displayed.
URLs are auto-detected and now clickable.
Mod Logos are now centered, it looks better.
2015-11-04 13:57:47 -08:00
Lex Manos d0a33c4d9d Merge FML and Forge lang file, and update crowdin project. 2015-11-04 13:49:54 -08:00
RainWarrior c3141b6ed6 Fixed block color multiplier not being cached properly in the forge renderer, performance improvement. 2015-11-03 16:00:44 +03:00
RainWarrior cf8972262a OBJ model: use original vertex material when defining face. 2015-11-03 01:53:58 +03:00
LexManos bdbcf31fc2 Merge pull request #2161 from The-Fireplace/master
Fixed a bug with GuiConfigEntries.SelectValueEntry
2015-11-01 16:15:23 -08:00
The_Fireplace 6dc50ace6b Fixed a bug that caused the config option name to overlap with the selectable values when using GuiConfigEntries.SelectValueEntry, fixes #2114 2015-10-31 18:28:29 -05:00
RainWarrior 51653fb9b7 Obj loader: fix vertices shared between faces having the same attributed (uvs/normals). 2015-10-31 21:19:35 +03:00
RainWarrior 12e6fe9db7 OBJ loader: fixed another whitespace-related issue; removed unused "modifyUVs" property for now; added the "flip-v" property to switch between OpenGL-style and DirextX-style model UVs; fixed normals - they are now correct in-world, still a bit strange for the items; fixed normals a little bit for B3D models too. 2015-10-29 22:50:45 +03:00
RainWarrior c3b15e3f6c Fix color multiplier applied incorrectly for items. 2015-10-29 20:27:26 +03:00
Fry 887f3bf31d Merge pull request #2154 from shadekiller666/OBJ_Loader
OBJLoader Update: Fix for normal generation, whitespace handling, and UVs outside 0-1 range
2015-10-29 13:53:09 +03:00
RainWarrior a9d5d0097d Fix for the previous commit - transparent blocks were handled improperly. 2015-10-29 13:32:43 +03:00
RainWarrior 3d972a11a8 Changed how the forge lighting system handles holey models for opaque blocks; it now mimics vanilla behaviour, which allows light to pass through them. 2015-10-29 13:14:35 +03:00
shadekiller666 7a20543d5f OBJLoader: Quick bandages to support/fix the new way that face/vertex normals are calculated, a very quick bandage to patch TextureCoordinates for the time being, and the Parser now uses a Pattern to split strings on whitespace instead of only splitting on " ". 2015-10-29 02:21:28 -07:00
LexManos 4c1e3ac7db Merge pull request #2151 from AbrarSyed/patch-1
Update FG version to 2.0.2
2015-10-28 14:31:08 -07:00
LexManos d6a6316771 Merge pull request #2146 from bonii-xx/potionidfix
Fix Potion IDs above 127
2015-10-28 00:29:42 -07:00
Abrar Syed 459e20df3f Update FG version to 2.0.2 2015-10-27 23:45:49 -05:00
LexManos 7d5b860ff3 Merge pull request #2126 from diesieben07/join-world-fix
Fix CME when entities are spawned from EntityJoinWorldEvent
2015-10-27 18:46:18 -07:00
RainWarrior 6fc96ef94e More lighting fixes, flat lighting now works correctly for grass and torches. 2015-10-28 00:58:44 +03:00
RainWarrior 5214ed29b7 Fixed normal calculation for vanilla models, fixed the grass darkening and simular issues. 2015-10-28 00:29:16 +03:00
RainWarrior 6b10b41b02 Fixed piston rendering (WorldRenderer offset wasn't applied); fixed TESR being registered too early in one of the debug mods. 2015-10-27 19:02:22 +03:00
RainWarrior ef2bcb056d Fixed another generic issue in MultiModel. 2015-10-27 18:52:49 +03:00
RainWarrior da19eda51e Provide a IModel for "builtin/generated", fixes #2147 2015-10-27 18:36:57 +03:00
RainWarrior b75593b0c6 Fixed AO being applied to OBJ model transparency, and OBJ loader trying to force the loading of the builtin white texture. 2015-10-27 18:36:57 +03:00
RainWarrior a96ba1b7f7 Fixed generic bug in MultiModel 2015-10-27 18:36:57 +03:00
RainWarrior 7c7547227c Perspective awareness for vanilla and multi models, fixes #2148.
Improved error handling in MultiModel.
2015-10-27 17:40:05 +03:00
Fry cf568ae85f Merge pull request #2091 from shadekiller666/ItemModelLoadingFix
Fixed a bug with item model loading
2015-10-27 09:59:50 +03:00
RainWarrior 8c82b0296a Small fix for reworked classic lighting 2015-10-27 00:19:04 +03:00
shadekiller666 33e2e0b028 Fixed a bug with item model loading that would occur if ModelBakery.addVariantName() was called with the same string location parameter for 2 different items, and the string pointed to a location that didn't exist, where ModelLoader.loadAnyModel() would substitute the blockdefinition in for the item model, but wouldn't remove the original input location from the loadingModels list, which would cause the location from the second call to throw an IllegalStateException even though that location now has a model. 2015-10-26 10:15:13 -07:00
shadekiller666 d1b220f6a3 Added OBJ loader for the ModelLoaderRegistry system. 2015-10-26 19:38:49 +03:00
RainWarrior d5a658b5ea Added back in the lost class 2015-10-26 19:32:19 +03:00
RainWarrior dd365d7220 Model pipeline system.
Should replace all ad-hoc quad generation methods in forge, and make IBakedModel -> WorldRenderer data transfer faster. Added IVertexConsumer + helper classes; lighting that works correctly for non-axis-aligned faces using the new infrastructure. Changed smooth lighting algorithm, now it should work correctly for everything.
New block lighter can be disabled in the forge config options.
2015-10-26 19:25:48 +03:00
Bernhard Bonigl 336eaa336b Fix Potion IDs above 127 2015-10-25 12:16:17 +01:00
mezz ebdcc11c80 Allow server to access Potion isBadEffect() 2015-10-12 21:35:15 -07:00
LexManos ebe9b6d4cb Merge pull request #2022 from simon816/guava-apache-lcl-exclusion
Add Guava and Apache to LaunchClassLoader exclusion list on server
2015-10-12 12:29:45 -07:00
LexManos 7cc7ce3ba2 Merge pull request #2129 from darkevilmac/master
Add PlayerSetSpawnEvent
2015-10-11 14:52:02 -07:00
darkevilmac b9f5e152de Add PlayerSetSpawnEvent 2015-10-10 15:39:27 -07:00
Take Weiland 76753c06df Fix CME when entities are spawned from EntityJoinWorldEvent 2015-10-04 18:46:47 +02:00
RainWarrior e280f72cfb '#' is now added automatically to the beginning of the texture names in B3D models, and the remapping is expected via the blockstate JSON, since it's more reasonable than adding it to the file name in the modelling program or matching the resource location with the filename. 2015-10-03 04:42:35 +03:00
RainWarrior d71384bc33 Fixes Attributes.transform affecting only 1 vertex. 2015-09-29 02:29:16 +03:00
LexManos 90829a3164 Merge pull request #2120 from luacs1998/eventbus_fix
Fix a possible crash in EventBus
2015-09-27 02:12:50 -07:00
luacs1998 05f6ede2ea Fix a possible crash in EventBus 2015-09-27 12:47:37 +08:00
LexManos 1e7fbb7018 Merge pull request #2118 from rubensworks/itemmonsterplacer-dispenser
Fix dispenser action for modded spawn eggs
2015-09-22 12:18:26 -07:00
Ruben Taelman 385159c25e Fix dispenser action for modded spawn eggs 2015-09-22 19:53:34 +02:00
Lex Manos fb9ffa40fd Fix entity count being incorrect for spawning logic. Now filter out 'persistant' entities. 2015-09-14 13:18:34 -07:00
Lex Manos eacffb2b6e Update Gradle wrapper to 2.7 2015-09-14 13:18:02 -07:00
LexManos fb7b47adb4 Merge pull request #2002 from ganymedes01/master
Disallow conflicting furnace recipes
2015-09-09 11:23:08 -07:00
RainWarrior d70ca1a357 Workaround for MinecraftForge/ForgeGradle#256 2015-09-02 22:01:30 +03:00
ganymedes01 31a3a18ec7 Disallow conflicting furnace recipes 2015-09-02 19:04:57 +01:00
cpw 5074f26ccd FMLNetworkHandler.openGui should not try and open a GUI on a FakePlayer.
Fixes #2082 and probably dozens of mod errors. Also, side benefit of the
merged codebase! FML code can ref Forge code!
2015-09-02 13:50:00 -04:00
cpw 4315637f75 Merge branch 'laci200270-patch-1' 2015-09-02 13:30:00 -04:00
cpw b7e8dcff7b Format a bit better 2015-09-02 13:29:43 -04:00
cpw 5a9129f802 Merge branch 'patch-1' of https://github.com/laci200270/MinecraftForge into laci200270-patch-1 2015-09-02 13:27:42 -04:00
RainWarrior b175d265b9 Much requested temporary hack for items and TESRs. Context: #1582, #1597, #1713, #2058 and others. 2015-09-02 07:35:24 +03:00
LexManos e5ee9377fd Merge pull request #2086 from Vorquel/master
Fix faulty channel name checking
2015-09-01 16:32:26 -07:00
LexManos edcb45640f Merge pull request #2069 from simon816/profile-request-fix
Use already provided profile for the player's own skin
2015-09-01 16:32:07 -07:00
simon816 d61a55b661 Use already provided profile for the player's own skin 2015-08-31 03:28:59 +01:00
simon816 b312584ca4 Add Guava and Apache to LaunchClassLoader exclusion list on server
Move exclusions to common place. Less likely to get out of sync
2015-08-31 03:15:30 +01:00
cpw 57d575f941 More cleanup of the default eclipse workspace. The project is now called "MDKExample" not "Minecraft".
The project tree is now contemporary, instead of a copy from 1.5.x era MC. The launches are cleaned up, and refer to
a better default "runDir" of "run" rather than "eclipse".. Updating to FG2.0.1 which will contain relevant binary fixes.
2015-08-26 21:57:31 -04:00
cpw d41e51f47b Fix eclipse workspace inside the mdk - don't run it through the tokenconverter. Also add in CREDITS-fml.txt to the MDK - it's still required. 2015-08-26 13:57:51 -04:00
Lex Manos 90a88efd8a Fixed issue where config folder would not be created before SplashProgress tried to read from it.
Default macs to disable the new loading screen due to to many macs having issues.
Users can enable it again by editing their config.
Catch and gracefully handle more errors when starting up the Splash Screen.
2015-08-22 18:55:32 -07:00
Lex Manos 4b299529b7 Update gradle wrapper and fix changelog task. 2015-08-22 17:57:12 -07:00
James 589465bb81 Fix faulty Channel name 2015-08-21 16:06:07 -07:00
cpw 0d320e2e31 Fix crowdin again. Run, jenkins, for god's sake, run! 2015-08-21 09:52:33 -07:00
cpw 4903febd96 Fix crowdin task. Good luck jenkins, lets roll! 2015-08-21 09:43:30 -07:00
cpw bbe96a3577 Fix ciWriteBuildNumber task. Ugly, but it works. 2015-08-20 13:42:58 -07:00
cpw b211aca5ce Merge branch 'fg2' 2015-08-20 12:27:20 -07:00
cpw 58ab3de7c1 Remove patches 2015-08-20 12:14:02 -07:00
laci200270 ba8ae53867 Update FMLSecurityManager.java 2015-08-19 20:27:42 +02:00
cpw 7e600c0dd8 Fix packaging the gradle wrapper properly. There is still a problem with
the MDK- it fails to run setupDecompWorkspace.

Filed an issue at ForgeGradle, since this seems to be something FG2 shouldn't
be doing, but is?

https://github.com/MinecraftForge/ForgeGradle/issues/235
2015-08-15 10:16:00 -07:00
cpw 9a0a00c7a4 Trying to fix the MDK to include gradle wrapper, but the gradle-wrapper.jar is
corrupted. @AbrarSyed can you take a look?
2015-08-15 09:56:56 -07:00
cpw 91927e6bc7 The final nail in the coffin. BYE! 2015-08-13 23:07:53 -07:00
cpw fc045f210d Fix MDK task - it now runs. 2015-08-13 23:07:17 -07:00
LexManos eecc691cdf Merge pull request #2072 from AbrarSyed/fg2
Added MDK package
2015-08-09 20:35:50 -07:00
AbrarSyed 7a6557a9e2 added MDK package 2015-08-09 20:30:31 -05:00
LexManos b45fd787f3 Merge pull request #1969 from diesieben07/blockhighlight
Re-introduce RenderBlockOverlayEvent
2015-08-05 11:48:53 -07:00
cpw c2523c685a FML's metabolic processes are now history. FML's off the twig. FML's kicked the bucket, FML's shuffled off this mortal coil,
run down the curtain and joined the bleedin' choir invisible!! THIS IS AN EX-PROJECT!
2015-08-02 00:20:19 -04:00
cpw dfd62a3bd8 Vestigal fml-ectomy. 2015-08-02 00:03:47 -04:00
cpw 614bbcb0da FML is no more. FML has ceased to be. FML's expired and gone to meet its maker. FML's a stiff! Bereft of life, FML rests in peace. 2015-08-01 23:51:40 -04:00
cpw 9a859f8d5c Merge branch 'master' of https://github.com/AbrarSyed/MinecraftForge into fg2 2015-08-01 20:55:58 -04:00
cpw 5045d8df68 Merge branch '1.7.10' 2015-08-01 20:30:22 -04:00
AbrarSyed 9908310384 fixed deployment credentials 2015-08-01 14:08:04 -05:00
Lex Manos 7b18eab02d Fix placing skulls on fence posts. Closes #2055 2015-07-31 15:10:47 -07:00
LexManos bd4b3debc3 Merge pull request #1968 from modwizcode/master
Fix harvest logic running in addition to shearable logic
2015-07-31 12:57:05 -07:00
LexManos 5623634f56 Merge pull request #2048 from shadekiller666/UnlistedPropertyValue
Fix for ExtendedBlockStates containing at least one IProperty and one IUnlistedProperty preventing block placement.
2015-07-25 15:12:57 -07:00
shadekiller666 87bbbfafcc Fixed a bug with ExtendedBlockStates containing at least one IProperty and one IUnlistedProperty not allowing blocks to be placed. 2015-07-25 14:55:42 -07:00
LexManos 2a85ab0eab Merge pull request #2017 from liach/add-enum
Add hook for adding EnumPlantType and fixed npe in BiomeType
2015-07-24 17:08:16 -07:00
LexManos 65123c66a0 Merge pull request #2004 from simon816/sign-nbt-fix
Fix placing signs with NBT prompting for text
2015-07-24 13:53:27 -07:00
LexManos d72caa5005 Merge pull request #2047 from Zaggy1024/forgeblockstatesv1fixes
Fixed two bugs with the Forge blockstates v1 loader.
2015-07-24 11:28:23 -07:00
Zaggy1024 e580d3b6b6 Fixed a Forge blockstates json removing models causing an NPE in the loader.
Fixed the deep clone of a V1 Variant not cloning the submodels properly.
2015-07-24 13:20:10 -05:00
LexManos 5eea9cebae Merge pull request #1983 from clienthax/patch-1
Make layer methods public
2015-07-23 12:13:00 -07:00
LexManos b8fe3913e9 Merge pull request #2044 from rubensworks/enumfacing-server
Remove SideOnly's from EnumFacing allowing full class to be used on both sides.
2015-07-23 10:58:17 -07:00
Ruben Taelman 04d4b2cf76 Make EnumFacing events available server-side 2015-07-23 16:51:45 +02:00
LexManos 81bb69b6c9 Merge pull request #2035 from rubensworks/master
Fix source block check for BlockFluidClassic
2015-07-21 16:43:44 -07:00
Ruben Taelman 0cf1f0d51c Fix source block check for BlockFluidClassic 2015-07-21 10:51:53 +02:00
LexManos cd313c195b Merge pull request #2023 from diesieben07/entity-pick
Allow the new entity eggs to be created via middle-click on an Entity while in creative mode.
2015-07-16 11:33:01 -04:00
diesieben07 9f571ff15d Allow the new entity eggs to be created via middle-click 2015-07-16 14:13:48 +02:00
liach e2ee54a27d Add an EnumHelper hook and fixed an issue 2015-07-14 08:55:51 +08:00
simon816 81eb6a8bb4 Fix placing signs with NBT prompting for text 2015-07-08 22:27:17 +01:00
Clienthax 97f8c246b8 Signed-off-by: Clienthax <[email protected]> 2015-06-30 22:29:34 +01:00
Fry 20bf76464a Merge pull request #1978 from RainWarrior/model-rotation
Custom transformations in forge blockstate json.
2015-06-30 22:14:31 +03:00
RainWarrior c4f370a7e6 Custom transformations in forge blockstate json. 2015-06-30 21:37:11 +03:00
AbrarSyed 9ebc77ef22 updated installed gradle. not finished 2015-06-30 00:14:41 -05:00
AbrarSyed 2fce67c8b7 fixed local-building fail with changelog 2015-06-29 21:56:35 -05:00
AbrarSyed a55536c0dc added jenkins compat tasks 2015-06-29 21:56:35 -05:00
AbrarSyed 1ae0498534 Added FG2 buildscript + updated for Gradle 2.4 2015-06-29 21:56:35 -05:00
AbrarSyed c02c379bed removed old unnecessary stuff 2015-06-29 21:56:35 -05:00
AbrarSyed c5ac5b0264 DeobfuscationData no longer required at dev time 2015-06-29 21:56:35 -05:00
AbrarSyed 0fb705f8f5 added hardcoded fml version file 2015-06-29 21:56:35 -05:00
AbrarSyed bbfae84ee8 removed broken and duplicate AT lines 2015-06-29 21:56:30 -05:00
LexManos cab151ec44 Fixed ItemMonsterPlacer.getEggInfo missing return. Closes #1975 2015-06-26 17:54:38 -07:00
LexManos 7a733d635e Merge pull request #1974 from Lunatrius/white-screen-fix
Fixed error GUIs showing a white screen
2015-06-26 16:16:01 -07:00
Lunatrius 44077774be Fixed error GUIs showing a white screen and replaced a rogue direct GL call. 2015-06-27 01:12:24 +02:00
Fry 37b4936e9d Fix particle texture of the generated item models. 2015-06-27 01:26:59 +03:00
LexManos 637e2c6f56 Merge pull request #1972 from bonii-xx/StateMapDomainFix
Fix StateMap always mapping properties to the "minecraft" domain
2015-06-26 04:03:25 -07:00
Lex Manos 2bfa1ffc05 Add debug for max texture size and output when Texture Atlas can not stitch all textures. 2015-06-26 03:32:09 -07:00
Bernhard Bonigl e55ee43fd5 Fix StateMap always mapping properties to the "minecraft" domain instead of the mods, causing it to not find BlockState definitions. 2015-06-26 10:29:10 +02:00
diesieben07 ebef4553f3 Re-introduce RenderBlockOverlayEvent, seems to have been missed during 1.8 update 2015-06-25 19:09:32 +02:00
Starbuck Johnson fe2c4c569d Fix harvest logic running in addition to shearable logic 2015-06-24 14:28:47 -05:00
Lex Manos b2033d642c More descripotive error if Patcher is passed invalid data for vanilla classes. 2015-06-23 20:36:23 -07:00
RainWarrior 74501f509f There's no Map.getOrDefault in java6. 2015-06-23 17:03:19 +03:00
RainWarrior 8f65678b99 Vanilla models can now use custom textures. Fixes #1962 2015-06-23 16:52:42 +03:00
RainWarrior 510b5523d5 Fixed perspective transformations for item models. 2015-06-23 15:56:18 +03:00
Lex Manos d7c4a06ce8 Fix AT for Block constructor. 2015-06-23 01:26:33 -07:00
RainWarrior 1582e401ed Added ItemLayerModel - less awkward, simpler and faster version of ItemModelGenerator. 2015-06-23 04:43:48 +03:00
cpw bae83e6724 Merge remote-tracking branch 'origin/master' 2015-06-21 22:08:08 -04:00
cpw 16ff1be093 Merge branch '1.7.10'
Conflicts:
	fml/patches/minecraft/net/minecraft/client/Minecraft.java.patch
	fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch
	fml/patches/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java.patch
	fml/src/main/java/net/minecraftforge/fml/relauncher/CoreModManager.java
	patches/minecraft/net/minecraft/client/Minecraft.java.patch
	patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch
	patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch
	src/main/java/net/minecraftforge/client/model/obj/WavefrontObject.java
2015-06-21 21:59:51 -04:00
LexManos 8bb34107f1 Merge pull request #1858 from FlansMods/master
Hook for Camera Angles, Including Roll
2015-06-21 11:19:26 -07:00
LexManos 240ed53a88 Merge pull request #1956 from lawremi/mesadictfix
fix logic for guessing mesa tag in biome dict
2015-06-19 11:25:49 -07:00
larman 2cb971c38f fix logic for guessing mesa tag in biome dict 2015-06-19 07:04:19 -07:00
Lex Manos c158af902f New system in EntityRegistry to allow modders to register spawn eggs.
For entites that do not use the global ID system.
{Which no mod entity should}
Vanilla spawn eggs will now detect a 'entity_name' entry in it's NBT data and use that for spawning/rendering.
2015-06-18 18:05:12 -07:00
Lex Manos ed09a25c65 Patch line number update. Ignore this. 2015-06-18 18:02:22 -07:00
LexManos 94dc49e522 Merge pull request #1952 from ganymedes01/master
Change permission levels on ore recipes parameters
2015-06-18 11:55:46 -07:00
LexManos 40bc035d74 Merge pull request #1953 from ganymedes01/patch-1
Fixed NPE when calling canBrew
2015-06-18 11:51:48 -07:00
Lex Manos 01aac69514 Use Guava instead of Nio for J6 compatibility. 2015-06-18 11:48:14 -07:00
ganymedes01 953ddae475 Fixed NPE when calling canBrew
Oversight on my part,

If the ingredient doesn't return true in Item.isPotionIngredient, Items.potionitem.getEffects(stack) returns null, causing an NPE to be thrown later on.

This invalidates #1947.
2015-06-18 13:32:21 -03:00
ganymedes01 ab548afbfb Change permission levels on ore recipes parameters 2015-06-18 13:21:00 -03:00
Fry f2eec981ff Merge pull request #1922 from RainWarrior/model-fluid2
1.8 model fluid renderer
2015-06-18 14:29:22 +03:00
RainWarrior 07038f8342 Added fluid renderer. 2015-06-18 14:26:53 +03:00
Lex Manos f59b0a2932 Make Item.shouldCauseReequipAnimation is bit more precise and copy over the new item for rendering even if the animation is diabled. 2015-06-17 20:33:35 -07:00
Lex Manos 030084f2b3 Add vanilla block rotation support back in for certain blocks that were missed in 1.8 update. Closes #1903 2015-06-17 17:28:18 -07:00
LexManos bf63879a92 Merge pull request #1941 from xxmicloxx/xxmicloxx-patch-b3dloader
Bugfix for B3DLoader
2015-06-17 16:52:08 -07:00
LexManos ed8b8bcf8f Merge pull request #1932 from cheeserolls/patch-1
Fix incorrect block position in BlockReed canPlaceBlockAt
2015-06-17 16:48:42 -07:00
LexManos 1dc7a80d4f Merge pull request #1506 from mezz/GuiScreenInputEvents
Add GuiScreenEvents for keyboard and mouse input
2015-06-17 16:45:41 -07:00
LexManos 87b55860af Merge pull request #1781 from ShetiPhian/Block.getPickBlock
Player sensitive version of Block.getPickBlock
2015-06-17 16:37:03 -07:00
Lex Manos 453ec39496 Add Item.shouldCauseReequipAnimation to allow modders more control over the 'Reequip' animation. 2015-06-17 16:36:41 -07:00
Lex Manos 6ec1ec2575 Fixed compile issues with irtimaled's PR. 2015-06-17 16:01:33 -07:00
Lex Manos 38a85280de Make FML Gui classes use GlStateManager. Closes FML#615 2015-06-17 15:16:48 -07:00
LexManos 20ea3bc0ce Merge pull request #1749 from irtimaled/master
Copy fortress.dat from the overworld to the Nether. Fixes #1747
2015-06-17 14:23:58 -07:00
xxmicloxx b45c90ceb8 Bugfix for B3DLoader 2015-06-17 19:48:51 +02:00
Lex Manos e94288bbb1 Fixup model loading errors not being printed by making ICustomModelLoader.loadModel propogate IOExceptions as needed. 2015-06-16 16:03:10 -07:00
Lex Manos d0902c096e Cleanup code format in LayerBreakingTest. 2015-06-16 16:01:09 -07:00
cpw 114ac38910 Merge branch '1.7.10'
Conflicts:
	fml/src/main/java/net/minecraftforge/fml/common/MinecraftDummyContainer.java
	fml/src/main/java/net/minecraftforge/fml/common/registry/FMLControlledNamespacedRegistry.java
	fml/src/main/java/net/minecraftforge/fml/common/registry/LanguageRegistry.java
2015-06-14 13:57:23 -04:00
LexManos 1f6086c175 Merge pull request #1935 from superckl/master
Fixed two exceptions in BiomeDictionary related to adding new Biome Types.
2015-06-12 17:47:32 -07:00
superckl c84f7a740f Fixing two IndexOutBoundsExceptions from the BiomeDictionary 2015-06-12 17:08:19 -07:00
Daniel Howard 16be913abc Fix incorrect block position in BlockReed canPlaceBlockAt
block.canSustainPlant is called on the wrong block position.  It should be called on the block below (the 'soil' block).
2015-06-12 10:14:22 +01:00
Lex Manos acbb330214 Bump version for new RB 2015-06-09 17:17:35 -07:00
Lex Manos db7d82a889 Copy over parent's modelSet value in variants as well. 2015-06-09 17:17:23 -07:00
cpw db42d1f532 Merge branch '1.7.10' 2015-06-09 17:57:35 -04:00
LexManos 7406e3df9f Merge pull request #1795 from lumien231/ExperienceEvent
Added LivingExperienceDropsEvent to change how much experience an entity drops
2015-06-09 13:23:01 -07:00
LexManos 8b50f9ab36 Merge pull request #1907 from johnjohn/master
Added ItemMap type check to item frames and ItemRenderer, enabling vanilla style rendering for custom ItemMaps
2015-06-09 12:37:33 -07:00
Lex Manos fef959d1e9 Redefine removal value in IRetextureableModel from null to empty string {""} due to ImmutibleMap not allowing null Values. Closes #1927 2015-06-09 12:36:36 -07:00
LexManos f62ee5c4f5 Merge pull request #1881 from ganymedes01/master
Added a brewing recipe registry system
2015-06-09 12:05:40 -07:00
johnjohn 486c0955cf Added ItemMap type check to item frames and ItemRenderer, enabling vanilla style rendering for custom maps 2015-06-09 12:42:45 -06:00
ganymedes01 0373920f99 Added a brewing registry system 2015-06-09 14:01:45 -03:00
Lex Manos 1ad05f7f22 Missed patch for sign fix. 2015-06-08 16:23:30 -07:00
Lex Manos 15a1d4cf0d Remove worlds from WorldBorder when unloaded tol prevent memory leak, Closes #1923 2015-06-08 16:19:53 -07:00
Lex Manos 1b689802a4 Limit Sign text to 384 json characters and strip control codes. This is 1.8.7's Sign fix. Thanks Searge. 2015-06-08 16:19:02 -07:00
cpw b35aec4347 Attempt to synchronize the state for vanilla client completions and quit the handler if the vanilla
thread has already setup the connection. Should fix #1924
2015-06-08 18:24:35 -04:00
Lex Manos ee1e229b66 Change custom payload lock to be buffer itself incase multiple packets use the same backend buffer. Closes #1908 2015-06-07 00:06:00 -07:00
Fry e007f7cf39 Merge pull request #1868 from fuami/ISmartBlockModel_Damage
Add Block Breaking Animation for ISmartBlockModels
2015-06-06 03:39:11 +03:00
Fuami 5cd4564a32 Added Breaking Animation for Smart Models, Checking each layer.
Added Layered Smart Render Test.
2015-06-05 19:23:17 -05:00
LexManos 26bc23602a Update README.txt 2015-06-05 13:28:07 -07:00
RainWarrior d6bc936ffa B3D Improvements
- fixed keyframe transformation application
 - textures are now resolved the same way as in vanilla models
 - added the ability to use forge blockstate texture information
 - removed unused code from the B3D example
2015-06-04 18:58:42 +03:00
RainWarrior 581363fddd fixed AT missing for getModelBlockDefinition 2015-06-04 18:58:42 +03:00
RainWarrior 685a97fd93 Fixed missing variant logging; added the possibility to specify the item variant in the blockstate json. 2015-06-04 18:07:03 +03:00
RainWarrior 897d41fa77 Fixed partial variant detection in the forge blockstate loader. 2015-06-04 16:59:18 +03:00
Lex Manos 5064d33519 Mitigate potential issue with users requesting lots of server status information by caching ServerStatus json. 2015-06-03 23:16:25 -07:00
LexManos 107e760aa3 Merge pull request #1912 from clienthax/master
Add missing forge patch from 1.8 port
2015-06-03 19:53:01 -07:00
Clienthax 9b53b7e111 Add missing forge patch from 1.8 port
https://github.com/MinecraftForge/MinecraftForge/blob/1.7.10/patches/minecraft/net/minecraft/client/Minecraft.java.patch#L88
2015-06-04 01:55:13 +01:00
LexManos 61f9c5a201 Merge pull request #1885 from LexManos/EnhanvedBlockStateJson
Hook BlockState's Json loading to add support for simplified Forge format.
2015-06-02 16:52:06 -07:00
Lex Manos 267e1ee62f Hook BlockState's Json loading to add support for simplified Forge format.
See https://github.com/MinecraftForge/MinecraftForge/pull/1885 for more details.
2015-06-02 16:49:56 -07:00
Lex Manos 950da28d54 Fixed missing import in last merge. 2015-06-02 16:32:10 -07:00
cpw e2dc863086 Merge branch '1.7.10'
Conflicts:
	fml/patches/minecraft/net/minecraft/client/Minecraft.java.patch
	fml/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java
	fml/src/main/java/net/minecraftforge/fml/client/SplashProgress.java
2015-06-02 07:30:44 -04:00
LexManos 41cae458a4 Merge pull request #1911 from AlgorithmX2/ItemFramesOnSolidSurfaces
Allow placing item frames on Solid Block Faces (isSideSolid)
2015-06-01 20:45:28 -07:00
AlgorithmX2 885d7602f9 Allow placing item frames on Solid Block Faces (isSideSolid) 2015-06-01 22:31:55 -05:00
cpw 3c640fa32d Bump minor version # to 2 because of the fluid changes (mirroring what happening in 1.7.10) 2015-06-01 16:31:16 -04:00
cpw d02636213a Merge branch '1.7.10' - imports all the fluid fixups and other stuff from 1.7 into 1.8
Conflicts:
	fml/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java
	fml/src/main/java/net/minecraftforge/fml/common/Loader.java
	patches/minecraft/net/minecraft/client/Minecraft.java.patch
	patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch
	patches/minecraft/net/minecraft/item/ItemArmor.java.patch
	patches/minecraft/net/minecraft/nbt/CompressedStreamTools.java.patch
	patches/minecraft/net/minecraft/nbt/NBTTagCompound.java.patch
	patches/minecraft/net/minecraft/nbt/NBTTagList.java.patch
	patches/minecraft/net/minecraft/world/World.java.patch
	patches/minecraft/net/minecraft/world/WorldProvider.java.patch
	src/main/java/net/minecraftforge/common/ForgeVersion.java
	src/main/java/net/minecraftforge/common/network/ForgeMessage.java
	src/main/java/net/minecraftforge/fluids/BlockFluidBase.java
	src/main/java/net/minecraftforge/fluids/FluidContainerRegistry.java
	src/main/java/net/minecraftforge/fluids/FluidRegistry.java
	src/main/java/net/minecraftforge/oredict/OreDictionary.java
2015-06-01 16:29:34 -04:00
Lex Manos 3331d2a496 Fixed damage reduction rate of vanilla armor incorrectly scaling with armor's current durability. 2015-05-26 23:34:32 -07:00
LexManos f9b1e4e23b Merge pull request #1892 from AlgorithmX2/vanilla_lighting_bug
Fix Vanilla Lighting Bug - Fixes Top/Bottom Faces interpolation.
2015-05-26 19:24:37 -07:00
Lex Manos 2bb090bf2b Force netty downgrade on dedicated server to match client. Netty bug: https://github.com/netty/netty/issues/2302 Closes #1848 2015-05-26 19:20:46 -07:00
AlgorithmX2 76f8843017 Fix Partial Face Lighting on Top/Bottom Faces ; Vanilla MC-80148 2015-05-26 19:33:56 -05:00
Lex Manos 9fa51447a2 Fixed command exploit with C12 2015-05-25 16:08:42 -07:00
Lex Manos c608e7c04e Fixes MC-75630 - Exploit with signs and command blocks 2015-05-25 15:28:14 -07:00
Lex Manos 19d7e16fa6 Finish loading screen before going fullscreen. Closes MinecraftForge/FML#662 2015-05-25 14:32:35 -07:00
Lex Manos e3211eec04 Attempt to disable the new splash screen if there are errors detected finishing up. Print a slightly more helpful error message. 2015-05-25 13:34:35 -07:00
Lex Manos 89994bda39 Cleanup a lot of spammy output. Everything hidden behind environment flags now. Scale anvil image down 50% 2015-05-25 13:34:34 -07:00
Lex Manos df5e594e95 Loosen up ServerChatEvent to support IChatComponent Closes #1893 2015-05-25 13:34:34 -07:00
LexManos 8d7b999506 Merge pull request #1804 from Prototik/font
Add true support for unicode fonts
2015-05-21 10:43:22 -07:00
Prototik 2798fc4e49 Add true support for unicode fonts 2015-05-21 20:14:56 +07:00
LexManos 61b2929ae6 Merge pull request #1886 from diesieben07/texture-load-crash
Fix crash when texture loading throws RuntimeException without message
2015-05-20 12:19:18 -07:00
diesieben07 1501f467cf Fix crash when texture loading throws RuntimeException without message 2015-05-20 17:43:52 +02:00
Flan 306af4feee Added CameraSetup sub-event for camera angles
Allows players to alter yaw and pitch of renderViewEntity, but more importantly, adds the ability to roll the view.

Added camera roll hook
2015-05-19 16:14:44 +01:00
LexManos d3ab6d36a4 Merge pull request #1882 from t1g3l/master
Changed forge command tab completion to use getListOfStringsMatchingL…
2015-05-18 10:08:46 -07:00
t1g3l 6a299a483a Changed forge command tab completion to use getListOfStringsMatchingLastWord() 2015-05-18 13:51:05 +02:00
LexManos 8944983d0f Merge pull request #1878 from t1g3l/master
Added tab completion to /forge command.
2015-05-17 14:55:39 -07:00
t1g3l fe327fbd76 Added tab completion 2015-05-17 11:00:42 +02:00
cpw 58fdfb6fa1 Fix patches after last fml merge. 2015-05-14 13:56:10 -04:00
cpw cb6f92e3c7 Merged FML 2015-05-11 18:46:21 -04:00
cpw 081a949bfd Merge branch '1.7.10'
Conflicts:
	patches/minecraft/net/minecraft/client/Minecraft.java.patch
	src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java
	src/main/java/net/minecraftforge/fml/client/FMLFileResourcePack.java
	src/main/java/net/minecraftforge/fml/client/FMLFolderResourcePack.java
	src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java
	src/main/java/net/minecraftforge/fml/common/IFMLSidedHandler.java
	src/main/java/net/minecraftforge/fml/common/LoadController.java
	src/main/java/net/minecraftforge/fml/common/Loader.java
	src/main/java/net/minecraftforge/fml/common/asm/transformers/EventSubscriptionTransformer.java
	src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java
	src/main/resources/fml_at.cfg
2015-05-10 23:55:11 -04:00
LexManos 1f679be553 Merge pull request #1863 from Tmtravlr/master
Initialized the Nether Fortress chest loot
2015-05-10 16:04:07 -07:00
Tmtravlr b2de64bc70 Initialized the Nether Fortress chest loot
Forced the nether fortress chest loot to initialize in ChestGenHooks
like the other types.

Changed tabs to spaces. Silly Eclipse.
2015-05-10 15:59:07 -07:00
cpw 228ce68639 Update current json 2015-05-08 13:54:11 -04:00
Fry 7ab952d410 Merge pull request #1853 from Silfadur/master
Added hook for  IPerspectiveAwareModel in RenderItem.renderItemIntoGUI f...
2015-05-05 04:22:01 +03:00
Silfadur b756bd5f9a Added hook for IPerspectiveAwareModel in RenderItem.renderItemIntoGUI for ItemCameraTransforms.TransformType.GUI 2015-05-05 02:23:38 +02:00
LexManos a003d1b360 Merge pull request #1843 from Zaggy1024/getlightvaluefix
Make World.setBlockState check whether the light value from getLightValue(IBlockAccess, BlockPos) has changed.
2015-05-01 17:58:30 -07:00
Zaggy1024 ee003ef77e Fixed a bug which caused the light level not to update when a block implements Block.getLightValue(IBlockAccess, BlockPos) to change the light value for different block states. 2015-05-01 17:10:08 -05:00
LexManos 4e8d5255ed Merge pull request #652 from AbrarSyed/patch-2
remapped parameters and added ending newlines
2015-04-29 14:45:59 -07:00
AbrarSyed 8e14f9e1cc remapped parameters and added ending newlines 2015-04-29 13:37:09 -05:00
LexManos 1aacf9cfe2 Merge pull request #649 from luacs1998/master
Add classloader exclusion for ASM
2015-04-27 15:29:34 -07:00
luacs1998 0c933be8dd Add classloader exclusion for ASM 2015-04-26 20:40:22 +08:00
LexManos c6525cb3f3 Merge pull request #1832 from Parker8283/lhsf-1.8
[1.8] Fixes MC-52974: Host's skin doesn't load in LAN
2015-04-25 17:21:30 -07:00
LexManos 083e4758a4 Merge pull request #1831 from Zaggy1024/clientonlyrenderinlayer
Removed @SideOnly(Side.CLIENT) from EnumWorldBlockLayer.
2015-04-25 17:00:37 -07:00
Parker Young 9a7c20e791 Fixes MC-52974: Host's skin doesn't load in LAN 2015-04-25 19:58:24 -04:00
Zaggy1024 2589a0d1f6 Removed @SideOnly(Side.CLIENT) from EnumWorldBlockLayer. 2015-04-25 18:45:49 -05:00
Lex Manos 591971936d Cleanup RenderEntityItem patch, fixes Z-fighting issue in EntityItems. Closes #1824 2015-04-23 23:46:55 -07:00
LexManos 68def9c352 Merge pull request #647 from AbrarSyed/patch-1
Fixed scala module libs in dev json
2015-04-23 18:55:27 -07:00
AbrarSyed 99c60ee156 fixed scala module libs in jsons 2015-04-23 20:54:14 -05:00
LexManos 3f59b560d7 Merge pull request #1814 from Lunatrius/block-dispatcher
Extracted the creation of RegionRenderCache into a method for extendability
2015-04-22 13:25:48 -07:00
Lunatrius ea9d805e4f Extracted the creation of RegionRenderCache into a method.
Classes extending RegionRenderCache can change the behavior of the cache, allowing to visually change blocks (schematics etc).
2015-04-22 15:40:07 +02:00
Lex Manos de066a86da Fixed NBTSizeTracker missing a lot of data being read. Also made new NBT object allocation claim 32-bits in the size tracker. 2015-04-17 02:07:01 -07:00
Lumien 81ab4cbc5f Added LivingExperienceDropsEvent to change the amount of experience an entity drops 2015-04-14 11:58:00 +02:00
Lex Manos c5f22f56d8 Dissallow color codes in mod names displayed in Mod gui list. And code formatting. 2015-04-13 21:52:53 -07:00
LexManos 5a5ef86da9 Merge pull request #636 from tterrag1098/betterModList
Fix control codes being used for mod list sort. Clean up sorting code.
2015-04-13 17:13:52 -07:00
tterrag1098 3fbd6b0810 Fix control codes being used for mod list sort. Clean up sorting code and fix a bug with right click clearing. 2015-04-12 00:51:03 -04:00
cpw 5ac654dc1c MinecraftForge/FML@888e489394 Allow registering custom language adapters.
MinecraftForge/FML@906f94ca14 Some tidyup of the PR
MinecraftForge/FML@1c025f1843 Patch TracingPrintStream to handle Kotlin IO.
2015-04-11 18:21:50 -04:00
Arkan Emberwalker 6cdde0f9e4 Patch TracingPrintStream to handle Kotlin IO.
Kotlins internal IO suite wraps the old System.out style, so descend
deeper in the stack when kotlin.io is detected.
2015-04-11 18:13:25 -04:00
cpw 1fa358ccee Some tidyup of the PR 2015-04-11 18:02:00 -04:00
Arkan Emberwalker 2b3cdaa752 Allow registering custom language adapters.
Allows external mods/library jars to provide language adapters for
languages not supported in native Forge.
2015-04-11 17:36:16 +01:00
Lex Manos 07e14a9fa4 MinecraftForge/FML@4a753227ad Rework EventSubscriptionTransformer to bake @Cancelable and @HasResult values, should increase EventBus performance even more by removing logic from Event constructors. 2015-04-10 03:36:51 -07:00
Lex Manos aeb4b03bf4 Rework EventSubscriptionTransformer to bake @Cancelable and @HasResult values, should increase EventBus performance even more by removing logic from Event constructors. 2015-04-10 03:28:41 -07:00
LexManos c11952714c Merge pull request #1752 from AbrarSyed/patch1
changed run configs to GradleStarts
2015-04-09 12:11:32 -07:00
Timothy Tomkins dfd42ab573 Player sensitive version of Block.getPickBlock
Block.getPickBlock was patched in 1.7 but was overlooked in 1.8.

Closes: https://github.com/MinecraftForge/MinecraftForge/issues/1709
2015-04-09 02:09:58 -04:00
Lex Manos 2f5b5f5ffe Updated FML:
MinecraftForge/FML@c8160311d5 Stop IllegalFormatConversionException thrown if @Mod has flagged client-only or server-only
MinecraftForge/FML@9a894952af Merge pull request #627 from GotoLink/patch-1
MinecraftForge/FML@40faac6452 Remove J7 only constructor in EnhancedRuntimeException, J6 compiling compatibility restored.
2015-04-07 20:12:19 -07:00
Lex Manos 79ca5bbf86 Remove J7 only constructor in EnhancedRuntimeException, J6 compiling compatibility restored. 2015-04-07 19:36:20 -07:00
Irtimaled 1eb535f14f Copy fortress.dat from vanilla location
Fixes #1747

If the dat file isn't in the dimension specific folder but is present in the vanilla data folder then copy it over.
2015-04-07 14:40:17 +01:00
LexManos cf7122ed59 Merge pull request #1771 from iChun/master
Readded but deprecated the old RenderPlayerEvent that were deleted. Sorry, Lex.
2015-04-04 14:31:43 -07:00
iChun b2f1b036de Readded but deprecated the old RenderPlayerEvent that were deleted. Sorry, Lex. 2015-04-04 22:30:23 +01:00
LexManos e0bc6fc65c Merge pull request #1770 from iChun/master
Reimplement RenderPlayerEvent that was removed in the port to 1.8 from 1.7.10.
2015-04-03 21:14:46 -07:00
iChun 8c35bc1dc7 Reimplement RenderPlayerEvent that was removed in the port to 1.8 from 1.7.10.
RenderPlayerEvent.Specials was removed because the special effects are done in the LayerRenderer now.
2015-04-03 21:11:43 +01:00
LexManos 6d71b05838 Merge pull request #627 from GotoLink/patch-1
Stop IllegalFormatConversionException thrown
2015-04-02 13:32:56 -07:00
GotoLink 5071e76881 Stop IllegalFormatConversionException thrown if @Mod has flagged client-only or server-only
%d is not a valid format for getModId(), which returns String.
2015-04-02 18:33:19 +02:00
cpw 01000f9d34 Update FML - merge the 1.7.10 changes in to forge @ 1.8. Wow git is (sorta) AWESOME!
MinecraftForge/FML@6b0ae369eb Try and improve performance of the registry by avoiding superType.cast.
MinecraftForge/FML@dfebcafd49 Something I meant to add a long time ago, but it got overlooked. My apologies. Presend the (int) dimension ID in the serverhello packet. This should be 100% backward compatible with existing servers but bumping a server to this version will allow clients with this version as well to now login in dimensions outside the byte range. Probably fixes a bunch of mods that add dimensions.
MinecraftForge/FML@6011419fa0 Clean up my patch. Terrible person I am..
MinecraftForge/FML@c6bbd0e82d Forgot that I need a noarg ctor. I'm so rusty.
MinecraftForge/FML@6edc1635de Need to load the dimension from disk - do it without filling out the player so that the normal player loading (including events) works properly
MinecraftForge/FML@4ca6f6e19f What a dumb oversight. One needs to copy the active substitution set to the active gamedata. Doesn't work well otherwise.
MinecraftForge/FML@6f6cec96be Substitutions need to be activated when they're registered, otherwise they won't appear in world, ever.
MinecraftForge/FML@13ac015f0c Change iterator behaviour for the registry - include substitutions in the standard iterator, so that vanilla MC methods visit them (so they can get textures etc). The fml special one only visits the absolute set, used mostly for sanity checking and serialization.
MinecraftForge/FML@24cb4a42c4 Enhance output of common FML errors in crash reports and server GUI.
MinecraftForge/FML@12ccf9cf49 Rather than try to fall back to the backup level.dat in case of weirdness in the ID map, just fail hard. There is probably a serious modder derp in this case and there's nothing FML can do to recover the situation except avoid making it worse.
MinecraftForge/FML@e8cd368da3 It's an IllegalState not an IllegalArgument *sigh*
MinecraftForge/FML@2be9c74342 And fix itemblocks being removed, leaving behind a residual block. This is a legitimate action - use the missing mapping event to let the mod tell us about it
MinecraftForge/FML@7d8804cf65 You can't setAction to BLOCKONLY
MinecraftForge/FML@13df640d9d Pull in a lot of the FML tweaks from 1.7 to 1.8
MinecraftForge/FML@447beaa99e Merge remote-tracking branch 'origin/1.7.10'
2015-04-01 17:50:58 -04:00
cpw 8fe5d26e94 Merge remote-tracking branch 'origin/1.7.10'
Conflicts:
	fml
2015-04-01 17:43:25 -04:00
cpw 9d1f554075 Merge remote-tracking branch 'origin/1.7.10' 2015-04-01 17:17:24 -04:00
cpw c3559b2dbd Pull in a lot of the FML tweaks from 1.7 to 1.8
Merge remote-tracking branch 'origin/1.7.10'

Conflicts:
	src/main/java/cpw/mods/fml/common/MissingModsException.java
2015-04-01 17:06:12 -04:00
cpw 0a61ffb57e MinecraftForge/FML@2afd55ab82 Fix scala mods, Closes #621
MinecraftForge/FML@c541b08ef6 Merge pull request #622 from diesieben07/scala-fix
MinecraftForge/FML@d5021417dd Forgot the register handling bit. Registration should work now..
MinecraftForge/FML@5a65c65686 OK, this is finally actually working, I think...
2015-04-01 16:08:42 -04:00
cpw 45ec6e0833 OK, this is finally actually working, I think... 2015-04-01 15:56:48 -04:00
RainWarrior 46b1b82f13 Fixed mipmapping not being enabled by expanding 1x1 texture 2015-04-01 16:06:03 +03:00
cpw 8309a32ad2 Forgot the register handling bit. Registration should work now.. 2015-03-31 13:38:30 -04:00
LexManos 8ce395ea4e Merge pull request #622 from diesieben07/scala-fix
Fix scala mods, Closes #621
2015-03-28 11:23:59 -07:00
diesieben07 8f5bb75ef2 Fix scala mods, Closes #621 2015-03-28 16:00:50 +01:00
Lex Manos 0f162ddc6a Updated FML:
MinecraftForge/FML@2a268cd566 Improve mod list GUI, add sort and search
MinecraftForge/FML@951fc2d9fd First attempt at making FMLControlledRegistry something a bit more generic than just blocks/items.
MinecraftForge/FML@410582222d Merge pull request #614 from tterrag1098/betterModList
MinecraftForge/FML@ba0b176430 Fix ModDiscoverer ignoring inner classes.
MinecraftForge/FML@9cc313eab9 Merge pull request #617 from diesieben07/innerclass-disc
MinecraftForge/FML@01aaa7dc97 Fix mods defined via --mods or --modListFile launch args not being searched for coremods. #560
MinecraftForge/FML@8cecc47b85 Merge pull request #620 from killjoy1221/extra-coremod-fix
MinecraftForge/FML@38d9a5f444 Enhance output of common FML errors in crash reports and server

Force load anonymous minecraft classes used in crash reports. This prevents some crashes being hiddedn behind class definiton exceptions.GUI.
2015-03-27 03:03:31 -07:00
Lex Manos 68c3a85fef Enhance output of common FML errors in crash reports and server GUI. 2015-03-27 01:17:57 -07:00
LexManos b1f18107e6 Merge pull request #620 from killjoy1221/extra-coremod-fix
Fixed typo causing coremods to be missed in certain situations.
2015-03-24 05:13:45 -07:00
Matthew Messinger 8da78750aa Fix mods defined via --mods or --modListFile launch args not being searched for coremods. #560 2015-03-23 22:58:02 -04:00
LexManos 3bb9c6a92c Merge pull request #617 from diesieben07/innerclass-disc
Fix ModDiscoverer ignoring inner classes.
2015-03-21 13:15:43 -07:00
LexManos 8d09b39d80 Merge pull request #1755 from simon816/custom-tileentity-data
Add getTileData() to TileEntity
2015-03-21 13:10:43 -07:00
diesieben07 961570f253 Fix ModDiscoverer ignoring inner classes. 2015-03-21 19:15:26 +01:00
simon816 301088acdc Add getTileData() to TileEntity
- The same idea as Entity.getEntityData()
2015-03-21 01:23:55 +00:00
LexManos 36d6d74e95 Merge pull request #1754 from JamiesWhiteShirt/master
Added newVolume and newPitch to PlaySoundAtEntityEvent.
2015-03-19 13:47:36 -07:00
JamiesWhiteShirt 3b567a92d8 Added newVolume and newPitch to PlaySoundAtEntityEvent. Deprecated ForgeEventFactory.onPlaySoundAt, added replacement ForgeEventFactory.onPlaySoundAtEntity. 2015-03-19 12:37:21 +01:00
AbrarSyed 07c42b89fd changed run configs to GradleStarts 2015-03-17 23:40:48 -05:00
LexManos 888bab92c3 Merge pull request #1723 from Geforce132/master
Add an EntityMountEvent.
2015-03-16 10:01:53 -07:00
LexManos 5ac394de0e Merge pull request #614 from tterrag1098/betterModList
Improve mod list GUI, adds sort buttons and a search bar
2015-03-16 10:01:12 -07:00
cpw d81fd22792 First attempt at making FMLControlledRegistry something a bit more generic than just blocks/items.
It probably doesn't work yet though.
2015-03-15 16:22:28 -04:00
Geforce132 d2f36d56f1 -Added EntityMountEvent. 2015-03-13 19:12:16 -05:00
tterrag1098 a27e7e03dd Improve mod list GUI, add sort and search 2015-03-13 18:38:10 -04:00
LexManos 588f4e3350 Merge pull request #1745 from diesieben07/ingamegui-fix
Fix jukebox message being too low
2015-03-11 15:46:14 -07:00
diesieben07 642003e065 Fix jukebox message being too low with forge 2015-03-11 23:25:41 +01:00
Lex Manos 5229abc26d Updated FML:
MinecraftForge/FML@3e7ae47f8f Fix Event Bus Access Issues
MinecraftForge/FML@c8e2a5f377 Fixed WorldInfo properties not loaded
MinecraftForge/FML@7f96b2c69a Fix Debug packet logger on local memory connections.
2015-03-04 21:13:15 -08:00
Lex Manos 418b7794d2 Fix Debug packet logger on local memory connections. 2015-03-04 21:00:31 -08:00
LexManos 6244e88f10 Merge pull request #1739 from robin4002/master
Remove translation and add a note for contributors
2015-03-04 11:33:06 -08:00
robin4002 af0316ab9b remove translation and add a note for contributors 2015-03-04 20:21:16 +01:00
LexManos 4d4f82816f Merge pull request #610 from Zot201/1.8
Fixed WorldInfo properties not loaded
2015-03-04 10:34:25 -08:00
Zot201 189619fcdd Fixed WorldInfo properties not loaded 2015-03-05 03:21:19 +09:00
LexManos 7223e1a7d9 Merge pull request #609 from Zot201/1.8
Add transformer to allow protected/private classes to use the event bus.
2015-03-04 09:49:25 -08:00
LexManos d93e8bcf48 Merge pull request #1733 from Zot201/enchantment-fix
Fixed enchanting table applying secondary enchs. Closes #1428
2015-03-02 12:10:12 -08:00
Zot201 ecca5720c8 Fixed enchanting table applying secondary enchs. 2015-03-02 17:00:38 +09:00
LexManos 7355bdf600 Merge pull request #1721 from me4502/update-event
Added NeighborNotifyEvent fired on server side only, allows for monitoring and disabling world 'physics' updates.
2015-02-28 22:54:48 -08:00
Me4502 c21e38cd3b Add NeighborNotiftyEvent. 2015-03-01 16:53:32 +10:00
Zot201 ccffcf60f8 Fix Event Bus Access Issues
1) Allow overriding methods in subclass without extra SubscribeEvent annotations
2) Transform event subscribers to have public method/class
2015-03-01 15:37:47 +09:00
Lex Manos 1af0734f51 Fix compile error in ClientHax's PR. 2015-02-26 23:20:43 -08:00
LexManos d82e80b2cf Merge pull request #1729 from clienthax/master
Add method to set entity placement type.
2015-02-26 22:16:22 -08:00
clienthax 848dee14d2 Current spawner implementation checks the EntitySpawnPlacementRegistry hashmap to check where a entity should spawn
as there is no way to modify this without the use of reflection or a AT, you can not specify where you want your entity to spawn
adding this helper method will allow developers to specify where they want their entity to spawn.

Signed-off-by: Clienthax <[email protected]>

Update EntitySpawnPlacementRegistry.java.patch
2015-02-27 03:58:40 +00:00
LexManos 31e1aae91a Merge pull request #1730 from Tmtravlr/master
Added Nether Fortress chest to the ChestGenHooks
2015-02-26 17:34:56 -08:00
Tmtravlr f152741bba Added Nether Fortress chest to the ChestGenHooks
I tried to follow the directions on

https://github.com/MinecraftForge/MinecraftForge/wiki/If-you-want-to-contribute-to-Forge

as best as I could. =)

If anything is wrong, let me know and I'll change it!
2015-02-26 14:25:41 -07:00
RainWarrior 638af63f4d Hopefully fix NPE during baking of empty vanilla item models 2015-02-23 16:02:10 +03:00
Lex Manos 7c03542d94 Fire WorldEvent.Load for Client worlds. Closes #1719 2015-02-23 02:18:58 -08:00
Lex Manos b2ca559851 Make Container.mergeItemStack respect Slot.isValidItem Closes #1630 2015-02-23 02:03:52 -08:00
Lex Manos f16a7ff890 Fix JukeBoxes not storing the inserted record. All TE's in minecraft are in net.minecraft.tileentity EXCEPT JukeBoxes. Closes #1633 Closes #1714 2015-02-23 01:44:54 -08:00
Lex Manos 938b752036 Fix NPEs in last commit. 2015-02-21 19:49:13 -08:00
Lex Manos 9335e2907b Fix NPEs in mlast commit. 2015-02-21 19:48:48 -08:00
Lex Manos 899ecd0d64 Updated FML:
MinecraftForge/FML@c9cf3136c2 New @Mod properties to define which environment to load the mod on.
clientSideOnly will only be loaded in the Client environment.
serverSideOnly will only be loaded in the Dedicated server environment.
Combine with acceptedMinecraftVersions to prevent users from loading the mod in the incorrect environment.
2015-02-21 18:43:21 -08:00
Lex Manos 7269d22449 New @Mod properties to define which environment to load the mod on.
clientSideOnly will only be loaded in the Client environment.
serverSideOnly will only be loaded in the Dedicated server environment.
Combine with acceptedMinecraftVersions to prevent users from loading the mod in the incorrect environment.
2015-02-21 18:33:30 -08:00
Lex Manos 46695cf4cf Updated FML:
MinecraftForge/FML@5eff408975 Filter more known libraries from potential mod canidates.
MinecraftForge/FML@feb4c436db Quiet ClassPatchManager debug spam by default. Reenable using -Dfml.debugClassPatchManager=true.
MinecraftForge/FML@41e806fa95 Fix double decoding of UTF8 characters in lang files.
2015-02-21 17:28:53 -08:00
Lex Manos 0281b74c7c Fix double decoding of UTF8 characters in lang files. 2015-02-21 17:27:21 -08:00
Lex Manos ae085bb84d Fixed using items on the wrong block client side caused by iChuns eyeheight update. 2015-02-19 18:09:36 -08:00
LexManos ccfd928c9a Merge pull request #1718 from iChun/master
Reimplement variable eyeHeight for players which was removed in the 1.7 to 1.8 port.
2015-02-18 19:01:06 -08:00
iChun d66951b368 Reimplement variable eyeHeight for players which was removed in the 1.7 to 1.8 port. 2015-02-19 02:08:03 +00:00
RainWarrior 0e34510032 Removed event bus call from the ModelLoader 2015-02-17 21:20:19 +03:00
LexManos 83ca72bef2 Merge pull request #1708 from matthewprenger/PR-1
Ability to add prefixes and suffixes to the player's display name
2015-02-16 22:52:03 -08:00
Lex Manos 5b28eb53e8 Add safty to URL detection in chat. Closes #1712 2015-02-16 22:46:55 -08:00
RainWarrior b14cfa45e5 RenderItem can now use baked quad color 2015-02-17 05:02:16 +03:00
RainWarrior 93cd9722b0 Added a default white texture; Fixed B3DLoader crashing when the brush has empty texture specified 2015-02-17 05:02:16 +03:00
LexManos 9e4ef54753 Merge pull request #1711 from Parker8283/patch-1
Added ATs for EnumFacing
2015-02-16 13:49:11 -08:00
Parker Young e04240e5e3 Added ATs for EnumFacing
This publics the VALUES array and HORIZONTALS array in EnumFacing, thus giving modders access to these arrays, much like ForgeDirection had.
2015-02-16 16:30:55 -05:00
Lex Manos 0a8a535e2c Quiet ClassPatchManager debug spam by default. Reenable using -Dfml.debugClassPatchManager=true. 2015-02-15 17:30:56 -08:00
Lex Manos d14ad7dd9a Filter more known libraries from potential mod canidates. 2015-02-15 17:30:18 -08:00
RainWarrior d741b1bafc Attributes.put (de)normalization now works as intended 2015-02-16 03:53:33 +03:00
Matthew Prenger b4f8945fec Add the ability to add prefixes and suffixes to the player's display name. 2015-02-15 17:47:13 -06:00
Lex Manos f6ca556a38 Hold a weak reference to the Minecraft fake player object. Closes #1705 2015-02-15 13:00:09 -08:00
LexManos e5cd5fc256 Merge pull request #1689 from matthewprenger/master
Minor tweak to UsernameCache to also cache usernames of offline players
2015-02-15 12:37:50 -08:00
RainWarrior 44e31f802a Updated FML 2015-02-14 05:17:56 +03:00
RainWarrior 68efb9d6f4 Moved transformer wrappers to a separate package (should fix signing errors), fixed debug mods not loading in forgedev (string comparison). 2015-02-14 05:17:14 +03:00
RainWarrior 5616d0c1b0 ModelRotation.getMatrix() now returns the correct matrix; fixed the application of custom transformations to vanilla models; fixed application of transformations to B3D models; fixed the culling of rotated vanilla models 2015-02-14 04:44:41 +03:00
LexManos 316ec27e77 Merge pull request #599 from diesieben07/master
Handle empty lines in language files gracefully
2015-02-13 14:04:53 -08:00
RainWarrior 87ef833d32 Alternative models work once again 2015-02-14 00:23:03 +03:00
diesieben07 1a2c521b63 Handle empty lines in language files gracefully 2015-02-13 15:34:54 +01:00
RainWarrior 3e1d959a23 Updated FML 2015-02-13 08:24:32 +03:00
Fry c85aa9351a Merge pull request #597 from RainWarrior/blame
Added blaming of coremods and mods not targetting Java 6
2015-02-13 08:05:20 +03:00
RainWarrior a4e70e44e1 Added blaming of coremods and mods not targetting Java 6 2015-02-13 08:07:27 +03:00
RainWarrior dfc2e04255 fix ModelLoader.setCustomModelResourceLocation not storing same item with different metadata values 2015-02-09 17:19:10 +03:00
Lex Manos 0e69e84d89 Try a maven mirrior to fix build issues. 2015-02-08 17:24:44 -08:00
RainWarrior 2419d4913b made renderLayer ThreadLocal, now it should hold correct value for use inside custom baked models 2015-02-09 02:46:01 +03:00
RainWarrior 9a6fb600ec Reworked vanilla texture resolution, hopefully fixes NPE bug in FaceBakery 2015-02-08 15:51:41 +03:00
RainWarrior 9e90febd37 fixed NPE during loading of B3D models without textures/brushes.
changed default B3D color to have full opacity.
2015-02-08 15:50:35 +03:00
Matthew Prenger 0f43b95821 Minor tweak to UsernameCache to also cache usernames of offline players. 2015-02-07 03:58:27 -06:00
Lex Manos f0d96b7c50 Fixed being kicked from the server while swimming. 2015-02-06 21:35:27 -08:00
Lex Manos 7ed7da159e Fixed debugging Dedicated server in Forge Dev workspace. 2015-02-06 21:35:11 -08:00
Lex Manos c80e75de9b Fixed potential NPEs in Structure code caused by componenets not being able to load. Closes #1686 2015-02-05 17:02:30 -08:00
Lex Manos e903f0ff69 Added ability for language files to opt-in to loading using normal Java properties format.
This allows for escape characters, as well as keeping %d and %f replacements in tact.
To opt-in, the lang file must have this comment line:
# PARSE_ESCAPES
As this is opt-in, any errors resulting from misused format strings is on the modder/end user.
2015-02-04 17:23:41 -08:00
Lex Manos b036b37a35 Fixed BlockBush and BlockCrops not respecting custom soils. Closes #1683 2015-02-04 12:20:24 -08:00
Lex Manos 48c24246a5 Fixed InitMapGenEvent's fire order so values are used. And added OCEAN_MONUMENT type. Closes #1681 2015-02-04 12:20:24 -08:00
RainWarrior 9cb7cc557a Restore binary backwards compatibility 2015-02-04 10:05:07 +03:00
RainWarrior b8add23d9b ModelBakeEvent now has ModelLoader as an argument instead of ModelBakery; Added various static hooks to ModelLoader to allow registering model-related information before it's needed (prevents file-not-found errors on first baking pass); ModelLoader waits until ModelBakeEvent is done before showing any missing model exceptions; It's now possible to define models completely in-code (as illustrated by ModelBakeEventDebug). 2015-02-04 09:45:23 +03:00
Lex Manos 501665fc1e Bump version to 11.14.1 for next development cycle. 2015-02-03 19:44:29 -08:00
RainWarrior 3a0de2edca Fixed tracking of UV locking state. Closes #1679 2015-02-03 10:40:30 +03:00
Lex Manos c814be0359 Updated FML: MinecraftForge/FML@22c9656196 Reset S->C CustomPayload data after Write, allowing the same packet to be written multiple times. 2015-02-02 13:08:02 -08:00
Lex Manos 79356d7023 Fixed ItemFrames not having a model. Closes #1678 2015-02-02 13:06:57 -08:00
Lex Manos 1b80328d3f Reset S->C CustomPayload data after Write, allowing the same packet to be written multiple times. Closes #588 2015-02-02 12:09:26 -08:00
Lex Manos 76825d19b8 Fixed Buttons not dropping anything when broken. Closes #1676 2015-02-01 10:49:17 -08:00
Lex Manos 80c0ff4066 Fixed domain support in ArmorMaterial texture name. Closes #1675 2015-02-01 10:48:48 -08:00
Lex Manos 072aca4350 Updated FML:
MinecraftForge/FML@d00feb58c7 Remove debug code that was causing console spam in Forge.
MinecraftForge/FML@1de3bf733a Fix FML's package for net.miencraftforge on maven. Fixes uploading of new builds. Note: 1.7.10 builds are bug fixes only while FML/Forge for 1.8 stabelizes.
MinecraftForge/FML@05ecefb538 Update to ASM5 for Java 8 support
MinecraftForge/FML@1112c455b9 Merge pull request #595 from Grinch/master
MinecraftForge/FML@9c3013e02a Merge remote-tracking branch 'origin/1.8'
2015-01-31 19:00:38 -08:00
Lex Manos c374ba5463 Merge remote-tracking branch 'origin/1.8' 2015-01-31 18:56:00 -08:00
Lex Manos 79b5c28d38 Merge remote-tracking branch 'origin/1.8' 2015-01-31 18:33:32 -08:00
RainWarrior ab39b7e4e0 Removed leftover debug messages 2015-01-30 03:14:12 +03:00
LexManos a420927007 Merge pull request #1666 from TechStack/1.8
Fixes issue #1552 Where the flowIntoBlock method was not setting the Block to the fluid and causing crashes
2015-01-29 16:29:30 -06:00
LexManos 7581ead65f Merge pull request #1664 from Lunatrius/fix-debug
Fixed debug text rendering one line to low.
2015-01-29 16:19:20 -06:00
TechStack 146b08a8cd Closes #1552
Set the destination block the to the fluid.
In the previous code the destination block was still Air and would would
cause a crash because air doesn't have a property for LEVEL
2015-01-29 17:11:22 -05:00
RainWarrior 67121d9ebc Merge pull request #1521 from RainWarrior/model-system
Model loader registry
2015-01-29 13:25:47 +03:00
RainWarrior 6eba0ebb93 Added model loader registry
Entry point: ModelLoaderRegistry
loader interface: ICustomModelLoader
custom model: IModel

ModelLoader is responsible for splicing into vanilla model system.
(you probably don't need to use it directly)

Interop with vanilla models isn't great yet
(vanilla models can't refer to custom ones as parents), will improve in
the future.

Includes loader for B3D models, with animation support
(net.minecraftforge.client.model.b3d).
Blender export plugin with compatible coordinate system:
https://github.com/RainWarrior/B3DExport

OBJ loader is being written, will be included at some point in the
future. For now you can convert OBJ to B3D via blender, or wait.
2015-01-29 11:33:52 +03:00
Lunatrius 39eb036b0e Don't skip the first line when rendering (debug) text. 2015-01-28 21:41:39 +01:00
Lex Manos 8b6ef01ecc Updated FML:
MinecraftForge/FML@a55e412453 Save the mod list of players in their NetworkDispatcher (Make it accessable for mods)
MinecraftForge/FML@69d479d46a Fixed getEffectiveSide() for Netty Server threads
MinecraftForge/FML@0f9a33cf14 Exclude only log4j2 queue from class loader
2015-01-19 11:38:05 -08:00
LexManos 9a2c4998ae Merge pull request #591 from Minecrell/patch-1
Exclude only log4j2 queue from class loader
2015-01-18 14:46:18 -08:00
LexManos c4b0fea9ee Merge pull request #1647 from Parker8283/fluid-icons
Re-enabled Icon setting for Fluids
2015-01-16 15:22:09 -08:00
LexManos 698b1558cd Merge pull request #1645 from Lunatrius/chat-npe-fix
Fixed NPE when canceling ClientChatRecievedEvent. Fixes #1644
2015-01-16 15:18:02 -08:00
LexManos c7da6c703f Merge pull request #575 from lumien231/1.8
Save the mod list of players in their NetworkDispatcher
2015-01-16 14:40:06 -08:00
Parker Young bfcce919b9 Re-enabled Icon setting for Fluids 2015-01-16 17:30:00 -05:00
Minecrell 8cfca4376f Exclude only log4j2 queue from class loader
Right now the complete com.mojang package is excluded from the LaunchClassLoader on the server. This means mods can't transform authlib for example which doesn't need to be excluded for the UI to work. By excluding only the specific log4j2 QueueLogAppender, mods can also transform the classes in the com.mojang.authlib package.
2015-01-16 23:15:17 +01:00
Lunatrius 4380ca026e Fixed NPE when canceling ClientChatRecievedEvent. Fixes #1644 2015-01-16 23:09:45 +01:00
Lex Manos f6a378e136 Silently eat exceptions when getting a TE's rendering bounding box, this 'fixes' Bukkit servers screwing up world data and causing clients to crash. 2015-01-14 19:02:50 -08:00
RainWarrior dcabad2bd1 Merge pull request #1602 from Chicken-Bones/1.8
Allow blocks to render in multiple layers
2015-01-10 13:35:29 +03:00
Lex Manos 64bf7bb3be Fix value passed for Item.getModel useRemaining argument. Closes #1623 2015-01-08 23:37:06 -08:00
Lex Manos fb88b021c5 Made Chunk.fillBlock respect TileEntity.shouldRefresh. 2015-01-08 23:22:45 -08:00
Lex Manos d899f8fb84 Call World.init from DimensionManager.initDimension Closes #1551 2015-01-08 23:02:25 -08:00
Lex Manos 5328701219 Fix potential NPE when loading a single player world where you were saved in a unloaded dimension. Closes #1575 2015-01-08 21:42:13 -08:00
LexManos bca990cc93 Merge pull request #1609 from lumien231/1.8
Fixes #1603: Moving the start of the update thread to the pre init of the forge mod container
2014-12-28 14:28:51 -08:00
Lumien 9d34bbece7 Fixes #1603: Moving the start of the update thread to the pre init of the forge mod container 2014-12-28 22:49:31 +01:00
Chicken-Bones 0cbc685d3c Allow blocks to render in multiple layers 2014-12-26 15:45:00 +10:00
Lex Manos 0923c2c2b8 Fix recipies for stone variants. 2014-12-25 01:39:22 -08:00
LexManos 30e44e19e9 Merge pull request #1592 from palechip/1.8
Fix Scoreboard rendering for the sidebar.
2014-12-24 16:06:17 -08:00
Lex Manos 51271dcc3a Fix MC-30864 (sending web links in chat) 2014-12-23 15:04:41 -08:00
LexManos 58a458c250 Merge pull request #578 from HEmile/1.8
Fixed getEffectiveSide() for Netty Server threads
2014-12-23 14:15:41 -08:00
Lex Manos 7ddc5469b4 Fix crafting of non-oak fences/gates. 2014-12-23 14:14:40 -08:00
Lex Manos 3c936e88f2 Added chests to the ore dictionary. 2014-12-23 13:17:44 -08:00
Lex Manos 53275ff0ac Removed exclusion of white stained glass recipes in ore dictionary. 2014-12-23 12:15:40 -08:00
HEmile a7ff70eaa4 Fixed getEffectiveSide() for Netty Server threads 2014-12-23 20:26:37 +01:00
palechip f6dc40c07d Fix Scoreboard rendering for the sidebar. 2014-12-22 14:34:35 +01:00
Lex Manos 959eaf0218 Fix BlockSnapshots not firing correctly due to patch mixup in 1.8 update. Closes #1591 2014-12-21 18:55:46 -08:00
LexManos 005e0c8451 Merge pull request #1586 from Lunatrius/fix-chat-1.8
[1.8] Fixed messages not being added to the chat history
2014-12-18 14:13:33 -08:00
Lunatrius 7916a21682 Fixed messages not being added to the chat history and ClientCommandHandler not being called when sleeping. 2014-12-18 20:46:24 +01:00
Lex Manos ae1321b8c8 MinecraftForge/FML@5a4d362293 Finish removing marker in mapping entry names. FMLMissingMappingsEvent/FMLModIdMappingEvent should fire with correct names now. 2014-12-18 08:11:36 -08:00
Lex Manos 4aaabdd0e0 Fix incorrect logic in world change clumping. 2014-12-18 08:11:30 -08:00
Lex Manos 2096bcb5ab Finish removing marker in mapping entry names. FMLMissingMappingsEvent/FMLModIdMappingEvent should fire with correct names now. 2014-12-15 06:57:59 -08:00
Lex Manos 9d95952dc1 Remove our changes to Stitcher slot allocation. 2014-12-13 18:07:31 -08:00
Lex Manos fd859812eb MinecraftForge/FML@e3785c2893 Ensure that EntitySpawn and OpenGUI packets are handled in the world thread. Also log all errors that are thrown in FutureTasks. 2014-12-13 18:07:13 -08:00
Lex Manos e9dbc71362 Ensure that EntitySpawn and OpenGUI packets are handled in the world thread.
Also log all errors that are thrown in FutureTasks.
2014-12-13 17:45:38 -08:00
Lex Manos d8cb28911c Fix userdev for new BlockState change. 2014-12-12 14:42:49 -08:00
LexManos ca2d49b4cd Merge pull request #1518 from RainWarrior/model-event
Added model bake event, ISmartBlock/itemModel, Block.getExtendedState, IExtendedState and IUnlistedProperty
2014-12-12 12:44:05 -08:00
Lex Manos 0b41756125 Untie ItemModelMesher from using Item Ids internally by implementing our own simple mechanics using Trove. 2014-12-12 11:47:27 -08:00
Lex Manos ecd4a259ec Fix EnumHelper for new ArmorTexture argument. 2014-12-11 16:41:27 -08:00
Lex Manos bf66e45699 Fix texture stitcher not using all avalible spaces. 2014-12-11 16:40:48 -08:00
Lex Manos a6c6a79916 Fixed log spam when breaking DoublePlants. Closes #1555 2014-12-10 05:44:07 -08:00
Lex Manos 7c79a4226f Fix missed patch causing Dispensed Armor to go into the wrong slot. Closes #1560 2014-12-10 05:36:15 -08:00
Lex Manos 66018bd168 Make daylight sensor recipe use ore dictionary wooden slabs Closes #1565 2014-12-10 05:18:42 -08:00
Lex Manos 924db0ff03 Fixed NPE thrown when brewing event is fired and not all slots are filled. Closes #1564 2014-12-10 05:12:36 -08:00
Lex Manos 08960ffb7b Unbind Shaped/Shapeless Ore Recipies from Array list to normal List. 2014-12-08 05:03:43 -08:00
Lex Manos f9955efb08 Expand PlayerWakupEvent to expose the three parameters passed into EntityPlayer.wakeUp. 2014-12-07 05:48:26 -08:00
Lex Manos fd3f948e4c Improved Control of Enchantment.canApplyTogether() in Mod Enchantments, allowing both enchantments to determine if they can apply together. 2014-12-07 05:20:50 -08:00
Lex Manos 309fe700cd Changed ToolMaterial's repair material to ItemStack version to allow metadata sensitive versions. 2014-12-07 04:30:10 -08:00
Lex Manos 4cc11b220a Add quartz_ore tool init, more mojang special casing -.- 2014-12-07 03:41:53 -08:00
Lex Manos 27524a02ae Added PotionBrewEvent.Pre/Post. To allow for modification and cancelation of Brewing. 2014-12-07 03:30:10 -08:00
Lex Manos 44b21681e2 Add LivingHealEvent called from EntityLivingBase.heal() 2014-12-07 02:34:28 -08:00
Lex Manos f2b1622355 Added CreateSpawnPosition event. 2014-12-07 01:52:29 -08:00
Lex Manos 0c11a1544f Cleanup deprecated code, and TODOs in OreDictionary. Down-typed things from ArrayList to List. Asking for the ores with a null stack will now throw an Exception. 2014-12-07 01:50:26 -08:00
Lex Manos cf81ad7b15 Add "sand" to the OreDictionary 2014-12-07 00:44:29 -08:00
Lex Manos b417594e71 Fixed bug in ServerConfigurationManager.transferPlayerToDimension where it would send the old dimension's information. 2014-12-07 00:39:09 -08:00
Lex Manos 42938a1e7f Added Explosion Start and Detonate events to control explosion. 2014-12-07 00:28:41 -08:00
mezz 75c7862e78 Add GuiScreenEvents for keyboard and mouse input 2014-12-06 19:06:19 -08:00
Lumien 6f19fd1513 Save the mod list of players in their NetworkDispatcher (Make it accessable for mods) 2014-12-06 16:31:58 +01:00
RainWarrior 134fbaa1ff Added model bake event (allows mods to insert custom baked models, much like TextureStitchEvent allows to load custom textures), ISmartBlock/ItemModel (ability form models to react to block/item states), Block.getExtendedState, support for unlisted properties in block states. Includes example implementation of http://imgur.com/a/FyyJX 2014-12-04 14:16:30 +03:00
Lex Manos 1fc1570663 Only call blockBreak when block itself changes, not just meta. Fixes bottles poping out of brewing stands. 2014-12-02 21:40:50 -08:00
Lex Manos 07db77401d Fix finding of spawn location for mobs. Closes #1546 2014-12-02 21:37:15 -08:00
Lex Manos c683bce659 Remove debug patch I left in. 2014-12-01 19:17:11 -08:00
Lex Manos 59df94bd90 Updated FML:
MinecraftForge/FML@9c8ca4a4e3 Unlink banner block and item id. Mojang should of matched these up but they didn't -.-
MinecraftForge/FML@84a101f344 Update Dev mcp mappings to 11-30 snapshot.
2014-12-01 19:11:17 -08:00
Lex Manos 5b07c7fead Update Dev mcp mappings to 11-30 snapshot. 2014-12-01 18:28:18 -08:00
Lex Manos 7b2e7ac3c9 Unlink banner block and item id. Mojang should of matched these up but they didn't -.- 2014-12-01 18:00:28 -08:00
Lex Manos 4caf09cd33 Fix stickey pistons not retracting properly. 2014-12-01 14:53:30 -08:00
Lex Manos 6ff24351d3 Fixed blocks not breaking properly when instantly destroied. 2014-11-30 23:55:28 -08:00
Lex Manos 9f4ef7b38a Fixed vanilla issue where exceptions in World tasks would not be logged. 2014-11-30 23:55:04 -08:00
Lex Manos 7cc7056c57 Fix NPE with BlockSnapshots that caused items with TileEntities to be used up in creative mode. 2014-11-30 23:54:17 -08:00
Lex Manos 2a02804379 Fixed vanilla bug where top part of double plants would flicker a tifferent texture before dissapearing. 2014-11-30 23:50:56 -08:00
Lex Manos c539d5389a Fix BlockPane's connection detection. 2014-11-30 08:36:24 -08:00
Lex Manos b4779be2f6 Fixed snow layers not being able to stack more then twice. Closes #1534 2014-11-29 23:04:22 -08:00
Lex Manos cbcdbf56bb Fixed Entities not being able to climb ladders, Closes #1535 2014-11-29 23:03:55 -08:00
Lex Manos d6d4735a70 Fixed Entity extended properties init order. Closes #1532 2014-11-29 23:03:26 -08:00
Lex Manos 6bb769268f Fix interacting with entities. 2014-11-28 12:04:09 -08:00
Lex Manos 5de6cf571c Updated FML:
MinecraftForge/FML@36644e9771 Finalize modded handshakes in the World tick thread. Prevents potential CMEs when login event takes to long to fire.
2014-11-28 11:20:06 -08:00
Lex Manos f35a53bad5 Fix not being able to place blocks in liquids, and related issues. 2014-11-28 11:19:30 -08:00
Lex Manos 10efdbc085 Fix debug screen not showing grey background. Closes #1529 2014-11-28 11:18:59 -08:00
Lex Manos 4a92959cc1 Finalize modded handshakes in the World tick thread. Prevents potential CMEs when login event takes to long to fire. 2014-11-28 10:37:55 -08:00
Lex Manos dcefcc9047 Fix destroy particles not being added. Closes #1528 2014-11-28 08:31:14 -08:00
Lex Manos d48f4d0a94 Update RecipeSorter for new 1.8 recipies. 2014-11-28 08:20:10 -08:00
Lex Manos aa07fa4443 Fix potential NPE in Block.isToolEffective 2014-11-28 08:19:40 -08:00
Lex Manos d879b2c70d Fix wrong state being passed to Block.getDrops 2014-11-28 07:43:50 -08:00
Lex Manos 17e5480b6e Fix Entityies not taking damage correctly. Closes #1511 2014-11-28 07:43:10 -08:00
Lex Manos a059a9a7fb Fix inverted logic preventing blocks from breaking. 2014-11-28 07:10:37 -08:00
Lex Manos 8dc71d5ffa Fixed crash with caomparators due to wrong position. Closes #1512 2014-11-28 06:51:55 -08:00
Lex Manos b9c2968c0e Fix creative picking a CommandBlock minecart returning wrong item. Closes #1523 2014-11-28 06:09:33 -08:00
Lex Manos 0edeb1e04b Fix acedential inversion causing some tress to not have leaves. Closes #1522 2014-11-28 06:02:41 -08:00
Lex Manos dce17105ea Fix fog colors, Closes #1524 2014-11-28 06:01:03 -08:00
Lex Manos 277fc4ea7d Fix local variable conflict in Forge patch and latest MCP mappings. 2014-11-26 01:12:11 -08:00
Lex Manos 53659fca06 Initial update to 1.8, Super beta. Most rendering related hooks are out due to major changes in 1.8.
Some notes:
Almost all int x, int y, int z parameters have been changed to BlockPos class
ForgeDirection has been removed, replaced by net.minecraft.util.EnumFacing.
All FML classes have moved from packet cpw.mods.fml to net.minecraftforge.fml
Fluid Rendering has been disabled for the time being, to be re-evaulated and a test mod created for it.
Minecraft now uses a Model based system for rendering blocks and Items. The intention is to expand the model format to better suit modder's needed once it is evaulated.
As such, The model loaders from Forge have been removed, to be replaced by expanding vanilla's model format.
Metadata has been extracted out in Minecraft to IBlockState, which holds a list of properties instead of magic number metadata. DO NOT listen to the fearmongering, you can do EVERYTHING with block states you could previously with metadata.
Stencil Bits are disabled entirely by for the main Display, Modders must enable and recreate the FrameBuffer if they wish to use Stencil Bits.
2014-11-26 00:00:54 -08:00
Lex Manos 229848a4cb Add details message to MissingModsException and WrongMinecraftVersionException to make the Crash logs more useful. 2014-11-08 15:13:59 -08:00
Lex Manos 0dc112a198 Add duplicate protection to ModDiscoverer, do not process files in the mods directory if we already found them in the classpath. {Such as if LiteLoader is installed and added it} Closes #557 2014-11-05 15:27:43 -08:00
LexManos 27e1b65755 Merge pull request #547 from Parker8283/1.8
Re-enabled Entity-Render registration
2014-10-19 18:09:12 -07:00
Parker Young 2544df8e44 Re-enabled Entity-Render registration 2014-10-19 20:05:39 -04:00
LexManos a300935cbc Merge pull request #545 from bspkrs/1.8
changed pass-thru method name to fix MCP name conflict
2014-10-14 23:28:48 -07:00
bspkrs 7e53132918 changed pass-thru method name to fix MCP name conflict
fixed a few old javadoc object name mistakes
2014-10-15 02:08:41 -04:00
Lex Manos 878f995711 Add the ability to register custom variant names in ModelBakery. 2014-10-13 20:48:09 -07:00
Lex Manos 70b57c337a Removed unneeded rebuild, was toying with where to put it. 2014-10-09 05:22:50 -07:00
Lex Manos c002b98e5e Automatically register BlockStates when block is initally registered, and clear the list when new snapshots are injected. Modders DO NOT touch the registry in Block directly. Closes #537 2014-10-09 05:05:43 -07:00
Lex Manos cfaedc384a Update TerminalTransformer for new FML package. Closes #535 2014-10-06 00:53:38 -07:00
Lex Manos e4cdefb0e1 General class name cleanup, spelling mistakes and FF decompile issues. 2014-10-04 02:05:43 -07:00
Lex Manos 468d35e635 Take control over Item.BLOCK_TO_ITEM map and register Block's to this map from GameRegistry. 2014-10-03 17:48:57 -07:00
Lex Manos f759f73801 Renamed TileEntityRendererChestHelper -> TileEntityItemStackRenderer
This class is used to render any tile entities in a non-location specific major
  Such as EntityItems, In minecarts, Held by entities, anyhting that isn't in world.

Switched the class names for BiomeGenForest $1 and $2 as Fernflower decompiled
  them in oposite order.
2014-10-03 17:48:28 -07:00
LexManos fe552616bf Merge pull request #533 from AbrarSyed/patch-2
Added mappings to default build.gradle
2014-10-03 14:03:06 -07:00
Abrar Syed 20d78df6e6 added mappings to default build.gradle 2014-10-03 15:57:04 -05:00
Lex Manos 1b587948f8 Add joptsimple as a server required library. Closes #531 2014-10-01 11:26:06 -07:00
Lex Manos 10d3062fc6 Restructure block and item mapping data in world save and network to potentially expand to custom mod ID registry syncing. Tip: ONLY use those functions in GameData that are marked as public API as internal API may change in 1.8. 2014-10-01 01:07:23 -07:00
LexManos 27ea6bb6fa Merge pull request #527 from bspkrs/1.8
Update Config Gui stuff for 1.8
2014-09-30 13:05:00 -07:00
bspkrs 927df1559e Update Config Gui stuff for 1.8
updated mappings to snapshot 20140930
got rid of derpy generics code
2014-09-30 05:20:56 -04:00
Lex Manos 28ff001cc0 Move FML to net.minecraft.fml package. 2014-09-22 22:50:54 -07:00
Lex Manos 1f1166e722 Move vanilla trades to inner class to prevent initilizer order issues. 2014-09-22 19:30:14 -07:00
Lex Manos 511c370193 Preliminary network protocol re-work. vanilla clients can now connect. Further cleanup needed. 2014-09-22 19:29:40 -07:00
Lex Manos 1ac0c5d87f Inital 1.8 patch update. 'It compiles!' 2014-09-19 17:25:14 -07:00
Lex Manos ebb91ba280 1.8 Conf update. Uses MCPData Snapshots now. 2014-09-18 17:57:33 -07:00
1274 changed files with 63219 additions and 75031 deletions

No files matched your search

+2 -1
View File
@@ -4,6 +4,7 @@
*.java text eol=lf
*.gradle text eol=crlf
*.png binary
*.gif binary
*.exe binary
*.dll binary
*.jar binary
@@ -11,4 +12,4 @@
*.zip binary
*.pyd binary
*.cfg text eol=lf
*.py text eol=lf
*.py text eol=lf
+10 -2
View File
@@ -3,8 +3,12 @@
/.settings
/.classpath
#In case people make their workspace in the repo
/eclipse/
#idea
/.idea
/classes
*.iml
#gradle
@@ -12,12 +16,16 @@
/.gradle
#occupational hazards
/eclipse/
/projects/
/repo/
/buildSrc
#Patch rejects
*.rej
/patches-/
# FML changelog
changelog.txt
/patches_old/
/patches_old_bak/
*.py
*.7z
File renamed without changes.
File renamed without changes.
+483
View File
@@ -0,0 +1,483 @@
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.
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
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
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
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
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
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
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
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
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
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.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
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
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
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
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
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
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
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
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
+332 -72
View File
@@ -1,7 +1,6 @@
buildscript {
repositories {
mavenCentral()
mavenLocal()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
@@ -12,66 +11,240 @@ buildscript {
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT'
}
}
configurations {
deployJars
}
import static net.minecraftforge.gradle.dev.ForgeDevPlugin.*
apply plugin: 'maven'
apply plugin: 'forgedev'
repositories {
mavenLocal()
flatDir {
name "fileRepo"
dirs "repo"
}
maven {
name = "local"
url = "file:///home/cpw/projects/repo"
}
}
apply plugin: "maven"
apply plugin: "net.minecraftforge.gradle.patcher"
apply plugin: "net.minecraftforge.gradle.launch4j"
minecraft {
version = '1.7.10'
mcpVersion = '9.05'
fmlDir = projectDir.getAbsolutePath() + "/fml";
mainClass = 'cpw.mods.fml.relauncher.ServerLaunchWrapper'
tweakClass = 'cpw.mods.fml.common.launcher.FMLTweaker'
version = "1.9"
mappings = 'snapshot_nodoc_20160312'
//mappings = "snapshot_nodoc_20151122"
workspaceDir = "projects"
versionJson = "jsons/1.9-dev.json"
buildUserdev = true
buildInstaller = true
installerVersion = "1.4"
def common = {
patchPrefixOriginal "../src-base/minecraft"
patchPrefixChanged "../src-work/minecraft"
mainClassClient "net.minecraft.launchwrapper.Launch"
tweakClassClient "net.minecraftforge.fml.common.launcher.FMLTweaker"
mainClassServer "net.minecraft.launchwrapper.Launch"
tweakClassServer "net.minecraftforge.fml.common.launcher.FMLServerTweaker"
}
projects {
forge {
rootDir "."
patchDir "patches/minecraft"
patchAfter "clean"
genPatchesFrom "clean"
genMcpPatches = false
applyMcpPatches = false
with common
}
}
}
group = 'net.minecraftforge'
version = getVersionFromJava(getProject(), 'src/main/java/net/minecraftforge/common/ForgeVersion.java')
version = getVersionFromJava(file("src/main/java/net/minecraftforge/common/ForgeVersion.java"))
jenkins {
job = 'minecraftforge'
extractForgeSources { exclude "**/SideOnly.java", "**/Side.java" }
extractForgeResources { exclude "**/log4j2.xml" }
genGradleProjects { addTestCompileDep "junit:junit:4.12" }
processJson {
releaseJson = "jsons/1.9-rel.json"
addReplacements([
"@minecraft_version@": project.minecraft.version,
"@version@": project.version,
"@project@": "forge",
"@artifact@": "net.minecraftforge:forge:${project.version}",
"@universal_jar@": { outputJar.archiveName },
"@timestamp@": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
])
}
// crowdin stuff
if (project.hasProperty("crowdinKey"))
tasks.getLocalizations.apiKey = project.crowdinKey
task changelog(type: JenkinsChangelog) {
// skip if there is no forge jenkins pass
onlyIf {
project.hasProperty('forgeJenkinsPass')
// Not sure what abrar was trying to do here...
//project.file("build/distributions/${project.name}-${project.version}-changelog.txt").text = ""
}
outputs.upToDateWhen { false } // never up to date
serverRoot = "http://ci.jenkins.minecraftforge.net/"
jobName = "minecraftforge"
targetBuild = System.env['BUILD_NUMBER'] ?: 0;
authName = "console_script"
authPassword = project.hasProperty('forgeJenkinsPass') ? project.getProperty('forgeJenkinsPass') : "";
output = "build/distributions/${project.name}-${project.version}-changelog.txt"
}
task crowdin(type: CrowdinDownload) {
output = "build/crowdin.zip"
projectId = 'minecraft-forge'
extract = false // we wanna keep it as a zip. not extract it to a folder named "crowdin.zip"
// task auomatically skips if this is null
if (project.hasProperty('crowdinKey'))
apiKey = project.crowdinKey
}
def extraTxts = [
changelog, // yeah we can do thi, because gradle and groovy are awesome
"LICENSE-fml.txt",
"CREDITS-fml.txt",
"MinecraftForge-Credits.txt",
"MinecraftForge-License.txt",
"Paulscode SoundSystem CodecIBXM License.txt",
"Paulscode IBXM Library License.txt"
]
outputJar {
classifier = 'universal'
from extraTxts
// add crowdin locales
from { crowdin.getDidWork() ? zipTree(crowdin.output) : null}
dependsOn 'crowdin'
manifest.attributes([
"Main-Class": "net.minecraftforge.fml.relauncher.ServerLaunchWrapper",
"TweakClass": "net.minecraftforge.fml.common.launcher.FMLTweaker",
"Class-Path": getServerClasspath(file("jsons/${minecraft.version}-rel.json"))
])
}
installer {
classifier = 'installer'
from extraTxts
from "src/main/resources/forge_logo.png"
rename "forge_logo\\.png", "big_logo.png"
}
task signUniversal(type: SignJar, dependsOn: 'outputJar') {
onlyIf {
project.hasProperty('jarsigner')
}
def jarsigner = [:];
if (project.hasProperty('jarsigner'))
jarsigner = project.jarsigner;
alias = 'forge'
exclude "paulscode/**"
storePass = jarsigner.storepass
keyPass = jarsigner.keypass
keyStore = jarsigner.keystore
inputFile = outputJar.archivePath
outputFile = outputJar.archivePath
}
uploadArchives.dependsOn signUniversal
build.dependsOn signUniversal
installer.dependsOn signUniversal
// MDK package
import org.apache.tools.ant.filters.ReplaceTokens
task makeMdk(type: Zip) {
baseName = project.name
classifier = "mdk"
version = project.version
destinationDir = file('build/distributions')
from 'gradlew'
from 'gradlew.bat'
into ('gradle') {
from 'gradle'
}
into ('eclipse') {
from 'mdk/eclipse'
}
from changelog.output
from ('mdk') {
filter(ReplaceTokens, tokens: [
VERSION: project.version,
MAPPINGS: minecraft.mappings.replace('nodoc_', '')
])
exclude 'eclipse'
rename 'gitignore\\.txt', '.gitignore'
from 'MinecraftForge-Credits.txt'
from 'MinecraftForge-License.txt'
from 'Paulscode IBXM Library License.txt'
from 'Paulscode SoundSystem CodecIBXM License.txt'
from 'CREDITS-fml.txt'
from 'LICENSE-fml.txt'
}
}
tasks.build.dependsOn makeMdk
// launch4j
launch4j {
jar = installer.archivePath.canonicalPath
outfile = file("build/distributions/${project.name}-${project.version}-installer-win.exe").canonicalPath
icon = file('icon.ico').canonicalPath
manifest = file('l4jManifest.xml').canonicalPath
jreMinVersion = '1.6.0'
initialHeapPercent = 5;
maxHeapPercent = 100;
}
tasks.generateXmlConfig.dependsOn installer
tasks.build.dependsOn 'launch4j'
// MAVEN
artifacts {
archives changelog.output
archives file("build/distributions/${project.name}-${project.version}-installer-win.exe")
archives makeMdk
}
task ciWriteBuildNumber << {
def file = file("src/main/java/net/minecraftforge/common/ForgeVersion.java");
def bn = System.getenv("BUILD_NUMBER")?:0;
def outfile = "";
def ln = System.getProperty('line.separator')
file.eachLine{ String s ->
if (s.contains("buildVersion") && s.contains("= 0;")) {
s = " public static final int buildVersion = ${bn};";
}
outfile += (s+ln);
}
file.write(outfile);
}
uploadArchives {
repositories {
add getProject().repositories.mavenLocal()
}
repositories.mavenDeployer {
configuration = configurations.deployJars
if (project.hasProperty("filesmaven")) {
logger.info('Publishing to files server')
repository(url: project.filesmaven.url) {
authentication(userName: project.filesmaven.username, privateKey: project.filesmaven.key)
dependsOn 'build'
if (project.hasProperty('forgeMavenPass'))
{
repository(url: "http://files.minecraftforge.net/maven/manage/upload") {
authentication(userName: "forge", password: project.getProperty('forgeMavenPass')) // the elvis operator. look it up.
}
} else {
logger.info('Publishing to repo folder')
}
else
{
// local repo folder. Might wanna juset use gradle install if you wanans end it to maven-local
repository(url: 'file://localhost/' + project.file('repo').getAbsolutePath())
}
@@ -79,49 +252,136 @@ uploadArchives {
groupId = project.group
version = project.version
artifactId = project.archivesBaseName
}
pom.project {
name project.archivesBaseName
packaging 'jar'
description 'Minecraft Forge API'
url 'https://github.com/MinecraftForge/MinecraftForge'
scm {
project {
name project.archivesBaseName
packaging 'jar'
description 'Minecraft Forge API'
url 'https://github.com/MinecraftForge/MinecraftForge'
connection 'scm:git:git://github.com/MinecraftForge/MinecraftForge.git'
developerConnection 'scm:git:[email protected]:MinecraftForge/MinecraftForge.git'
}
issueManagement {
system 'github'
url 'https://github.com/MinecraftForge/MinecraftForge/issues'
}
scm {
url 'https://github.com/MinecraftForge/MinecraftForge'
connection 'scm:git:git://github.com/MinecraftForge/MinecraftForge.git'
developerConnection 'scm:git:[email protected]:MinecraftForge/MinecraftForge.git'
}
licenses {
license {
name 'Forge Public License'
url 'https://raw.github.com/MinecraftForge/MinecraftForge/master/MinecraftForge-License.txt'
distribution 'repo'
issueManagement {
system 'github'
url 'https://github.com/MinecraftForge/MinecraftForge/issues'
}
}
developers {
developer {
id 'cpw'
name 'cpw'
roles { role 'developer' }
licenses {
license {
name 'Forge Public License'
url 'https://raw.github.com/MinecraftForge/MinecraftForge/master/MinecraftForge-License.txt'
distribution 'repo'
}
}
developer {
id 'LexManos'
name 'Lex Manos'
roles { role 'developer' }
}
developer {
id 'AbrarSyed'
name 'Abrar Syed'
roles { role 'contributor' }
developers {
developer {
id 'cpw'
name 'cpw'
roles { role 'developer' }
}
developer {
id 'LexManos'
name 'Lex Manos'
roles { role 'developer' }
}
developer {
id 'AbrarSyed'
name 'Abrar Syed'
roles { role 'contributor' }
}
}
}
}
}
}
// HELPER METHODS
import groovy.json.JsonSlurper;
String getServerClasspath(File file)
{
def node = new JsonSlurper().parse(file);
def out = new StringBuilder()
node.versionInfo.libraries.each { lib ->
if (lib.serverreq)
{
// group : artifact : version
def split = lib.name.split(':')
def group = split[0].replace('.', '/')
def artifact = split[1]
def version = split[2]
out += "libraries/$group/$artifact/$version/$artifact-${version}.jar "
}
}
out += "minecraft_server.${minecraft.version}.jar"
return out.toString();
}
String getVersionFromJava(File file)
{
String major = "0";
String minor = "0";
String revision = "0";
String build = "0";
String prefix = "public static final int";
file.eachLine{ String s ->
s = s.trim();
if (s.startsWith(prefix))
{
s = s.substring(prefix.length(), s.length() - 1);
s = s.replace('=', ' ').replace("Version", "").replaceAll(" +", " ").trim();
String[] pts = s.split(" ");
if (pts[0].equals("major")) major = pts[pts.length - 1];
else if (pts[0] == "minor") minor = pts[pts.length - 1];
else if (pts[0] == "revision") revision = pts[pts.length - 1];
}
}
if (System.getenv().containsKey("BUILD_NUMBER"))
{
build = System.getenv("BUILD_NUMBER");
}
String branch = null;
if (!System.getenv().containsKey("GIT_BRANCH"))
{
// TODO: use grgit
branch = "git rev-parse --abbrev-ref HEAD".execute().text.trim()
}
else
{
branch = System.getenv("GIT_BRANCH");
branch = branch.substring(branch.lastIndexOf('/') + 1);
}
def out = "${minecraft.version.replace('-', '_')}-$major.$minor.$revision.$build"
if (branch && branch != 'master' && branch != 'HEAD')
out += "-$branch"
return out;
}
// re-add old tasks for jenkins compat
// should be remvoed, and the jenkisn fixed when no longer building with FG 1.2
task setupForge { dependsOn 'setup' }
task buildPackages { dependsOn 'build' }
//Temporary hack to fix compile errors caused by mappings shading in Bootstrap
task fixParams << {
logger.lifecycle('Fixing param names!')
def params = new File(extractMcpMappings.destinationDir, 'params.csv')
def text = params.text
text = text.replaceAll('p_82499_3_,stack,', 'p_82499_3_,stackIn,')
params.write(text)
}
fixParams.dependsOn('extractMcpMappings')
extractMcpMappings.finalizedBy('fixParams')
Binary file not shown.
-14
View File
@@ -1,14 +0,0 @@
* text eol=lf
*.bat text eol=crlf
*.patch text eol=lf
*.java text eol=lf
*.gradle text eol=crlf
*.png binary
*.exe binary
*.dll binary
*.jar binary
*.lzma binary
*.zip binary
*.pyd binary
*.cfg text eol=lf
*.py text eol=lf
-21
View File
@@ -1,21 +0,0 @@
#eclipse
/bin
/.settings
/.classpath
#idea
/.idea
*.iml
#gradle
/build
/buildSrc
/.gradle
#occupational hazards
/eclipse/
/repo/
#Patch reject
*.rej
-94
View File
@@ -1,94 +0,0 @@
This is Forge Mod Loader, or FML for short, by cpw.
More information can be found at https://github.com/MinecraftForge/FML/wiki
It is a clean reimplementation of a mod loading system for client and server.
It can be installed on its own, or as part of Minecraft Forge.
----------------------
About Forge Mod Loader
----------------------
Environments and compatibility
==============================
FML covers two main environments: client and server. All environments share
the main mod loading code base, with additional varying hooks based on the
specific environment.
There are some very visible changes to the client when FML is installed.
There are some bukkit compatibility hooks available, consult MCPC+, now known as Cauldron
for more information.
Minecraft Forge in all cases bundles FML as it's modloading technology of choice
because FML is open source, freely distributable, and can be easily updated by
contributors through github.
Notable integrations
====================
Optifine has FML compatibility. It varies from Optifine release to release, however
in general it will work well alongside an FML or
Minecraft Forge installation. FML will detect and ensure the good operation of
Optifine (you can see it in your client as an additional data line on the
bottom left).
Mod information
===============
FML exposes the mod information through a mod list visible on the main screen as
well as some small branding enhancements. For full data mods need to provide an
information file. This file is a standard format so hopefully tools providing
launch capabilities can also leverage this content.
-------------------------------
Binary installation information
-------------------------------
If you have downloaded a binary zip file you can install it as follows (client
or server):
Installation
============
To install on a server, simply execute the FML or Forge jar file, with a copy of
minecraft_server-@[email protected] placed in the same directory. FML will launch
it's patched copy.
To install on a client, run the installer by executing java -jar <installer>.jar.
It will identify the location of you minecraft installation (this can be customized)
and create a new profile "FML" there.
Forge Installation
==================
This code also ships as a part of Minecraft Forge. You do not need to install it
separately from your Minecraft Forge installation. Minecraft Forge contains the
exact same code as this. You should not install FML if you are also installing
Minecraft Forge.
-------------------------------------------
Source installation information for modders
-------------------------------------------
This code follows the Minecraft Forge installation methodology. It will apply
some small patches to the vanilla MCP source code, giving you and it access
to some of the data and functions you need to build a successful mod.
Note also that the patches are built against "unrenamed" MCP source code (aka
srgnames) - this means that you will not be able to read them directly against
normal code.
Source pack installation information:
Standalone source installation
==============================
To install this source code for development purposes, extract this zip file.
It ships with a demonstration mod. Run "gradle setupDevWorkspace" to create
a gradle environment primed with FML. Run gradle eclipse or gradle idea to
create an IDE workspace of your choice.
Refer to ForgeGradle for more information about the gradle environment
Forge source installation
=========================
MinecraftForge ships with this code and installs it as part of the forge
installation process, no further action is required on your part.
For reference this is version @MAJOR@.@MINOR@.@REV@.@BUILD@ of FML
for Minecraft version @MCVERSION@.
-111
View File
@@ -1,111 +0,0 @@
buildscript {
repositories {
mavenCentral()
mavenLocal()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
}
maven {
name = "sonatype"
url = "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
}
}
import static net.minecraftforge.gradle.dev.FmlDevPlugin.*
apply plugin: 'maven'
apply plugin: 'fmldev'
repositories {
flatDir {
name "fileRepo"
dirs "repo"
}
}
minecraft {
version = '1.7.10'
mcpVersion = '9.05'
fmlDir = projectDir.getAbsolutePath();
mainClass = 'cpw.mods.fml.relauncher.ServerLaunchWrapper'
tweakClass = 'cpw.mods.fml.common.launcher.FMLTweaker'
installerVersion = "1.4"
}
group = 'net.minecraftforge'
version = getVersionFromGit(getProject())
jenkins {
job = 'fml'
}
uploadArchives {
repositories {
if (project.hasProperty("filesmaven")) {
logger.info('Publishing to files server')
mavenDeployer {
configuration = configurations.deployJars
repository(url: project.filesmaven.url) {
authentication(userName: project.filesmaven.username, privateKey: project.filesmaven.key)
}
pom {
groupId = project.group
version = project.version
artifactId = project.archivesBaseName
project {
name project.archivesBaseName
packaging 'jar'
description 'ForgeModLoader'
url 'https://github.com/MinecraftForge/FML'
scm {
url 'https://github.com/MinecraftForge/FML'
connection 'scm:git:git://github.com/MinecraftForge/FML.git'
developerConnection 'scm:git:[email protected]:MinecraftForge/FML.git'
}
issueManagement {
system 'github'
url 'https://github.com/MinecraftForge/FML/issues'
}
licenses {
license {
name 'GNU Lesser Public License (LGPL), Version 2.1'
url 'http://www.gnu.org/licenses/lgpl-2.1.txt'
distribution 'repo'
}
}
developers {
developer {
id 'cpw'
name 'cpw'
roles { role 'developer' }
}
developer {
id 'LexManos'
name 'Lex Manos'
roles { role 'developer' }
}
}
}
}
}
} else {
logger.info('Publishing to repo folder')
mavenDeployer {
repository(url: 'file://localhost/' + project.file('repo').getAbsolutePath())
}
}
}
}
-19
View File
@@ -1,19 +0,0 @@
# Artistic Style format configuration
# see http://astyle.sourceforge.net/astyle.html
style=allman
add-brackets
break-closing-brackets
indent-switches
max-instatement-indent=40
pad-oper
pad-header
unpad-paren
break-blocks
delete-empty-lines
File diff suppressed because it is too large. Load diff
-4317
View File
File diff suppressed because it is too large. Load diff
-3543
View File
File diff suppressed because it is too large. Load diff
-22006
View File
File diff suppressed because it is too large. Load diff
-165
View File
@@ -1,165 +0,0 @@
[DEFAULT]
DirTemp = temp
DirSrc = src
DirLogs = logs
DirBin = bin
DirJars = jars
DirReobf = reobf
DirConf = conf
DirRuntime = runtime
DirLib = lib
DirTempSrc = temp/src
DirTempCls = temp/cls
DirTempBin = temp/bin
DirModSrc = modsrc
DirEclipse = eclipse
[CSV]
Classes = %(DirConf)s/classes.csv
Methods = %(DirConf)s/methods.csv
Fields = %(DirConf)s/fields.csv
Params = %(DirConf)s/params.csv
NewIds = %(DirConf)s/newids.csv
[SRGS]
ConfClient = %(DirConf)s/client.srg
ConfServer = %(DirConf)s/server.srg
Client = %(DirTemp)s/client_rg.srg
Server = %(DirTemp)s/server_rg.srg
DeobfClient = %(DirTemp)s/client_deobf.srg
DeobfServer = %(DirTemp)s/server_deobf.srg
ReobfClient = %(DirTemp)s/client_ro.srg
ReobfServer = %(DirTemp)s/server_ro.srg
ReobfClientSrg = %(DirTemp)s/client_ro_srg.srg
ReobfServerSrg = %(DirTemp)s/server_ro_srg.srg
[JAR]
DirNatives = %(DirJars)s/bin/natives
Client = %(DirJars)s/bin/minecraft.jar
Server = %(DirJars)s/minecraft_server.jar
LWJGL = %(DirJars)s/bin/jinput.jar,%(DirJars)s/bin/lwjgl.jar,%(DirJars)s/bin/lwjgl_util.jar
MD5Client = 595007b790548806f66762507203b896
MD5Server = a1de2db50b0d8bfac45be3e01e54bddf
[RETROGUARD]
Location = %(DirRuntime)s/bin/retroguard.jar
RetroConf = %(DirTemp)s/retroguard.cfg
RetroReobConf = %(DirTemp)s/retroguard_ro.cfg
ClientConf = %(DirTemp)s/client_rg.cfg
ServerConf = %(DirTemp)s/server_rg.cfg
ClientReobConf = %(DirTemp)s/client_ro.cfg
ServerReobConf = %(DirTemp)s/server_ro.cfg
ClientOut = %(DirTemp)s/minecraft_rg.jar
ServerOut = %(DirTemp)s/minecraft_server_rg.jar
ClientLog = %(DirLogs)s/client_rg.log
ServerLog = %(DirLogs)s/server_rg.log
ClientDeobLog = %(DirLogs)s/client_deob.log
ServerDeobLog = %(DirLogs)s/server_deob.log
NullPkg = net/minecraft/src
[EXCEPTOR]
XClientJson = %(DirConf)s/exceptor.json
XServerJson = %(DirConf)s/exceptor.json
XClientCfg = %(DirConf)s/joined.exc
XServerCfg = %(DirConf)s/joined.exc
XClientOut = %(DirTemp)s/minecraft_exc.jar
XServerOut = %(DirTemp)s/minecraft_server_exc.jar
XClientLog = %(DirLogs)s/client_exc.log
XServerLog = %(DirLogs)s/server_exc.log
[DECOMPILE]
ClsClientTemp = %(DirTempCls)s/minecraft
ClsServerTemp = %(DirTempCls)s/minecraft_server
SrcClientTemp = %(DirTempSrc)s/minecraft
SrcServerTemp = %(DirTempSrc)s/minecraft_server
FFSource = net
FFClientIn = %(DirTemp)s/minecraft_ff_in.jar
FFServerIn = %(DirTemp)s/minecraft_server_ff_in.jar
[OUTPUT]
BinClientTemp = %(DirTempBin)s/minecraft
BinServerTemp = %(DirTempBin)s/minecraft_server
SrcClient = %(DirSrc)s/minecraft
SrcServer = %(DirSrc)s/minecraft_server
TestClient = net/minecraft/client/main/Main
TestServer = net/minecraft/server/MinecraftServer
[PATCHES]
PatchClient = %(DirConf)s/patches/minecraft.patch
PatchServer = %(DirConf)s/patches/minecraft_server.patch
PatchTemp = %(DirTemp)s/temp.patch
FFPatchClient = %(DirConf)s/patches/minecraft_ff.patch
FFPatchServer = %(DirConf)s/patches/minecraft_server_ff.patch
PatchClient_osx = %(DirConf)s/patches/minecraft_osx.patch
PatchServer_osx = %(DirConf)s/patches/minecraft_server_osx.patch
[RECOMPILE]
BinClient = %(DirBin)s/minecraft
BinServer = %(DirBin)s/minecraft_server
LogClient = %(DirLogs)s/client_compile.log
LogServer = %(DirLogs)s/server_compile.log
ClassPathClient = %(DirLib)s/,%(DirLib)s/*,%(DirJars)s/bin/minecraft.jar,%(DirJars)s/bin/jinput.jar,%(DirJars)s/bin/lwjgl.jar,%(DirJars)s/bin/lwjgl_util.jar
ClassPathServer = %(DirLib)s/,%(DirLib)s/*,%(DirJars)s/minecraft_server.jar
ClientFixes = %(DirConf)s/patches
FixStart = Start
IgnorePkg = paulscode,com,isom,ibxm,de/matthiasmann/twl,org,javax,argo,gnu,io/netty
[REOBF]
MD5Client = %(DirTemp)s/client.md5
MD5Server = %(DirTemp)s/server.md5
MD5PreReobfClient = %(DirTemp)s/client_reobf.md5
MD5PreReobfServer = %(DirTemp)s/server_reobf.md5
RecompJarClient = %(DirTemp)s/client_recomp.jar
RecompJarServer = %(DirTemp)s/server_recomp.jar
ObfJarClient = %(DirTemp)s/client_reobf.jar
ObfJarServer = %(DirTemp)s/server_reobf.jar
ReobfDirClient = %(DirReobf)s/minecraft
ReobfDirServer = %(DirReobf)s/minecraft_server
ClientRoLog = %(DirLogs)s/client_ro.log
ServerRoLog = %(DirLogs)s/server_ro.log
ReobfClientLog = %(DirLogs)s/client_reob.log
ReobfServerLog = %(DirLogs)s/server_reob.log
[GETMODSOURCE]
OutSRCClient = %(DirModSrc)s/minecraft
OutSRCServer = %(DirModSrc)s/minecraft_server
[MCP]
LogFile = %(DirLogs)s/mcp.log
LogFileErr = %(DirLogs)s/mcperr.log
UpdateUrl = http://mcp.ocean-labs.de/files/mcprolling_{version}/
IgnoreUpdate = %(DirBin)s,%(DirLib)s,%(DirLogs)s,%(DirModSrc)s,%(DirReobf)s,%(DirSrc)s,%(DirTemp)s,%(DirEclipse)s/Client/bin,%(DirEclipse)s/Server/bin,%(DirJars)s/world,%(DirJars)s/saves,%(DirJars)s/resources
RGIndex = 154000
ParamIndex = 45000
[ASTYLE]
AstyleConfig = %(DirConf)s/astyle.cfg
[COMMANDS]
Wine = wine
Patcher_win = %(DirRuntime)s/bin/applydiff.exe
Patcher_linux = patch
Patcher_osx = patch
Jad_win = %(DirRuntime)s/bin/jad.exe
Jad_osx = %(DirRuntime)s/bin/jad-osx
AStyle_win = %(DirRuntime)s/bin/astyle.exe
AStyle_linux = astyle
AStyle_osx = %(DirRuntime)s/bin/astyle-osx
JadRetro = %(DirRuntime)s/bin/jadretro.jar
Fernflower = %(DirRuntime)s/bin/fernflower.jar
Exceptor = %(DirRuntime)s/bin/mcinjector.jar
SpecialSource = %(DirRuntime)s/bin/specialsource.jar
CmdPatch = %s -p1 -u -i {patchfile} -d {srcdir}
CmdJad = %s -b -d {outdir} -dead -o -r -s .java -stat -ff {classes}
CmdAStyle = %s --suffix=none --quiet --options={conffile} {classes}
CmdRG = %s -cp "{classpath}" RetroGuard -searge {conffile}
CmdRGReobf = %s -cp "{classpath}" RetroGuard -notch {conffile}
CmdSS = %s -cp "{classpath}" -jar %s -i {injar} -o {outjar} -m {mapfile} --kill-source
CmdSSReobf = %s -cp "{classpath}" -jar %s -i {injar} -o {outjar} -r -m {mapfile} -d {identifier} -e %s
CmdJadretro = %s -jar %s {targetdir}
CmdFernflower = %s -jar %s -din=1 -rbr=0 -dgs=1 -asc=1 -log=WARN {indir} {outdir}
CmdExceptor = %s -jar %s --jarIn {input} --jarOut {output} --mapIn {conf} --log {log} --jsonIn {json} --applyMarkers
CmdRecomp = %s -Xlint:-options -deprecation -g -source 1.6 -target 1.6 -classpath "{classpath}" -sourcepath {sourcepath} -d {outpath} {pkgs}
CmdRecompScala = %s -encoding UTF-8 -deprecation -target:jvm-1.6 -classpath "{classpath}" -sourcepath {sourcepath} -d {outpath} {pkgs}
CmdStartSrv = %s -Xincgc -Xms1024M -Xmx1024M -cp "{classpath}" net.minecraft.server.MinecraftServer
CmdStartClt = %s -Xincgc -Xms1024M -Xmx1024M -cp "{classpath}" -Djava.library.path={natives} Start
-4224
View File
File diff suppressed because it is too large. Load diff
-1
View File
@@ -1 +0,0 @@
param,name,side
1 param name side
-114
View File
@@ -1,114 +0,0 @@
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.Arrays;
import joptsimple.ArgumentAcceptingOptionSpec;
import joptsimple.OptionParser;
import joptsimple.OptionSet;
import net.minecraft.client.Minecraft;
import net.minecraft.client.main.Main;
public class Start
{
public static void main(String[] args) throws Exception
{
int userIndex = -1;
int passIndex = -1;
int sessIndex = -1;
int versIndex = -1;
for( int x = 0; x < args.length; x++)
{
if (args[x].equals("--username")) userIndex = x + 1;
else if (args[x].equals("--password")) passIndex = x + 1;
else if (args[x].equals("--session")) sessIndex = x + 1;
else if (args[x].equals("--version")) versIndex = x + 1;
}
if (userIndex != 0-1 && passIndex != -1 && sessIndex == -1)
{
String[] session = getSession(args[userIndex], args[passIndex]);
if (session != null)
{
args[userIndex] = session[0];
args = concat(args, new String[]{"--session", session[1]});
}
}
//Kill the password if its there so it isn't printed to the console.
if (passIndex != -1)
{
args[passIndex-1] = "no_password_for_joo";
args[passIndex] = "no_password_for_joo";
}
if (versIndex == -1)
{
args = concat(args, new String[]{ "--version", "fml_mcp" });
}
Main.main(args);
}
private static String[] getSession(String username, String password) throws UnsupportedEncodingException
{
String parameters = "http://login.minecraft.net/?user=" + URLEncoder.encode(username, "UTF-8") +
"&password=" + URLEncoder.encode(password, "UTF-8") +
"&version=" + 13;
String result = openUrl(parameters);
if (result == null)
{
System.out.println("Can't connect to minecraft.net");
return null;
}
if (!result.contains(":"))
{
System.out.println("Login Failed: " + result);
return null;
}
String[] values = result.split(":");
return new String[]{ values[2].trim(), values[3].trim() };
}
private static String openUrl(String addr)
{
try
{
URL url = new URL(addr);
java.io.InputStream is;
is = url.openConnection().getInputStream();
java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(is));
String buf = "";
String line = null;
while ((line = reader.readLine()) != null)
{
buf += "\n" + line;
}
reader.close();
return buf;
}
catch (IOException e)
{
e.printStackTrace();
}
return null;
}
private static <T> T[] concat(T[] first, T[] second)
{
T[] result = Arrays.copyOf(first, first.length + second.length);
System.arraycopy(second, 0, result, first.length, second.length);
return result;
}
}
@@ -1,22 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net\minecraft\client\Minecraft.java
--- minecraft\net\minecraft\client\Minecraft.java
+++ minecraft_patched\net\minecraft\client\Minecraft.java
@@ -695,9 +695,7 @@
while(true) {
try {
- if(!this.field_71425_J) {
- break;
- }
+ while(this.field_71425_J) {
if(!this.field_71434_R || this.field_71433_S == null) {
try {
@@ -711,6 +709,7 @@
}
this.func_71377_b(this.field_71433_S);
+ }
} catch (MinecraftError var12) {
break;
} catch (ReportedException var13) {
@@ -1,12 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net\minecraft\client\Minecraft.java
--- minecraft\net\minecraft\client\Minecraft.java
+++ minecraft_patched\net\minecraft\client\Minecraft.java
@@ -695,7 +695,7 @@
while(true) {
try {
- if(this.field_71425_J) {
+ while(this.field_71425_J) {
if(!this.field_71434_R || this.field_71433_S == null) {
try {
this.func_71411_J();
@@ -1,21 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\client\gui\FontRenderer.java minecraft_patched\net\minecraft\client\gui\FontRenderer.java
--- minecraft\net\minecraft\client\gui\FontRenderer.java
+++ minecraft_patched\net\minecraft\client\gui\FontRenderer.java
@@ -581,8 +581,6 @@
case 10:
--var5;
break;
- case 32:
- var6 = var5;
case 167:
if(var5 < var3 - 1) {
++var5;
@@ -596,6 +594,8 @@
}
}
break;
+ case 32:
+ var6 = var5;
default:
var4 += this.func_78263_a(var8);
if(var7) {
@@ -1,11 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\client\network\NetHandlerHandshakeMemory.java minecraft_patched\net\minecraft\client\network\NetHandlerHandshakeMemory.java
--- minecraft\net\minecraft\client\network\NetHandlerHandshakeMemory.java
+++ minecraft_patched\net\minecraft\client\network\NetHandlerHandshakeMemory.java
@@ -31,6 +31,7 @@
switch(NetHandlerHandshakeMemory.SwitchEnumConnectionState.field_151263_a[p_147232_2_.ordinal()]) {
case 1:
this.field_147384_b.func_150719_a(new NetHandlerLoginServer(this.field_147385_a, this.field_147384_b));
+ break;
case 2:
throw new UnsupportedOperationException("NYI");
default:
@@ -1,23 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\client\particle\EffectRenderer.java minecraft_patched\net\minecraft\client\particle\EffectRenderer.java
--- minecraft\net\minecraft\client\particle\EffectRenderer.java
+++ minecraft_patched\net\minecraft\client\particle\EffectRenderer.java
@@ -53,7 +53,8 @@
}
public void func_78868_a() {
- for(final int var1 = 0; var1 < 4; ++var1) {
+ for(int var11 = 0; var11 < 4; ++var11) {
+ final int var1 = var11;
for(int var2 = 0; var2 < this.field_78876_b[var1].size(); ++var2) {
final EntityFX var3 = (EntityFX)this.field_78876_b[var1].get(var2);
@@ -99,7 +100,8 @@
EntityFX.field_70554_ao = p_78874_1_.field_70137_T + (p_78874_1_.field_70163_u - p_78874_1_.field_70137_T) * (double)p_78874_2_;
EntityFX.field_70555_ap = p_78874_1_.field_70136_U + (p_78874_1_.field_70161_v - p_78874_1_.field_70136_U) * (double)p_78874_2_;
- for(final int var8 = 0; var8 < 3; ++var8) {
+ for(int var88 = 0; var88 < 3; ++var88) {
+ final int var8 = var88;
if(!this.field_78876_b[var8].isEmpty()) {
switch(var8) {
case 0:
@@ -1,33 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\client\renderer\RenderBlocks.java minecraft_patched\net\minecraft\client\renderer\RenderBlocks.java
--- minecraft\net\minecraft\client\renderer\RenderBlocks.java
+++ minecraft_patched\net\minecraft\client\renderer\RenderBlocks.java
@@ -1929,16 +1929,16 @@
float var24 = (float)(p_147788_2_ + 1);
float var25 = (float)(p_147788_4_ + 0);
float var26 = (float)(p_147788_4_ + 1);
- boolean var27 = false;
+ int var27 = 0;
if((var19 || var20) && !var21 && !var22) {
- var27 = true;
+ var27 = 1;
}
if((var21 || var22) && !var20 && !var19) {
- var27 = true;
+ var27 = 2;
}
- if(!var27) {
+ if(var27 == 0) {
int var28 = 0;
int var29 = 0;
int var30 = 16;
@@ -1985,7 +1985,7 @@
var5.func_78374_a((double)var24, (double)p_147788_3_ + 0.015625D, (double)var25, (double)var9.func_94214_a((double)var30), (double)var9.func_94207_b((double)var29));
var5.func_78374_a((double)var23, (double)p_147788_3_ + 0.015625D, (double)var25, (double)var9.func_94214_a((double)var28), (double)var9.func_94207_b((double)var29));
var5.func_78374_a((double)var23, (double)p_147788_3_ + 0.015625D, (double)var26, (double)var9.func_94214_a((double)var28), (double)var9.func_94207_b((double)var31));
- } else if(var27) {
+ } else if(var27 == 1) {
var5.func_78374_a((double)var24, (double)p_147788_3_ + 0.015625D, (double)var26, (double)var8.func_94212_f(), (double)var8.func_94210_h());
var5.func_78374_a((double)var24, (double)p_147788_3_ + 0.015625D, (double)var25, (double)var8.func_94212_f(), (double)var8.func_94206_g());
var5.func_78374_a((double)var23, (double)p_147788_3_ + 0.015625D, (double)var25, (double)var8.func_94209_e(), (double)var8.func_94206_g());
@@ -1,12 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\client\renderer\RenderGlobal.java minecraft_patched\net\minecraft\client\renderer\RenderGlobal.java
--- minecraft\net\minecraft\client\renderer\RenderGlobal.java
+++ minecraft_patched\net\minecraft\client\renderer\RenderGlobal.java
@@ -1566,7 +1566,7 @@
double var15 = this.field_72777_q.field_71451_h.field_70165_t - p_72726_2_;
double var17 = this.field_72777_q.field_71451_h.field_70163_u - p_72726_4_;
double var19 = this.field_72777_q.field_71451_h.field_70161_v - p_72726_6_;
- Object var21 = null;
+ EntityFX var21 = null;
if(p_72726_1_.equals("hugeexplosion")) {
this.field_72777_q.field_71452_i.func_78873_a(var21 = new EntityHugeExplodeFX(this.field_72769_h, p_72726_2_, p_72726_4_, p_72726_6_, p_72726_8_, p_72726_10_, p_72726_12_));
} else if(p_72726_1_.equals("largeexplode")) {
@@ -1,30 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\client\renderer\texture\TextureManager.java minecraft_patched\net\minecraft\client\renderer\texture\TextureManager.java
--- minecraft\net\minecraft\client\renderer\texture\TextureManager.java
+++ minecraft_patched\net\minecraft\client\renderer\texture\TextureManager.java
@@ -72,13 +72,14 @@
public boolean func_110579_a(ResourceLocation p_110579_1_, final ITextureObject p_110579_2_) {
boolean var3 = true;
-
+ ITextureObject p_110579_2_2 = p_110579_2_;
+
try {
((ITextureObject)p_110579_2_).func_110551_a(this.field_110582_d);
} catch (IOException var8) {
field_147646_a.warn("Failed to load texture: " + p_110579_1_, var8);
- p_110579_2_ = TextureUtil.field_111001_a;
- this.field_110585_a.put(p_110579_1_, p_110579_2_);
+ p_110579_2_2 = TextureUtil.field_111001_a;
+ this.field_110585_a.put(p_110579_1_, p_110579_2_2);
var3 = false;
} catch (Throwable var9) {
CrashReport var5 = CrashReport.func_85055_a(var9, "Registering texture");
@@ -95,7 +96,7 @@
throw new ReportedException(var5);
}
- this.field_110585_a.put(p_110579_1_, p_110579_2_);
+ this.field_110585_a.put(p_110579_1_, p_110579_2_2);
return var3;
}
@@ -1,12 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\client\resources\FolderResourcePack.java minecraft_patched\net\minecraft\client\resources\FolderResourcePack.java
--- minecraft\net\minecraft\client\resources\FolderResourcePack.java
+++ minecraft_patched\net\minecraft\client\resources\FolderResourcePack.java
@@ -31,7 +31,7 @@
HashSet var1 = Sets.newHashSet();
File var2 = new File(this.field_110597_b, "assets/");
if(var2.isDirectory()) {
- File[] var3 = var2.listFiles(DirectoryFileFilter.DIRECTORY);
+ File[] var3 = var2.listFiles((java.io.FileFilter)DirectoryFileFilter.DIRECTORY);
int var4 = var3.length;
for(int var5 = 0; var5 < var4; ++var5) {
@@ -1,34 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\inventory\ContainerPlayer.java minecraft_patched\net\minecraft\inventory\ContainerPlayer.java
--- minecraft\net\minecraft\inventory\ContainerPlayer.java
+++ minecraft_patched\net\minecraft\inventory\ContainerPlayer.java
@@ -29,7 +29,7 @@
this.field_82862_h = p_i1819_3_;
this.func_75146_a(new SlotCrafting(p_i1819_1_.field_70458_d, this.field_75181_e, this.field_75179_f, 0, 144, 36));
- final int var4;
+ int var4;
int var5;
for(var4 = 0; var4 < 2; ++var4) {
for(var5 = 0; var5 < 2; ++var5) {
@@ -38,6 +38,7 @@
}
for(var4 = 0; var4 < 4; ++var4) {
+ final int var44 = var4;
this.func_75146_a(new Slot(p_i1819_1_, p_i1819_1_.func_70302_i_() - 1 - var4, 8, 8 + var4 * 18) {
private static final String __OBFID = "CL_00001755";
@@ -46,11 +47,11 @@
return 1;
}
public boolean func_75214_a(ItemStack p_75214_1_) {
- return p_75214_1_ == null?false:(p_75214_1_.func_77973_b() instanceof ItemArmor?((ItemArmor)p_75214_1_.func_77973_b()).field_77881_a == var4:(p_75214_1_.func_77973_b() != Item.func_150898_a(Blocks.field_150423_aK) && p_75214_1_.func_77973_b() != Items.field_151144_bL?false:var4 == 0));
+ return p_75214_1_ == null?false:(p_75214_1_.func_77973_b() instanceof ItemArmor?((ItemArmor)p_75214_1_.func_77973_b()).field_77881_a == var44:(p_75214_1_.func_77973_b() != Item.func_150898_a(Blocks.field_150423_aK) && p_75214_1_.func_77973_b() != Items.field_151144_bL?false:var44 == 0));
}
@SideOnly(Side.CLIENT)
public IIcon func_75212_b() {
- return ItemArmor.func_94602_b(var4);
+ return ItemArmor.func_94602_b(var44);
}
});
}
@@ -1,14 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\network\PacketBuffer.java minecraft_patched\net\minecraft\network\PacketBuffer.java
--- minecraft\net\minecraft\network\PacketBuffer.java
+++ minecraft_patched\net\minecraft\network\PacketBuffer.java
@@ -713,10 +713,4 @@
public boolean release(int p_release_1_) {
return this.field_150794_a.release(p_release_1_);
}
-
- // $FF: synthetic method
- // $FF: bridge method
- public int compareTo(Object p_compareTo_1_) {
- return this.compareTo((ByteBuf)p_compareTo_1_);
- }
}
@@ -1,11 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\world\storage\ThreadedFileIOBase.java minecraft_patched\net\minecraft\world\storage\ThreadedFileIOBase.java
--- minecraft\net\minecraft\world\storage\ThreadedFileIOBase.java
+++ minecraft_patched\net\minecraft\world\storage\ThreadedFileIOBase.java
@@ -21,6 +21,7 @@
}
public void run() {
+ while(true)
this.func_75736_b();
}
-4
View File
@@ -1,4 +0,0 @@
[VERSION]
MCPVersion = 9.05
ClientVersion = 1.7.10
ServerVersion = 1.7.10
Binary file not shown.
Binary file not shown.
Vendored
-164
View File
@@ -1,164 +0,0 @@
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >&-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
-90
View File
@@ -1,90 +0,0 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windowz variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
-37
View File
@@ -1,37 +0,0 @@
-------------------------------------------
Source installation information for modders
-------------------------------------------
This code follows the Minecraft Forge installation methodology. It will apply
some small patches to the vanilla MCP source code, giving you and it access
to some of the data and functions you need to build a successful mod.
Note also that the patches are built against "unrenamed" MCP source code (aka
srgnames) - this means that you will not be able to read them directly against
normal code.
Source pack installation information:
Standalone source installation
==============================
To install this source code for development purposes, extract this zip file.
It ships with a demonstration mod. Run 'gradlew setupDevWorkspace' to create
a gradle environment primed with FML. Run 'gradlew eclipse' or 'gradlew idea' to
create an IDE workspace of your choice.
Refer to ForgeGradle for more information about the gradle environment
Note: On macs or linux you run the './gradlew.sh' instead of 'gradlew'
Forge source installation
=========================
MinecraftForge ships with this code and installs it as part of the forge
installation process, no further action is required on your part.
For reference this is version @MAJOR@.@MINOR@.@REV@.@BUILD@ of FML
for Minecraft version @MCVERSION@.
LexManos' Install Video
=======================
https://www.youtube.com/watch?v=8VEdtQLuLO0&feature=youtu.be
For more details update more often refer to the Forge Forums:
http://www.minecraftforge.net/forum/index.php/topic,14048.0.html
-9
View File
@@ -1,9 +0,0 @@
^org/bouncycastle
^org/apache
^com/google
^com/mojang/authlib
^com/mojang/util
^gnu/trove
^io/netty
^javax/annotation
^argo
@@ -1,27 +0,0 @@
--- ../src-base/minecraft/net/minecraft/block/Block.java
+++ ../src-work/minecraft/net/minecraft/block/Block.java
@@ -1,5 +1,6 @@
package net.minecraft.block;
+import cpw.mods.fml.common.registry.GameData;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Iterator;
@@ -32,7 +33,7 @@
public class Block
{
- public static final RegistryNamespaced field_149771_c = new RegistryNamespacedDefaultedByKey("air");
+ public static final RegistryNamespaced field_149771_c = GameData.getBlockRegistry();
private CreativeTabs field_149772_a;
protected String field_149768_d;
public static final Block.SoundType field_149769_e = new Block.SoundType("stone", 1.0F, 1.0F);
@@ -102,6 +103,8 @@
protected IIcon field_149761_L;
private static final String __OBFID = "CL_00000199";
+ public final cpw.mods.fml.common.registry.RegistryDelegate<Block> delegate =
+ ((cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry)field_149771_c).getDelegate(this, Block.class);
public static int func_149682_b(Block p_149682_0_)
{
return field_149771_c.func_148757_b(p_149682_0_);
@@ -1,17 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/ClientBrandRetriever.java
+++ ../src-work/minecraft/net/minecraft/client/ClientBrandRetriever.java
@@ -1,5 +1,6 @@
package net.minecraft.client;
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -10,6 +11,6 @@
public static String getClientModName()
{
- return "vanilla";
+ return FMLCommonHandler.instance().getModName();
}
}
@@ -1,26 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/LoadingScreenRenderer.java
+++ ../src-work/minecraft/net/minecraft/client/LoadingScreenRenderer.java
@@ -1,5 +1,6 @@
package net.minecraft.client;
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.Gui;
@@ -138,6 +139,8 @@
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
}
+ if (!FMLClientHandler.instance().handleLoadingScreen(scaledresolution))
+ {
Tessellator tessellator = Tessellator.field_78398_a;
this.field_73725_b.func_110434_K().func_110577_a(Gui.field_110325_k);
float f = 32.0F;
@@ -175,6 +178,7 @@
OpenGlHelper.func_148821_a(770, 771, 1, 0);
this.field_73725_b.field_71466_p.func_78261_a(this.field_73726_c, (l - this.field_73725_b.field_71466_p.func_78256_a(this.field_73726_c)) / 2, i1 / 2 - 4 - 16, 16777215);
this.field_73725_b.field_71466_p.func_78261_a(this.field_73727_a, (l - this.field_73725_b.field_71466_p.func_78256_a(this.field_73727_a)) / 2, i1 / 2 - 4 + 8, 16777215);
+ }
this.field_146588_g.func_147609_e();
if (OpenGlHelper.func_148822_b())
@@ -1,199 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/Minecraft.java
+++ ../src-work/minecraft/net/minecraft/client/Minecraft.java
@@ -9,6 +9,9 @@
import com.google.common.util.concurrent.ListenableFutureTask;
import com.mojang.authlib.minecraft.MinecraftSessionService;
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
+import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.StartupQuery;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.util.concurrent.GenericFutureListener;
@@ -169,6 +172,8 @@
import org.lwjgl.opengl.PixelFormat;
import org.lwjgl.util.glu.GLU;
+import com.google.common.collect.MapDifference;
+
@SideOnly(Side.CLIENT)
public class Minecraft implements IPlayerUsage
{
@@ -344,21 +349,23 @@
File file2 = new File(file1, "crash-" + (new SimpleDateFormat("yyyy-MM-dd_HH.mm.ss")).format(new Date()) + "-client.txt");
System.out.println(p_71377_1_.func_71502_e());
+ int retVal;
if (p_71377_1_.func_71497_f() != null)
{
System.out.println("#@!@# Game crashed! Crash report saved to: #@!@# " + p_71377_1_.func_71497_f());
- System.exit(-1);
+ retVal = -1;
}
else if (p_71377_1_.func_147149_a(file2))
{
System.out.println("#@!@# Game crashed! Crash report saved to: #@!@# " + file2.getAbsolutePath());
- System.exit(-1);
+ retVal = -1;
}
else
{
System.out.println("#@?@# Game crashed! Crash report could not be saved. #@?@#");
- System.exit(-2);
+ retVal = -2;
}
+ FMLCommonHandler.instance().handleExit(retVal);
}
public void func_71367_a(String p_71367_1_, int p_71367_2_)
@@ -471,11 +478,11 @@
this.field_110451_am = new SimpleReloadableResourceManager(this.field_110452_an);
this.field_135017_as = new LanguageManager(this.field_110452_an, this.field_71474_y.field_74363_ab);
this.field_110451_am.func_110542_a(this.field_135017_as);
- this.func_110436_a();
+ FMLClientHandler.instance().beginMinecraftLoading(this, this.field_110449_ao, this.field_110451_am);
this.field_71446_o = new TextureManager(this.field_110451_am);
this.field_110451_am.func_110542_a(this.field_71446_o);
this.field_152350_aA = new SkinManager(this.field_71446_o, new File(this.field_110446_Y, "skins"), this.field_152355_az);
- this.func_71357_I();
+ cpw.mods.fml.client.SplashProgress.drawVanillaScreen();
this.field_147127_av = new SoundHandler(this.field_110451_am, this.field_71474_y);
this.field_110451_am.func_110542_a(this.field_147127_av);
this.field_147126_aw = new MusicTicker(this);
@@ -492,7 +499,10 @@
this.field_110451_am.func_110542_a(this.field_71464_q);
this.field_110451_am.func_110542_a(new GrassColorReloadListener());
this.field_110451_am.func_110542_a(new FoliageColorReloadListener());
+ cpw.mods.fml.common.ProgressManager.ProgressBar bar= cpw.mods.fml.common.ProgressManager.push("Rendering Setup", 9, true);
+ bar.step("Loading Render Manager");
RenderManager.field_78727_a.field_78721_f = new ItemRenderer(this);
+ bar.step("Loading Entity Renderer");
this.field_71460_t = new EntityRenderer(this, this.field_110451_am);
this.field_110451_am.func_110542_a(this.field_71460_t);
AchievementList.field_76004_f.func_75988_a(new IStatStringFormat()
@@ -510,6 +520,7 @@
}
}
});
+ bar.step("Loading GL properties");
this.field_71417_B = new MouseHelper();
this.func_71361_d("Pre startup");
GL11.glEnable(GL11.GL_TEXTURE_2D);
@@ -524,30 +535,39 @@
GL11.glLoadIdentity();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
this.func_71361_d("Startup");
+ bar.step("Render Global instance");
this.field_71438_f = new RenderGlobal(this);
- this.field_147128_au = new TextureMap(0, "textures/blocks");
+ bar.step("Building Blocks Texture");
+ this.field_147128_au = new TextureMap(0, "textures/blocks", true);
+ bar.step("Anisotropy and Mipmaps");
this.field_147128_au.func_147632_b(this.field_71474_y.field_151443_J);
this.field_147128_au.func_147633_a(this.field_71474_y.field_151442_I);
+ bar.step("Loading Blocks Texture");
this.field_71446_o.func_130088_a(TextureMap.field_110575_b, this.field_147128_au);
- this.field_71446_o.func_130088_a(TextureMap.field_110576_c, new TextureMap(1, "textures/items"));
+ bar.step("Loading Items Texture");
+ this.field_71446_o.func_130088_a(TextureMap.field_110576_c, new TextureMap(1, "textures/items", true));
+ bar.step("Viewport");
GL11.glViewport(0, 0, this.field_71443_c, this.field_71440_d);
this.field_71452_i = new EffectRenderer(this.field_71441_e, this.field_71446_o);
+ cpw.mods.fml.common.ProgressManager.pop(bar);
+ FMLClientHandler.instance().finishMinecraftLoading();
this.func_71361_d("Post startup");
this.field_71456_v = new GuiIngame(this);
if (this.field_71475_ae != null)
{
- this.func_147108_a(new GuiConnecting(new GuiMainMenu(), this, this.field_71475_ae, this.field_71477_af));
+ FMLClientHandler.instance().connectToServerAtStartup(this.field_71475_ae, this.field_71477_af);
}
else
{
this.func_147108_a(new GuiMainMenu());
}
- this.field_71446_o.func_147645_c(this.field_152354_ay);
+ cpw.mods.fml.client.SplashProgress.clearVanillaResources(field_71446_o, field_152354_ay);
this.field_152354_ay = null;
this.field_71461_s = new LoadingScreenRenderer(this);
+ FMLClientHandler.instance().onInitializationComplete();
if (this.field_71474_y.field_74353_u && !this.field_71431_Q)
{
this.func_71352_k();
@@ -970,9 +990,11 @@
if (!this.field_71454_w)
{
+ FMLCommonHandler.instance().onRenderTickStart(this.field_71428_T.field_74281_c);
this.field_71424_I.func_76318_c("gameRenderer");
this.field_71460_t.func_78480_b(this.field_71428_T.field_74281_c);
this.field_71424_I.func_76319_b();
+ FMLCommonHandler.instance().onRenderTickEnd(this.field_71428_T.field_74281_c);
}
GL11.glFlush();
@@ -1554,6 +1576,8 @@
--this.field_71467_ac;
}
+ FMLCommonHandler.instance().onPreClientTick();
+
this.field_71424_I.func_76320_a("gui");
if (!this.field_71445_n)
@@ -1698,6 +1722,7 @@
this.field_71462_r.func_146274_d();
}
}
+ FMLCommonHandler.instance().fireMouseInput();
}
if (this.field_71429_W > 0)
@@ -1835,6 +1860,7 @@
}
}
}
+ FMLCommonHandler.instance().fireKeyInput();
}
for (j = 0; j < 9; ++j)
@@ -2025,12 +2051,15 @@
this.field_71453_ak.func_74428_b();
}
+ FMLCommonHandler.instance().onPostClientTick();
+
this.field_71424_I.func_76319_b();
this.field_71423_H = func_71386_F();
}
public void func_71371_a(String p_71371_1_, String p_71371_2_, WorldSettings p_71371_3_)
{
+ FMLClientHandler.instance().startIntegratedServer(p_71371_1_, p_71371_2_, p_71371_3_);
this.func_71403_a((WorldClient)null);
System.gc();
ISaveHandler isavehandler = this.field_71469_aa.func_75804_a(p_71371_1_, false);
@@ -2066,6 +2095,12 @@
while (!this.field_71437_Z.func_71200_ad())
{
+ if (!StartupQuery.check())
+ {
+ func_71403_a(null);
+ func_147108_a(null);
+ return;
+ }
String s2 = this.field_71437_Z.func_71195_b_();
if (s2 != null)
@@ -2141,6 +2176,7 @@
this.field_110448_aq.func_148529_f();
this.func_71351_a((ServerData)null);
this.field_71455_al = false;
+ FMLClientHandler.instance().handleClientWorldClosing(this.field_71441_e);
}
this.field_147127_av.func_147690_c();
@@ -1,124 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/gui/FontRenderer.java
+++ ../src-work/minecraft/net/minecraft/client/gui/FontRenderer.java
@@ -54,7 +54,7 @@
this.field_111273_g = p_i1035_2_;
this.field_78298_i = p_i1035_3_;
this.field_78293_l = p_i1035_4_;
- p_i1035_3_.func_110577_a(this.field_111273_g);
+ bindTexture(this.field_111273_g);
for (int i = 0; i < 32; ++i)
{
@@ -102,7 +102,7 @@
try
{
- bufferedimage = ImageIO.read(Minecraft.func_71410_x().func_110442_L().func_110536_a(this.field_111273_g).func_110527_b());
+ bufferedimage = ImageIO.read(getResourceInputStream(this.field_111273_g));
}
catch (IOException ioexception)
{
@@ -167,7 +167,7 @@
{
try
{
- InputStream inputstream = Minecraft.func_71410_x().func_110442_L().func_110536_a(new ResourceLocation("font/glyph_sizes.bin")).func_110527_b();
+ InputStream inputstream = getResourceInputStream(new ResourceLocation("font/glyph_sizes.bin"));
inputstream.read(this.field_78287_e);
}
catch (IOException ioexception)
@@ -186,7 +186,7 @@
float f = (float)(p_78266_1_ % 16 * 8);
float f1 = (float)(p_78266_1_ / 16 * 8);
float f2 = p_78266_2_ ? 1.0F : 0.0F;
- this.field_78298_i.func_110577_a(this.field_111273_g);
+ bindTexture(this.field_111273_g);
float f3 = (float)this.field_78286_d[p_78266_1_] - 0.01F;
GL11.glBegin(GL11.GL_TRIANGLE_STRIP);
GL11.glTexCoord2f(f / 128.0F, f1 / 128.0F);
@@ -213,7 +213,7 @@
private void func_78257_a(int p_78257_1_)
{
- this.field_78298_i.func_110577_a(this.func_111271_a(p_78257_1_));
+ bindTexture(this.func_111271_a(p_78257_1_));
}
protected float func_78277_a(char p_78277_1_, boolean p_78277_2_)
@@ -260,7 +260,7 @@
public int func_85187_a(String p_85187_1_, int p_85187_2_, int p_85187_3_, int p_85187_4_, boolean p_85187_5_)
{
- GL11.glEnable(GL11.GL_ALPHA_TEST);
+ enableAlpha();
this.func_78265_b();
int l;
@@ -332,7 +332,7 @@
k = this.field_78285_g[j];
this.field_78304_r = k;
- GL11.glColor4f((float)(k >> 16) / 255.0F, (float)(k >> 8 & 255) / 255.0F, (float)(k & 255) / 255.0F, this.field_78305_q);
+ setColor((float)(k >> 16) / 255.0F, (float)(k >> 8 & 255) / 255.0F, (float)(k & 255) / 255.0F, this.field_78305_q);
}
else if (j == 16)
{
@@ -361,7 +361,7 @@
this.field_78299_w = false;
this.field_78300_v = false;
this.field_78301_u = false;
- GL11.glColor4f(this.field_78291_n, this.field_78292_o, this.field_78306_p, this.field_78305_q);
+ setColor(this.field_78291_n, this.field_78292_o, this.field_78306_p, this.field_78305_q);
}
++i;
@@ -420,6 +420,15 @@
++f;
}
+ doDraw(f);
+ }
+ }
+ }
+
+ protected void doDraw(float f)
+ {
+ {
+ {
Tessellator tessellator;
if (this.field_78299_w)
@@ -492,7 +501,7 @@
this.field_78292_o = (float)(p_78258_4_ >> 8 & 255) / 255.0F;
this.field_78306_p = (float)(p_78258_4_ & 255) / 255.0F;
this.field_78305_q = (float)(p_78258_4_ >> 24 & 255) / 255.0F;
- GL11.glColor4f(this.field_78291_n, this.field_78292_o, this.field_78306_p, this.field_78305_q);
+ setColor(this.field_78291_n, this.field_78292_o, this.field_78306_p, this.field_78305_q);
this.field_78295_j = (float)p_78258_2_;
this.field_78296_k = (float)p_78258_3_;
this.func_78255_a(p_78258_1_, p_78258_5_);
@@ -829,4 +838,24 @@
{
return this.field_78294_m;
}
+
+ protected void setColor(float r, float g, float b, float a)
+ {
+ GL11.glColor4f(r, g, b, a);
+ }
+
+ protected void enableAlpha()
+ {
+ GL11.glEnable(GL11.GL_ALPHA_TEST);
+ }
+
+ protected void bindTexture(ResourceLocation location)
+ {
+ field_78298_i.func_110577_a(location);
+ }
+
+ protected InputStream getResourceInputStream(ResourceLocation location) throws IOException
+ {
+ return Minecraft.func_71410_x().func_110442_L().func_110536_a(location).func_110527_b();
+ }
}
@@ -1,11 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiCreateWorld.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiCreateWorld.java
@@ -211,6 +211,8 @@
}
}
+ WorldType.field_77139_a[this.field_146331_K].onGUICreateWorldPress();
+
WorldSettings.GameType gametype = WorldSettings.GameType.func_77142_a(this.field_146342_r);
WorldSettings worldsettings = new WorldSettings(i, gametype, this.field_146341_s, this.field_146337_w, WorldType.field_77139_a[this.field_146331_K]);
worldsettings.func_82750_a(this.field_146334_a);
@@ -1,21 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiIngame.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiIngame.java
@@ -1,5 +1,6 @@
package net.minecraft.client.gui;
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.awt.Color;
@@ -314,6 +315,11 @@
this.func_73731_b(fontrenderer, s, k - fontrenderer.func_78256_a(s) - 2, 2, 14737632);
s = "Allocated memory: " + j5 * 100L / i5 + "% (" + j5 / 1024L / 1024L + "MB)";
this.func_73731_b(fontrenderer, s, k - fontrenderer.func_78256_a(s) - 2, 12, 14737632);
+ int offset = 22;
+ for (String brd : FMLCommonHandler.instance().getBrandings(false))
+ {
+ this.func_73731_b(fontrenderer, brd, k - fontrenderer.func_78256_a(brd) - 2, offset+=10, 14737632);
+ }
j3 = MathHelper.func_76128_c(this.field_73839_d.field_71439_g.field_70165_t);
k3 = MathHelper.func_76128_c(this.field_73839_d.field_71439_g.field_70163_u);
int l3 = MathHelper.func_76128_c(this.field_73839_d.field_71439_g.field_70161_v);
@@ -1,31 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiIngameMenu.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiIngameMenu.java
@@ -1,5 +1,6 @@
package net.minecraft.client.gui;
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.achievement.GuiAchievements;
@@ -29,8 +30,9 @@
this.field_146292_n.add(new GuiButton(4, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 24 + b0, I18n.func_135052_a("menu.returnToGame", new Object[0])));
this.field_146292_n.add(new GuiButton(0, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 96 + b0, 98, 20, I18n.func_135052_a("menu.options", new Object[0])));
+ this.field_146292_n.add(new GuiButton(12, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 96 + b0, 98, 20, "Mod Options..."));
GuiButton guibutton;
- this.field_146292_n.add(guibutton = new GuiButton(7, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 96 + b0, 98, 20, I18n.func_135052_a("menu.shareToLan", new Object[0])));
+ this.field_146292_n.add(guibutton = new GuiButton(7, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 72 + b0, 200, 20, I18n.func_135052_a("menu.shareToLan", new Object[0])));
this.field_146292_n.add(new GuiButton(5, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 48 + b0, 98, 20, I18n.func_135052_a("gui.achievements", new Object[0])));
this.field_146292_n.add(new GuiButton(6, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 48 + b0, 98, 20, I18n.func_135052_a("gui.stats", new Object[0])));
guibutton.field_146124_l = this.field_146297_k.func_71356_B() && !this.field_146297_k.func_71401_C().func_71344_c();
@@ -64,6 +66,10 @@
break;
case 7:
this.field_146297_k.func_147108_a(new GuiShareToLan(this));
+ break;
+ case 12:
+ FMLClientHandler.instance().showInGameModOptions(this);
+ break;
}
}
@@ -1,72 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiMainMenu.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiMainMenu.java
@@ -1,5 +1,7 @@
package net.minecraft.client.gui;
+import cpw.mods.fml.client.GuiModList;
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.BufferedReader;
@@ -9,6 +11,7 @@
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.List;
import java.util.Random;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.OpenGlHelper;
@@ -29,6 +32,9 @@
import org.lwjgl.opengl.GLContext;
import org.lwjgl.util.glu.Project;
+import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
+
@SideOnly(Side.CLIENT)
public class GuiMainMenu extends GuiScreen implements GuiYesNoCallback
{
@@ -190,7 +196,13 @@
{
this.field_146292_n.add(new GuiButton(1, this.field_146294_l / 2 - 100, p_73969_1_, I18n.func_135052_a("menu.singleplayer", new Object[0])));
this.field_146292_n.add(new GuiButton(2, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 1, I18n.func_135052_a("menu.multiplayer", new Object[0])));
- this.field_146292_n.add(new GuiButton(14, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.func_135052_a("menu.online", new Object[0])));
+ GuiButton realmsButton = new GuiButton(14, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.func_135052_a("menu.online", new Object[0]));
+ GuiButton fmlModButton = new GuiButton(6, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, "Mods");
+ fmlModButton.field_146128_h = this.field_146294_l / 2 + 2;
+ realmsButton.field_146120_f = 98;
+ fmlModButton.field_146120_f = 98;
+ this.field_146292_n.add(realmsButton);
+ this.field_146292_n.add(fmlModButton);
}
private void func_73972_b(int p_73972_1_, int p_73972_2_)
@@ -238,6 +250,11 @@
this.field_146297_k.func_71400_g();
}
+ if (p_146284_1_.field_146127_k == 6)
+ {
+ this.field_146297_k.func_147108_a(new GuiModList(this));
+ }
+
if (p_146284_1_.field_146127_k == 11)
{
this.field_146297_k.func_71371_a("Demo_World", "Demo_World", DemoWorldServer.field_73071_a);
@@ -481,7 +498,15 @@
s = s + " Demo";
}
- this.func_73731_b(this.field_146289_q, s, 2, this.field_146295_m - 10, -1);
+ List<String> brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings(true));
+ for (int i = 0; i < brandings.size(); i++)
+ {
+ String brd = brandings.get(i);
+ if (!Strings.isNullOrEmpty(brd))
+ {
+ this.func_73731_b(this.field_146289_q, brd, 2, this.field_146295_m - ( 10 + i * (this.field_146289_q.field_78288_b + 1)), 16777215);
+ }
+ }
String s1 = "Copyright Mojang AB. Do not distribute!";
this.func_73731_b(this.field_146289_q, s1, this.field_146294_l - this.field_146289_q.func_78256_a(s1) - 2, this.field_146295_m - 10, -1);
@@ -1,18 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiSelectWorld.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiSelectWorld.java
@@ -1,5 +1,6 @@
package net.minecraft.client.gui;
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.text.DateFormat;
@@ -179,7 +180,7 @@
if (this.field_146297_k.func_71359_d().func_90033_f(s))
{
- this.field_146297_k.func_71371_a(s, s1, (WorldSettings)null);
+ FMLClientHandler.instance().tryLoadExistingWorld(this, s, s1);
}
}
}
@@ -1,31 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java
+++ ../src-work/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java
@@ -2,6 +2,7 @@
import com.google.common.base.Charsets;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
@@ -83,7 +84,7 @@
boolean flag2 = this.field_148301_e.field_82821_f < 5;
boolean flag3 = flag1 || flag2;
this.field_148300_d.field_71466_p.func_78276_b(this.field_148301_e.field_78847_a, p_148279_2_ + 32 + 3, p_148279_3_ + 1, 16777215);
- List list = this.field_148300_d.field_71466_p.func_78271_c(this.field_148301_e.field_78843_d, p_148279_4_ - 32 - 2);
+ List list = this.field_148300_d.field_71466_p.func_78271_c(FMLClientHandler.instance().fixDescription(this.field_148301_e.field_78843_d), p_148279_4_ - 48 - 2);
for (int l1 = 0; l1 < Math.min(list.size(), 2); ++l1)
{
@@ -174,6 +175,11 @@
int k2 = p_148279_7_ - p_148279_2_;
int l2 = p_148279_8_ - p_148279_3_;
+ String tooltip = FMLClientHandler.instance().enhanceServerListEntry(this, this.field_148301_e, p_148279_2_, p_148279_4_, p_148279_3_, k2, l2);
+ if (tooltip != null)
+ {
+ this.field_148303_c.func_146793_a(tooltip);
+ } else
if (k2 >= p_148279_4_ - 15 && k2 <= p_148279_4_ - 5 && l2 >= 0 && l2 <= 8)
{
this.field_148303_c.func_146793_a(s1);
@@ -1,41 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java
+++ ../src-work/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java
@@ -5,6 +5,9 @@
import com.mojang.authlib.exceptions.InvalidCredentialsException;
import com.mojang.authlib.minecraft.MinecraftSessionService;
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
+
+import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.util.concurrent.Future;
@@ -23,6 +26,7 @@
import net.minecraft.network.login.server.S00PacketDisconnect;
import net.minecraft.network.login.server.S01PacketEncryptionRequest;
import net.minecraft.network.login.server.S02PacketLoginSuccess;
+import net.minecraft.network.play.client.C17PacketCustomPayload;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.CryptManager;
import net.minecraft.util.IChatComponent;
@@ -100,7 +104,7 @@
public void func_147390_a(S02PacketLoginSuccess p_147390_1_)
{
- this.field_147393_d.func_150723_a(EnumConnectionState.PLAY);
+ FMLNetworkHandler.fmlClientHandshake(this.field_147393_d);
}
public void func_147231_a(IChatComponent p_147231_1_)
@@ -114,7 +118,10 @@
if (p_147232_2_ == EnumConnectionState.PLAY)
{
- this.field_147393_d.func_150719_a(new NetHandlerPlayClient(this.field_147394_b, this.field_147395_c, this.field_147393_d));
+ NetHandlerPlayClient nhpc = new NetHandlerPlayClient(this.field_147394_b, this.field_147395_c, this.field_147393_d);
+ this.field_147393_d.func_150719_a(nhpc);
+ FMLClientHandler.instance().setPlayClient(nhpc);
+
}
}
@@ -1,19 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java
+++ ../src-work/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java
@@ -2,6 +2,7 @@
import com.google.common.base.Charsets;
import com.mojang.authlib.GameProfile;
+import cpw.mods.fml.common.network.handshake.NetworkDispatcher;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
@@ -232,7 +233,7 @@
public void func_147282_a(S01PacketJoinGame p_147282_1_)
{
this.field_147299_f.field_71442_b = new PlayerControllerMP(this.field_147299_f, this);
- this.field_147300_g = new WorldClient(this, new WorldSettings(0L, p_147282_1_.func_149198_e(), false, p_147282_1_.func_149195_d(), p_147282_1_.func_149196_i()), p_147282_1_.func_149194_f(), p_147282_1_.func_149192_g(), this.field_147299_f.field_71424_I);
+ this.field_147300_g = new WorldClient(this, new WorldSettings(0L, p_147282_1_.func_149198_e(), false, p_147282_1_.func_149195_d(), p_147282_1_.func_149196_i()), NetworkDispatcher.get(func_147298_b()).getOverrideDimension(p_147282_1_), p_147282_1_.func_149192_g(), this.field_147299_f.field_71424_I);
this.field_147300_g.field_72995_K = true;
this.field_147299_f.func_71403_a(this.field_147300_g);
this.field_147299_f.field_71439_g.field_71093_bK = p_147282_1_.func_149194_f();
@@ -1,18 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/network/OldServerPinger.java
+++ ../src-work/minecraft/net/minecraft/client/network/OldServerPinger.java
@@ -4,6 +4,7 @@
import com.google.common.base.Splitter;
import com.google.common.collect.Iterables;
import com.mojang.authlib.GameProfile;
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.bootstrap.Bootstrap;
@@ -147,6 +148,7 @@
p_147224_1_.func_147407_a((String)null);
}
+ FMLClientHandler.instance().bindServerListData(p_147224_1_, serverstatusresponse);
networkmanager.func_150725_a(new C01PacketPing(Minecraft.func_71386_F()), new GenericFutureListener[0]);
this.field_147403_d = true;
}
@@ -1,102 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/RenderBlocks.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/RenderBlocks.java
@@ -40,6 +40,7 @@
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
+import net.minecraft.src.FMLRenderAccessLibrary;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityFlowerPot;
import net.minecraft.util.Direction;
@@ -245,7 +246,53 @@
{
p_147805_1_.func_149719_a(this.field_147845_a, p_147805_2_, p_147805_3_, p_147805_4_);
this.func_147775_a(p_147805_1_);
- return l == 0 ? this.func_147784_q(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 4 ? this.func_147721_p(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 31 ? this.func_147742_r(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 1 ? this.func_147746_l(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 40 ? this.func_147774_a((BlockDoublePlant)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 2 ? this.func_147791_c(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 20 ? this.func_147726_j(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 11 ? this.func_147735_a((BlockFence)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 39 ? this.func_147779_s(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 5 ? this.func_147788_h(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 13 ? this.func_147755_t(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 9 ? this.func_147766_a((BlockRailBase)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 19 ? this.func_147724_m(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 23 ? this.func_147783_o(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 6 ? this.func_147796_n(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 3 ? this.func_147801_a((BlockFire)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 8 ? this.func_147794_i(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 7 ? this.func_147760_u(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 10 ? this.func_147722_a((BlockStairs)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 27 ? this.func_147802_a((BlockDragonEgg)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 32 ? this.func_147807_a((BlockWall)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 12 ? this.func_147790_e(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 29 ? this.func_147723_f(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 30 ? this.func_147756_g(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 14 ? this.func_147773_v(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 15 ? this.func_147759_a((BlockRedstoneRepeater)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 36 ? this.func_147748_a((BlockRedstoneDiode)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 37 ? this.func_147781_a((BlockRedstoneComparator)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 16 ? this.func_147731_b(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, false) : (l == 17 ? this.func_147809_c(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, true) : (l == 18 ? this.func_147767_a((BlockPane)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 41 ? this.func_147733_k(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 21 ? this.func_147776_a((BlockFenceGate)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 24 ? this.func_147785_a((BlockCauldron)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 33 ? this.func_147752_a((BlockFlowerPot)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 35 ? this.func_147725_a((BlockAnvil)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 25 ? this.func_147741_a((BlockBrewingStand)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 26 ? this.func_147743_a((BlockEndPortalFrame)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 28 ? this.func_147772_a((BlockCocoa)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 34 ? this.func_147797_a((BlockBeacon)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 38 ? this.func_147803_a((BlockHopper)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : false))))))))))))))))))))))))))))))))))))))));
+
+ switch (l)
+ {
+ //regex: ' : \(l == ([\d]+) \?' replace: ';\ncase \1: return' ::: IMPORTANT: REMEMBER THIS ON FIRST line!
+ case 0 : return this.func_147784_q(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 4: return this.func_147721_p(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 31: return this.func_147742_r(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 1: return this.func_147746_l(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 40: return this.func_147774_a((BlockDoublePlant)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 2: return this.func_147791_c(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 20: return this.func_147726_j(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 11: return this.func_147735_a((BlockFence)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 39: return this.func_147779_s(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 5: return this.func_147788_h(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 13: return this.func_147755_t(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 9: return this.func_147766_a((BlockRailBase)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 19: return this.func_147724_m(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 23: return this.func_147783_o(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 6: return this.func_147796_n(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 3: return this.func_147801_a((BlockFire)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 8: return this.func_147794_i(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 7: return this.func_147760_u(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 10: return this.func_147722_a((BlockStairs)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 27: return this.func_147802_a((BlockDragonEgg)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 32: return this.func_147807_a((BlockWall)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 12: return this.func_147790_e(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 29: return this.func_147723_f(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 30: return this.func_147756_g(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 14: return this.func_147773_v(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 15: return this.func_147759_a((BlockRedstoneRepeater)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 36: return this.func_147748_a((BlockRedstoneDiode)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 37: return this.func_147781_a((BlockRedstoneComparator)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 16: return this.func_147731_b(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, false) ;
+ case 17: return this.func_147809_c(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, true) ;
+ case 18: return this.func_147767_a((BlockPane)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 41: return this.func_147733_k(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 21: return this.func_147776_a((BlockFenceGate)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 24: return this.func_147785_a((BlockCauldron)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 33: return this.func_147752_a((BlockFlowerPot)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 35: return this.func_147725_a((BlockAnvil)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 25: return this.func_147741_a((BlockBrewingStand)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 26: return this.func_147743_a((BlockEndPortalFrame)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 28: return this.func_147772_a((BlockCocoa)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 34: return this.func_147797_a((BlockBeacon)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 38: return this.func_147803_a((BlockHopper)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_);
+ default: return FMLRenderAccessLibrary.renderWorldBlock(this, field_147845_a, p_147805_2_, p_147805_3_, p_147805_4_, p_147805_1_, l);
+ }
}
}
@@ -8089,6 +8136,10 @@
this.func_147799_a((BlockHopper)p_147800_1_, 0, 0, 0, 0, true);
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
+ else
+ {
+ FMLRenderAccessLibrary.renderInventoryBlock(this, p_147800_1_, p_147800_2_, j);
+ }
}
else
{
@@ -8147,7 +8198,24 @@
public static boolean func_147739_a(int p_147739_0_)
{
- return p_147739_0_ == 0 ? true : (p_147739_0_ == 31 ? true : (p_147739_0_ == 39 ? true : (p_147739_0_ == 13 ? true : (p_147739_0_ == 10 ? true : (p_147739_0_ == 11 ? true : (p_147739_0_ == 27 ? true : (p_147739_0_ == 22 ? true : (p_147739_0_ == 21 ? true : (p_147739_0_ == 16 ? true : (p_147739_0_ == 26 ? true : (p_147739_0_ == 32 ? true : (p_147739_0_ == 34 ? true : (p_147739_0_ == 35 ? true : (p_147739_0_ == -1 ? false : false))))))))))))));
+ switch (p_147739_0_)
+ {
+ case 0 : return true ;
+ case 31: return true ;
+ case 39: return true ;
+ case 13: return true ;
+ case 10: return true ;
+ case 11: return true ;
+ case 27: return true ;
+ case 22: return true ;
+ case 21: return true ;
+ case 16: return true ;
+ case 26: return true ;
+ case 32: return true ;
+ case 34: return true ;
+ case 35: return true ;
+ default: return FMLRenderAccessLibrary.renderItemAsFull3DBlock(p_147739_0_);
+ }
}
public IIcon func_147793_a(Block p_147793_1_, IBlockAccess p_147793_2_, int p_147793_3_, int p_147793_4_, int p_147793_5_, int p_147793_6_)
@@ -1,18 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/entity/RenderVillager.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/entity/RenderVillager.java
@@ -1,5 +1,6 @@
package net.minecraft.client.renderer.entity;
+import cpw.mods.fml.common.registry.VillagerRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.model.ModelVillager;
@@ -53,7 +54,7 @@
case 4:
return field_110906_m;
default:
- return field_110903_f;
+ return VillagerRegistry.getVillagerSkin(p_110775_1_.func_70946_n(), field_110903_f);
}
}
@@ -1,26 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/texture/Stitcher.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/texture/Stitcher.java
@@ -60,6 +60,7 @@
public void func_94305_f()
{
Stitcher.Holder[] aholder = (Stitcher.Holder[])this.field_94319_a.toArray(new Stitcher.Holder[this.field_94319_a.size()]);
+ cpw.mods.fml.common.ProgressManager.ProgressBar bar = cpw.mods.fml.common.ProgressManager.push("Texture stitching", aholder.length);
Arrays.sort(aholder);
Stitcher.Holder[] aholder1 = aholder;
int i = aholder.length;
@@ -67,6 +68,7 @@
for (int j = 0; j < i; ++j)
{
Stitcher.Holder holder = aholder1[j];
+ bar.step(holder.func_98150_a().func_94215_i());
if (!this.func_94310_b(holder))
{
@@ -80,6 +82,7 @@
this.field_94318_c = MathHelper.func_151236_b(this.field_94318_c);
this.field_94315_d = MathHelper.func_151236_b(this.field_94315_d);
}
+ cpw.mods.fml.common.ProgressManager.pop(bar);
}
public List func_94309_g()
@@ -1,122 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/texture/TextureMap.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/texture/TextureMap.java
@@ -35,6 +35,7 @@
@SideOnly(Side.CLIENT)
public class TextureMap extends AbstractTexture implements ITickableTextureObject, IIconRegister
{
+ private static final boolean ENABLE_SKIP = Boolean.parseBoolean(System.getProperty("fml.skipFirstTextureLoad", "true"));
private static final Logger field_147635_d = LogManager.getLogger();
public static final ResourceLocation field_110575_b = new ResourceLocation("textures/atlas/blocks.png");
public static final ResourceLocation field_110576_c = new ResourceLocation("textures/atlas/items.png");
@@ -47,12 +48,18 @@
private int field_147637_k = 1;
private final TextureAtlasSprite field_94249_f = new TextureAtlasSprite("missingno");
private static final String __OBFID = "CL_00001058";
+ private boolean skipFirst = false;
public TextureMap(int p_i1281_1_, String p_i1281_2_)
{
+ this(p_i1281_1_, p_i1281_2_, false);
+ }
+ public TextureMap(int p_i1281_1_, String p_i1281_2_, boolean skipFirst)
+ {
this.field_94255_a = p_i1281_1_;
this.field_94254_c = p_i1281_2_;
this.func_110573_f();
+ this.skipFirst = skipFirst && ENABLE_SKIP;
}
private void func_110569_e()
@@ -96,15 +103,17 @@
this.field_94252_e.clear();
this.field_94258_i.clear();
int j = Integer.MAX_VALUE;
+ cpw.mods.fml.common.ProgressManager.ProgressBar bar = cpw.mods.fml.common.ProgressManager.push("Texture Loading", skipFirst ? 0 : this.field_110574_e.size());
Iterator iterator = this.field_110574_e.entrySet().iterator();
TextureAtlasSprite textureatlassprite;
- while (iterator.hasNext())
+ while (!skipFirst && iterator.hasNext())
{
Entry entry = (Entry)iterator.next();
ResourceLocation resourcelocation = new ResourceLocation((String)entry.getKey());
textureatlassprite = (TextureAtlasSprite)entry.getValue();
ResourceLocation resourcelocation1 = this.func_147634_a(resourcelocation, 0);
+ bar.step(resourcelocation1.func_110623_a());
try
{
@@ -156,12 +165,14 @@
}
catch (RuntimeException runtimeexception)
{
- field_147635_d.error("Unable to parse metadata from " + resourcelocation1, runtimeexception);
+ //logger.error("Unable to parse metadata from " + resourcelocation1, runtimeexception);
+ cpw.mods.fml.client.FMLClientHandler.instance().trackBrokenTexture(resourcelocation1, runtimeexception.getMessage());
continue;
}
catch (IOException ioexception1)
{
- field_147635_d.error("Using missing texture, unable to load " + resourcelocation1, ioexception1);
+ //logger.error("Using missing texture, unable to load " + resourcelocation1, ioexception1);
+ cpw.mods.fml.client.FMLClientHandler.instance().trackMissingTexture(resourcelocation1);
continue;
}
@@ -169,6 +180,7 @@
stitcher.func_110934_a(textureatlassprite);
}
+ cpw.mods.fml.common.ProgressManager.pop(bar);
int i1 = MathHelper.func_151239_c(j);
if (i1 < this.field_147636_j)
@@ -178,10 +190,12 @@
}
Iterator iterator1 = this.field_110574_e.values().iterator();
+ bar = cpw.mods.fml.common.ProgressManager.push("Mipmap generation", skipFirst ? 0 : this.field_110574_e.size());
- while (iterator1.hasNext())
+ while (!skipFirst && iterator1.hasNext())
{
final TextureAtlasSprite textureatlassprite1 = (TextureAtlasSprite)iterator1.next();
+ bar.step(textureatlassprite1.func_94215_i());
try
{
@@ -222,9 +236,13 @@
this.field_94249_f.func_147963_d(this.field_147636_j);
stitcher.func_110934_a(this.field_94249_f);
+ cpw.mods.fml.common.ProgressManager.pop(bar);
+ skipFirst = false;
+ bar = cpw.mods.fml.common.ProgressManager.push("Texture creation", 3);
try
{
+ bar.step("Stitching");
stitcher.func_94305_f();
}
catch (StitcherException stitcherexception)
@@ -233,10 +251,12 @@
}
field_147635_d.info("Created: {}x{} {}-atlas", new Object[] {Integer.valueOf(stitcher.func_110935_a()), Integer.valueOf(stitcher.func_110936_b()), this.field_94254_c});
+ bar.step("Allocating GL texture");
TextureUtil.func_147946_a(this.func_110552_b(), this.field_147636_j, stitcher.func_110935_a(), stitcher.func_110936_b(), (float)this.field_147637_k);
HashMap hashmap = Maps.newHashMap(this.field_110574_e);
Iterator iterator2 = stitcher.func_94309_g().iterator();
+ bar.step("Uploading GL texture");
while (iterator2.hasNext())
{
textureatlassprite = (TextureAtlasSprite)iterator2.next();
@@ -274,6 +294,7 @@
textureatlassprite = (TextureAtlasSprite)iterator2.next();
textureatlassprite.func_94217_a(this.field_94249_f);
}
+ cpw.mods.fml.common.ProgressManager.pop(bar);
}
private ResourceLocation func_147634_a(ResourceLocation p_147634_1_, int p_147634_2_)
@@ -1,14 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java
@@ -201,8 +201,11 @@
public static void func_147946_a(int p_147946_0_, int p_147946_1_, int p_147946_2_, int p_147946_3_, float p_147946_4_)
{
+ synchronized(cpw.mods.fml.client.SplashProgress.class)
+ {
func_147942_a(p_147946_0_);
func_94277_a(p_147946_0_);
+ }
if (OpenGlHelper.field_148825_d)
{
@@ -1,19 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/resources/LanguageManager.java
+++ ../src-work/minecraft/net/minecraft/client/resources/LanguageManager.java
@@ -3,6 +3,8 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+
+import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.IOException;
@@ -83,6 +85,7 @@
}
field_135049_a.func_135022_a(p_110549_1_, arraylist);
+ LanguageRegistry.instance().mergeLanguageTable(field_135049_a.field_135032_a, this.field_135048_c);
StringTranslate.func_135063_a(field_135049_a.field_135032_a);
}
@@ -1,46 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java
+++ ../src-work/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java
@@ -95,6 +95,7 @@
public void func_110541_a(List p_110541_1_)
{
this.func_110543_a();
+ cpw.mods.fml.common.ProgressManager.ProgressBar resReload = cpw.mods.fml.common.ProgressManager.push("Loading Resources", p_110541_1_.size()+1, true);
field_147967_a.info("Reloading ResourceManager: " + field_130074_a.join(Iterables.transform(p_110541_1_, new Function()
{
private static final String __OBFID = "CL_00001092";
@@ -112,26 +113,35 @@
while (iterator.hasNext())
{
IResourcePack iresourcepack = (IResourcePack)iterator.next();
+ resReload.step(iresourcepack.func_130077_b());
this.func_110545_a(iresourcepack);
}
+ resReload.step("Reloading listeners");
this.func_110544_b();
+ cpw.mods.fml.common.ProgressManager.pop(resReload);
}
public void func_110542_a(IResourceManagerReloadListener p_110542_1_)
{
this.field_110546_b.add(p_110542_1_);
+ cpw.mods.fml.common.ProgressManager.ProgressBar resReload = cpw.mods.fml.common.ProgressManager.push("Loading Resource", 1);
+ resReload.step(p_110542_1_.getClass());
p_110542_1_.func_110549_a(this);
+ cpw.mods.fml.common.ProgressManager.pop(resReload);
}
private void func_110544_b()
{
Iterator iterator = this.field_110546_b.iterator();
+ cpw.mods.fml.common.ProgressManager.ProgressBar resReload = cpw.mods.fml.common.ProgressManager.push("Reloading", this.field_110546_b.size());
while (iterator.hasNext())
{
IResourceManagerReloadListener iresourcemanagerreloadlistener = (IResourceManagerReloadListener)iterator.next();
+ resReload.step(iresourcemanagerreloadlistener.getClass());
iresourcemanagerreloadlistener.func_110549_a(this);
}
+ cpw.mods.fml.common.ProgressManager.pop(resReload);
}
}
@@ -1,19 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/settings/GameSettings.java
+++ ../src-work/minecraft/net/minecraft/client/settings/GameSettings.java
@@ -2,6 +2,8 @@
import com.google.common.collect.Maps;
import com.google.gson.Gson;
+
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.BufferedReader;
@@ -1049,6 +1051,7 @@
public void func_74303_b()
{
+ if (FMLClientHandler.instance().isLoading()) return;
try
{
PrintWriter printwriter = new PrintWriter(new FileWriter(this.field_74354_ai));
@@ -1,17 +0,0 @@
--- ../src-base/minecraft/net/minecraft/crash/CrashReport.java
+++ ../src-work/minecraft/net/minecraft/crash/CrashReport.java
@@ -1,5 +1,6 @@
package net.minecraft.crash;
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.File;
@@ -140,6 +141,7 @@
return IntCache.func_85144_b();
}
});
+ FMLCommonHandler.instance().enhanceCrashReport(this, this.field_85061_c);
}
public String func_71501_a()
@@ -1,55 +0,0 @@
--- ../src-base/minecraft/net/minecraft/entity/EntityList.java
+++ ../src-work/minecraft/net/minecraft/entity/EntityList.java
@@ -5,6 +5,7 @@
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
+
import net.minecraft.entity.ai.EntityMinecartMobSpawner;
import net.minecraft.entity.boss.EntityDragon;
import net.minecraft.entity.boss.EntityWither;
@@ -63,9 +64,13 @@
import net.minecraft.stats.StatBase;
import net.minecraft.stats.StatList;
import net.minecraft.world.World;
+
+import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import cpw.mods.fml.common.FMLLog;
+
public class EntityList
{
private static final Logger field_151516_b = LogManager.getLogger();
@@ -145,9 +150,10 @@
p_75615_0_.func_82580_o("Type");
}
+ Class oclass = null;
try
{
- Class oclass = (Class)field_75625_b.get(p_75615_0_.func_74779_i("id"));
+ oclass = (Class)field_75625_b.get(p_75615_0_.func_74779_i("id"));
if (oclass != null)
{
@@ -161,7 +167,17 @@
if (entity != null)
{
- entity.func_70020_e(p_75615_0_);
+ try
+ {
+ entity.func_70020_e(p_75615_0_);
+ }
+ catch (Exception e)
+ {
+ FMLLog.log(Level.ERROR, e,
+ "An Entity %s(%s) has thrown an exception during loading, its state cannot be restored. Report this to the mod author",
+ p_75615_0_.func_74779_i("id"), oclass.getName());
+ entity = null;
+ }
}
else
{
@@ -1,23 +0,0 @@
--- ../src-base/minecraft/net/minecraft/entity/EntityTracker.java
+++ ../src-work/minecraft/net/minecraft/entity/EntityTracker.java
@@ -39,6 +39,8 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import cpw.mods.fml.common.registry.EntityRegistry;
+
public class EntityTracker
{
private static final Logger field_151249_a = LogManager.getLogger();
@@ -56,6 +58,11 @@
public void func_72786_a(Entity p_72786_1_)
{
+ if (EntityRegistry.instance().tryTrackingEntity(this, p_72786_1_))
+ {
+ return;
+ }
+
if (p_72786_1_ instanceof EntityPlayerMP)
{
this.func_72791_a(p_72786_1_, 512, 2);
@@ -1,39 +0,0 @@
--- ../src-base/minecraft/net/minecraft/entity/EntityTrackerEntry.java
+++ ../src-work/minecraft/net/minecraft/entity/EntityTrackerEntry.java
@@ -57,6 +57,8 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
+
public class EntityTrackerEntry
{
private static final Logger field_151262_p = LogManager.getLogger();
@@ -377,6 +379,14 @@
this.field_73138_k = this.field_73132_a.field_70181_x;
this.field_73135_l = this.field_73132_a.field_70179_y;
+ int posX = MathHelper.func_76128_c(this.field_73132_a.field_70165_t * 32.0D);
+ int posY = MathHelper.func_76128_c(this.field_73132_a.field_70163_u * 32.0D);
+ int posZ = MathHelper.func_76128_c(this.field_73132_a.field_70161_v * 32.0D);
+ if (posX != this.field_73128_d || posY != this.field_73129_e || posZ != this.field_73126_f)
+ {
+ FMLNetworkHandler.makeEntitySpawnAdjustment(this.field_73132_a, p_73117_1_, this.field_73128_d, this.field_73129_e, this.field_73126_f);
+ }
+
if (this.field_73143_t && !(packet instanceof S0FPacketSpawnMob))
{
p_73117_1_.field_71135_a.func_147359_a(new S12PacketEntityVelocity(this.field_73132_a.func_145782_y(), this.field_73132_a.field_70159_w, this.field_73132_a.field_70181_x, this.field_73132_a.field_70179_y));
@@ -456,6 +466,12 @@
field_151262_p.warn("Fetching addPacket for removed entity");
}
+ Packet pkt = FMLNetworkHandler.getEntitySpawningPacket(this.field_73132_a);
+
+ if (pkt != null)
+ {
+ return pkt;
+ }
if (this.field_73132_a instanceof EntityItem)
{
return new S0EPacketSpawnObject(this.field_73132_a, 2, 1);
@@ -1,10 +0,0 @@
--- ../src-base/minecraft/net/minecraft/entity/boss/IBossDisplayData.java
+++ ../src-work/minecraft/net/minecraft/entity/boss/IBossDisplayData.java
@@ -4,7 +4,6 @@
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.IChatComponent;
-@SideOnly(Side.CLIENT)
public interface IBossDisplayData
{
float func_110138_aP();
@@ -1,20 +0,0 @@
--- ../src-base/minecraft/net/minecraft/entity/item/EntityItem.java
+++ ../src-work/minecraft/net/minecraft/entity/item/EntityItem.java
@@ -17,6 +17,8 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import cpw.mods.fml.common.FMLCommonHandler;
+
public class EntityItem extends Entity
{
private static final Logger field_145803_d = LogManager.getLogger();
@@ -325,6 +327,8 @@
}
}
+ FMLCommonHandler.instance().firePlayerItemPickupEvent(p_70100_1_, this);
+
this.field_70170_p.func_72956_a(p_70100_1_, "random.pop", 0.2F, ((this.field_70146_Z.nextFloat() - this.field_70146_Z.nextFloat()) * 0.7F + 1.0F) * 2.0F);
p_70100_1_.func_71001_a(this, i);
@@ -1,11 +0,0 @@
--- ../src-base/minecraft/net/minecraft/entity/monster/EntitySlime.java
+++ ../src-work/minecraft/net/minecraft/entity/monster/EntitySlime.java
@@ -247,7 +247,7 @@
{
Chunk chunk = this.field_70170_p.func_72938_d(MathHelper.func_76128_c(this.field_70165_t), MathHelper.func_76128_c(this.field_70161_v));
- if (this.field_70170_p.func_72912_H().func_76067_t() == WorldType.field_77138_c && this.field_70146_Z.nextInt(4) != 1)
+ if (this.field_70170_p.func_72912_H().func_76067_t().handleSlimeSpawnReduction(field_70146_Z, field_70170_p))
{
return false;
}
@@ -1,26 +0,0 @@
--- ../src-base/minecraft/net/minecraft/entity/passive/EntityVillager.java
+++ ../src-work/minecraft/net/minecraft/entity/passive/EntityVillager.java
@@ -1,5 +1,6 @@
package net.minecraft.entity.passive;
+import cpw.mods.fml.common.registry.VillagerRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Collections;
@@ -422,6 +423,7 @@
MerchantRecipeList merchantrecipelist;
merchantrecipelist = new MerchantRecipeList();
+ VillagerRegistry.manageVillagerTrades(merchantrecipelist, this, this.func_70946_n(), this.field_70146_Z);
int k;
label50:
@@ -626,7 +628,7 @@
public IEntityLivingData func_110161_a(IEntityLivingData p_110161_1_)
{
p_110161_1_ = super.func_110161_a(p_110161_1_);
- this.func_70938_b(this.field_70170_p.field_73012_v.nextInt(5));
+ VillagerRegistry.applyRandomTrade(this, field_70170_p.field_73012_v);
return p_110161_1_;
}
@@ -1,40 +0,0 @@
--- ../src-base/minecraft/net/minecraft/entity/player/EntityPlayer.java
+++ ../src-work/minecraft/net/minecraft/entity/player/EntityPlayer.java
@@ -2,6 +2,9 @@
import com.google.common.base.Charsets;
import com.mojang.authlib.GameProfile;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Collection;
@@ -193,6 +196,7 @@
public void func_70071_h_()
{
+ FMLCommonHandler.instance().onPlayerPreTick(this);
if (this.field_71074_e != null)
{
ItemStack itemstack = this.field_71071_by.func_70448_g();
@@ -316,6 +320,7 @@
this.field_71100_bB.func_75118_a(this);
this.func_71064_a(StatList.field_75948_k, 1);
}
+ FMLCommonHandler.instance().onPlayerPostTick(this);
}
public int func_82145_z()
@@ -2031,6 +2036,11 @@
}
}
+ public void openGui(Object mod, int modGuiId, World world, int x, int y, int z)
+ {
+ FMLNetworkHandler.openGui(this, mod, modGuiId, world, x, y, z);
+ }
+
public static enum EnumStatus
{
OK,
@@ -1,17 +0,0 @@
--- ../src-base/minecraft/net/minecraft/inventory/SlotCrafting.java
+++ ../src-work/minecraft/net/minecraft/inventory/SlotCrafting.java
@@ -1,5 +1,6 @@
package net.minecraft.inventory;
+import cpw.mods.fml.common.FMLCommonHandler;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@@ -103,6 +104,7 @@
public void func_82870_a(EntityPlayer p_82870_1_, ItemStack p_82870_2_)
{
+ FMLCommonHandler.instance().firePlayerCraftingEvent(p_82870_1_, p_82870_2_, field_75239_a);
this.func_75208_c(p_82870_2_);
for (int i = 0; i < this.field_75239_a.func_70302_i_(); ++i)
@@ -1,18 +0,0 @@
--- ../src-base/minecraft/net/minecraft/inventory/SlotFurnace.java
+++ ../src-work/minecraft/net/minecraft/inventory/SlotFurnace.java
@@ -1,5 +1,6 @@
package net.minecraft.inventory;
+import cpw.mods.fml.common.FMLCommonHandler;
import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
@@ -83,6 +84,8 @@
this.field_75228_b = 0;
+ FMLCommonHandler.instance().firePlayerSmeltedEvent(field_75229_a, p_75208_1_);
+
if (p_75208_1_.func_77973_b() == Items.field_151042_j)
{
this.field_75229_a.func_71064_a(AchievementList.field_76016_k, 1);
@@ -1,29 +0,0 @@
--- ../src-base/minecraft/net/minecraft/item/Item.java
+++ ../src-work/minecraft/net/minecraft/item/Item.java
@@ -3,6 +3,8 @@
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
+
+import cpw.mods.fml.common.registry.GameData;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.HashSet;
@@ -46,7 +48,7 @@
public class Item
{
- public static final RegistryNamespaced field_150901_e = new RegistryNamespaced();
+ public static final RegistryNamespaced field_150901_e = GameData.getItemRegistry();
protected static final UUID field_111210_e = UUID.fromString("CB3F55D3-645C-4F38-A497-9C13A33DB5CF");
private CreativeTabs field_77701_a;
protected static Random field_77697_d = new Random();
@@ -62,6 +64,8 @@
protected String field_111218_cA;
private static final String __OBFID = "CL_00000041";
+ public final cpw.mods.fml.common.registry.RegistryDelegate<Item> delegate =
+ ((cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry)field_150901_e).getDelegate(this, Item.class);
public static int func_150891_b(Item p_150891_0_)
{
return p_150891_0_ == null ? 0 : field_150901_e.func_148757_b(p_150891_0_);
@@ -1,11 +0,0 @@
--- ../src-base/minecraft/net/minecraft/item/ItemEmptyMap.java
+++ ../src-work/minecraft/net/minecraft/item/ItemEmptyMap.java
@@ -25,7 +25,7 @@
int i = 128 * (1 << mapdata.field_76197_d);
mapdata.field_76201_a = (int)(Math.round(p_77659_3_.field_70165_t / (double)i) * (long)i);
mapdata.field_76199_b = (int)(Math.round(p_77659_3_.field_70161_v / (double)i) * (long)i);
- mapdata.field_76200_c = (byte)p_77659_2_.field_73011_w.field_76574_g;
+ mapdata.field_76200_c = p_77659_2_.field_73011_w.field_76574_g;
mapdata.func_76185_a();
--p_77659_1_.field_77994_a;
@@ -1,11 +0,0 @@
--- ../src-base/minecraft/net/minecraft/item/ItemMap.java
+++ ../src-work/minecraft/net/minecraft/item/ItemMap.java
@@ -57,7 +57,7 @@
int i = 128 * (1 << mapdata.field_76197_d);
mapdata.field_76201_a = Math.round((float)p_77873_2_.func_72912_H().func_76079_c() / (float)i) * i;
mapdata.field_76199_b = Math.round((float)(p_77873_2_.func_72912_H().func_76074_e() / i)) * i;
- mapdata.field_76200_c = (byte)p_77873_2_.field_73011_w.field_76574_g;
+ mapdata.field_76200_c = p_77873_2_.field_73011_w.field_76574_g;
mapdata.func_76185_a();
p_77873_2_.func_72823_a(s, mapdata);
}
@@ -1,45 +0,0 @@
--- ../src-base/minecraft/net/minecraft/item/ItemStack.java
+++ ../src-work/minecraft/net/minecraft/item/ItemStack.java
@@ -45,6 +45,7 @@
private EntityItemFrame field_82843_f;
private static final String __OBFID = "CL_00000043";
+ private cpw.mods.fml.common.registry.RegistryDelegate<Item> delegate;
public ItemStack(Block p_i1876_1_)
{
this(p_i1876_1_, 1);
@@ -72,7 +73,7 @@
public ItemStack(Item p_i1881_1_, int p_i1881_2_, int p_i1881_3_)
{
- this.field_151002_e = p_i1881_1_;
+ func_150996_a(p_i1881_1_);
this.field_77994_a = p_i1881_2_;
this.field_77991_e = p_i1881_3_;
@@ -106,7 +107,7 @@
public Item func_77973_b()
{
- return this.field_151002_e;
+ return this.delegate != null ? this.delegate.get() : null;
}
@SideOnly(Side.CLIENT)
@@ -164,7 +165,7 @@
public void func_77963_c(NBTTagCompound p_77963_1_)
{
- this.field_151002_e = Item.func_150899_d(p_77963_1_.func_74765_d("id"));
+ func_150996_a(Item.func_150899_d(p_77963_1_.func_74765_d("id")));
this.field_77994_a = p_77963_1_.func_74771_c("Count");
this.field_77991_e = p_77963_1_.func_74765_d("Damage");
@@ -744,6 +745,7 @@
public void func_150996_a(Item p_150996_1_)
{
+ this.delegate = p_150996_1_ != null ? p_150996_1_.delegate : null;
this.field_151002_e = p_150996_1_;
}
@@ -1,20 +0,0 @@
--- ../src-base/minecraft/net/minecraft/network/NetworkSystem.java
+++ ../src-work/minecraft/net/minecraft/network/NetworkSystem.java
@@ -1,6 +1,8 @@
package net.minecraft.network;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
+
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.bootstrap.ServerBootstrap;
@@ -84,7 +86,7 @@
;
}
- p_initChannel_1_.pipeline().addLast("timeout", new ReadTimeoutHandler(30)).addLast("legacy_query", new PingResponseHandler(NetworkSystem.this)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer(NetworkManager.field_152462_h)).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer(NetworkManager.field_152462_h));
+ p_initChannel_1_.pipeline().addLast("timeout", new ReadTimeoutHandler(FMLNetworkHandler.READ_TIMEOUT)).addLast("legacy_query", new PingResponseHandler(NetworkSystem.this)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer(NetworkManager.field_152462_h)).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer(NetworkManager.field_152462_h));
NetworkManager networkmanager = new NetworkManager(false);
NetworkSystem.this.field_151272_f.add(networkmanager);
p_initChannel_1_.pipeline().addLast("packet_handler", networkmanager);
@@ -1,27 +0,0 @@
--- ../src-base/minecraft/net/minecraft/network/ServerStatusResponse.java
+++ ../src-work/minecraft/net/minecraft/network/ServerStatusResponse.java
@@ -8,6 +8,8 @@
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.mojang.authlib.GameProfile;
+import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import java.lang.reflect.Type;
import java.util.UUID;
import net.minecraft.util.IChatComponent;
@@ -233,6 +235,7 @@
serverstatusresponse.func_151320_a(JsonUtils.func_151200_h(jsonobject, "favicon"));
}
+ FMLClientHandler.instance().captureAdditionalData(serverstatusresponse, jsonobject);
return serverstatusresponse;
}
@@ -260,6 +263,7 @@
jsonobject.addProperty("favicon", p_serialize_1_.func_151316_d());
}
+ FMLNetworkHandler.enhanceStatusQuery(jsonobject);
return jsonobject;
}
@@ -1,31 +0,0 @@
--- ../src-base/minecraft/net/minecraft/network/play/server/S3FPacketCustomPayload.java
+++ ../src-work/minecraft/net/minecraft/network/play/server/S3FPacketCustomPayload.java
@@ -27,23 +27,24 @@
this.field_149172_a = p_i45190_1_;
this.field_149171_b = p_i45190_2_;
- if (p_i45190_2_.length >= 1048576)
+ //TODO: Remove this when FML protocol is re-written. To restore vanilla compatibility.
+ if (p_i45190_2_.length > 0x1FFF9A) // Max size of ANY MC packet is 0x1FFFFF minus max size of this packet (101)
{
- throw new IllegalArgumentException("Payload may not be larger than 1048576 bytes");
+ throw new IllegalArgumentException("Payload may not be larger than 2097050 bytes");
}
}
public void func_148837_a(PacketBuffer p_148837_1_) throws IOException
{
this.field_149172_a = p_148837_1_.func_150789_c(20);
- this.field_149171_b = new byte[p_148837_1_.readUnsignedShort()];
+ this.field_149171_b = new byte[cpw.mods.fml.common.network.ByteBufUtils.readVarShort(p_148837_1_)];
p_148837_1_.readBytes(this.field_149171_b);
}
public void func_148840_b(PacketBuffer p_148840_1_) throws IOException
{
p_148840_1_.func_150785_a(this.field_149172_a);
- p_148840_1_.writeShort(this.field_149171_b.length);
+ cpw.mods.fml.common.network.ByteBufUtils.writeVarShort(p_148840_1_, this.field_149171_b.length);
p_148840_1_.writeBytes(this.field_149171_b);
}
@@ -1,10 +0,0 @@
--- ../src-base/minecraft/net/minecraft/realms/RealmsConnect.java
+++ ../src-work/minecraft/net/minecraft/realms/RealmsConnect.java
@@ -40,6 +40,7 @@
try
{
+ cpw.mods.fml.client.FMLClientHandler.instance().connectToRealmsServer(p_connect_1_, p_connect_2_);
inetaddress = InetAddress.getByName(p_connect_1_);
if (RealmsConnect.this.aborted)
@@ -1,118 +0,0 @@
--- ../src-base/minecraft/net/minecraft/server/MinecraftServer.java
+++ ../src-work/minecraft/net/minecraft/server/MinecraftServer.java
@@ -5,6 +5,11 @@
import com.mojang.authlib.GameProfileRepository;
import com.mojang.authlib.minecraft.MinecraftSessionService;
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.Loader;
+import cpw.mods.fml.common.LoaderState;
+import cpw.mods.fml.common.StartupQuery;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
@@ -343,7 +348,7 @@
public void func_71260_j()
{
- if (!this.field_71290_O)
+ if (!this.field_71290_O && Loader.instance().hasReachedState(LoaderState.SERVER_STARTED) && !field_71316_v) // make sure the save is valid and we don't save twice
{
field_147145_h.info("Stopping server");
@@ -394,6 +399,7 @@
{
if (this.func_71197_b())
{
+ FMLCommonHandler.instance().handleServerStarted();
long i = func_130071_aq();
long l = 0L;
this.field_147147_p.func_151315_a(new ChatComponentText(this.field_71286_C));
@@ -438,12 +444,20 @@
Thread.sleep(Math.max(1L, 50L - l));
this.field_71296_Q = true;
}
+ FMLCommonHandler.instance().handleServerStopping();
+ FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
}
else
{
+ FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
this.func_71228_a((CrashReport)null);
}
}
+ catch (StartupQuery.AbortedException e)
+ {
+ // ignore silently
+ FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
+ }
catch (Throwable throwable1)
{
field_147145_h.error("Encountered an unexpected exception", throwable1);
@@ -469,6 +483,7 @@
field_147145_h.error("We were unable to save this crash report to disk.");
}
+ FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
this.func_71228_a(crashreport);
}
finally
@@ -484,6 +499,8 @@
}
finally
{
+ FMLCommonHandler.instance().handleServerStopped();
+ this.field_71316_v = true;
this.func_71240_o();
}
}
@@ -529,6 +546,7 @@
public void func_71217_p()
{
long i = System.nanoTime();
+ FMLCommonHandler.instance().onPreServerTick();
++this.field_71315_w;
if (this.field_71295_T)
@@ -582,6 +600,7 @@
this.field_71304_b.func_76319_b();
this.field_71304_b.func_76319_b();
+ FMLCommonHandler.instance().onPostServerTick();
}
public void func_71190_q()
@@ -608,6 +627,7 @@
}
this.field_71304_b.func_76320_a("tick");
+ FMLCommonHandler.instance().onPreWorldTick(worldserver);
CrashReport crashreport;
try
@@ -632,6 +652,7 @@
throw new ReportedException(crashreport);
}
+ FMLCommonHandler.instance().onPostWorldTick(worldserver);
this.field_71304_b.func_76319_b();
this.field_71304_b.func_76320_a("tracker");
worldserver.func_73039_n().func_72788_a();
@@ -663,6 +684,7 @@
public void func_71256_s()
{
+ StartupQuery.reset();
(new Thread("Server thread")
{
private static final String __OBFID = "CL_00001418";
@@ -715,7 +737,7 @@
public String getServerModName()
{
- return "vanilla";
+ return FMLCommonHandler.instance().getModName();
}
public CrashReport func_71230_b(CrashReport p_71230_1_)
@@ -1,51 +0,0 @@
--- ../src-base/minecraft/net/minecraft/server/dedicated/DedicatedServer.java
+++ ../src-work/minecraft/net/minecraft/server/dedicated/DedicatedServer.java
@@ -1,5 +1,6 @@
package net.minecraft.server.dedicated;
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.BufferedReader;
@@ -48,6 +49,7 @@
private boolean field_71338_p;
private WorldSettings.GameType field_71337_q;
private boolean field_71335_s;
+ public static boolean allowPlayerLogins = false;
private static final String __OBFID = "CL_00001784";
public DedicatedServer(File p_i1508_1_)
@@ -112,6 +114,8 @@
field_155771_h.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\"");
}
+ FMLCommonHandler.instance().onServerStart(this);
+
field_155771_h.info("Loading properties");
this.field_71340_o = new PropertyManager(new File("server.properties"));
this.field_154332_n = new ServerEula(new File("eula.txt"));
@@ -203,6 +207,7 @@
}
else
{
+ FMLCommonHandler.instance().onServerStarted();
this.func_152361_a(new DedicatedPlayerList(this));
long j = System.nanoTime();
@@ -248,6 +253,7 @@
this.func_71191_d((this.func_71207_Z() + 8) / 16 * 16);
this.func_71191_d(MathHelper.func_76125_a(this.func_71207_Z(), 64, 256));
this.field_71340_o.func_73667_a("max-build-height", Integer.valueOf(this.func_71207_Z()));
+ if (!FMLCommonHandler.instance().handleServerAboutToStart(this)) { return false; }
field_155771_h.info("Preparing level \"" + this.func_71270_I() + "\"");
this.func_71247_a(this.func_71270_I(), this.func_71270_I(), k, worldtype, s2);
long i1 = System.nanoTime() - j;
@@ -268,7 +274,7 @@
this.field_71339_n.func_72602_a();
}
- return true;
+ return FMLCommonHandler.instance().handleServerStarting(this);
}
}
}
@@ -1,21 +0,0 @@
--- ../src-base/minecraft/net/minecraft/server/integrated/IntegratedServer.java
+++ ../src-work/minecraft/net/minecraft/server/integrated/IntegratedServer.java
@@ -1,5 +1,6 @@
package net.minecraft.server.integrated;
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.File;
@@ -105,9 +106,10 @@
this.func_71245_h(true);
field_147148_h.info("Generating keypair");
this.func_71253_a(CryptManager.func_75891_b());
+ if (!FMLCommonHandler.instance().handleServerAboutToStart(this)) { return false; }
this.func_71247_a(this.func_71270_I(), this.func_71221_J(), this.field_71350_m.func_77160_d(), this.field_71350_m.func_77165_h(), this.field_71350_m.func_82749_j());
this.func_71205_p(this.func_71214_G() + " - " + this.field_71305_c[0].func_72912_H().func_76065_j());
- return true;
+ return FMLCommonHandler.instance().handleServerStarting(this);
}
public void func_71217_p()
@@ -1,50 +0,0 @@
--- ../src-base/minecraft/net/minecraft/server/management/PlayerProfileCache.java
+++ ../src-work/minecraft/net/minecraft/server/management/PlayerProfileCache.java
@@ -224,26 +224,12 @@
{
List list = null;
BufferedReader bufferedreader = null;
- label81:
{
try
{
bufferedreader = Files.newReader(this.field_152665_g, Charsets.UTF_8);
list = (List)this.field_152660_b.fromJson(bufferedreader, field_152666_h);
- break label81;
- }
- catch (FileNotFoundException filenotfoundexception)
- {
- ;
- }
- finally
- {
- IOUtils.closeQuietly(bufferedreader);
- }
- return;
- }
-
if (list != null)
{
this.field_152661_c.clear();
@@ -268,6 +254,20 @@
}
}
}
+ }
+ catch (FileNotFoundException filenotfoundexception)
+ {
+ ;
+ }
+ catch (com.google.gson.JsonParseException parsefail)
+ {
+ // No op - the cache can quietly rebuild if it's junk
+ }
+ finally
+ {
+ IOUtils.closeQuietly(bufferedreader);
+ }
+ }
}
public void func_152658_c()
@@ -1,93 +0,0 @@
--- ../src-base/minecraft/net/minecraft/server/management/ServerConfigurationManager.java
+++ ../src-work/minecraft/net/minecraft/server/management/ServerConfigurationManager.java
@@ -4,6 +4,8 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.mojang.authlib.GameProfile;
+
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.File;
@@ -58,6 +60,7 @@
import net.minecraft.world.WorldSettings;
import net.minecraft.world.demo.DemoWorldManager;
import net.minecraft.world.storage.IPlayerFileData;
+import net.minecraft.world.storage.SaveHandler;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -98,7 +101,7 @@
this.field_72405_c = 8;
}
- public void func_72355_a(NetworkManager p_72355_1_, EntityPlayerMP p_72355_2_)
+ public void func_72355_a(NetworkManager p_72355_1_, EntityPlayerMP p_72355_2_, NetHandlerPlayServer nethandlerplayserver)
{
GameProfile gameprofile = p_72355_2_.func_146103_bH();
PlayerProfileCache playerprofilecache = this.field_72400_f.func_152358_ax();
@@ -119,7 +122,7 @@
WorldServer worldserver = this.field_72400_f.func_71218_a(p_72355_2_.field_71093_bK);
ChunkCoordinates chunkcoordinates = worldserver.func_72861_E();
this.func_72381_a(p_72355_2_, (EntityPlayerMP)null, worldserver);
- NetHandlerPlayServer nethandlerplayserver = new NetHandlerPlayServer(this.field_72400_f, p_72355_1_, p_72355_2_);
+ p_72355_2_.field_71135_a = nethandlerplayserver;
nethandlerplayserver.func_147359_a(new S01PacketJoinGame(p_72355_2_.func_145782_y(), p_72355_2_.field_71134_c.func_73081_b(), worldserver.func_72912_H().func_76093_s(), worldserver.field_73011_w.field_76574_g, worldserver.field_73013_u, this.func_72352_l(), worldserver.func_72912_H().func_76067_t()));
nethandlerplayserver.func_147359_a(new S3FPacketCustomPayload("MC|Brand", this.func_72365_p().getServerModName().getBytes(Charsets.UTF_8)));
nethandlerplayserver.func_147359_a(new S05PacketSpawnPosition(chunkcoordinates.field_71574_a, chunkcoordinates.field_71572_b, chunkcoordinates.field_71573_c));
@@ -161,6 +164,7 @@
p_72355_2_.func_71116_b();
+ FMLCommonHandler.instance().firePlayerLoggedIn(p_72355_2_);
if (nbttagcompound != null && nbttagcompound.func_150297_b("Riding", 10))
{
Entity entity = EntityList.func_75615_a(nbttagcompound.func_74775_l("Riding"), worldserver);
@@ -248,8 +252,23 @@
return nbttagcompound1;
}
+ public NBTTagCompound getPlayerNBT(EntityPlayerMP player)
+ {
+ // Hacky method to allow loading the NBT for a player prior to login
+ NBTTagCompound nbttagcompound = this.field_72400_f.field_71305_c[0].func_72912_H().func_76072_h();
+ if (player.func_70005_c_().equals(this.field_72400_f.func_71214_G()) && nbttagcompound != null)
+ {
+ return nbttagcompound;
+ }
+ else
+ {
+ return ((SaveHandler)this.field_72412_k).getPlayerNBT(player);
+ }
+ }
protected void func_72391_b(EntityPlayerMP p_72391_1_)
{
+ if (p_72391_1_.field_71135_a == null) return;
+
this.field_72412_k.func_75753_a(p_72391_1_);
StatisticsFile statisticsfile = (StatisticsFile)this.field_148547_k.get(p_72391_1_.func_110124_au());
@@ -281,6 +300,7 @@
public void func_72367_e(EntityPlayerMP p_72367_1_)
{
+ FMLCommonHandler.instance().firePlayerLoggedOut(p_72367_1_);
p_72367_1_.func_71029_a(StatList.field_75947_j);
this.func_72391_b(p_72367_1_);
WorldServer worldserver = p_72367_1_.func_71121_q();
@@ -436,6 +456,7 @@
this.field_72404_b.add(entityplayermp1);
entityplayermp1.func_71116_b();
entityplayermp1.func_70606_j(entityplayermp1.func_110143_aJ());
+ FMLCommonHandler.instance().firePlayerRespawnEvent(entityplayermp1);
return entityplayermp1;
}
@@ -461,6 +482,7 @@
PotionEffect potioneffect = (PotionEffect)iterator.next();
p_72356_1_.field_71135_a.func_147359_a(new S1DPacketEntityEffect(p_72356_1_.func_145782_y(), potioneffect));
}
+ FMLCommonHandler.instance().firePlayerChangedDimensionEvent(p_72356_1_, j, p_72356_2_);
}
public void func_82448_a(Entity p_82448_1_, int p_82448_2_, WorldServer p_82448_3_, WorldServer p_82448_4_)
@@ -1,24 +0,0 @@
--- ../src-base/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java
+++ ../src-work/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java
@@ -1,5 +1,6 @@
package net.minecraft.server.network;
+import cpw.mods.fml.common.FMLCommonHandler;
import io.netty.util.concurrent.GenericFutureListener;
import net.minecraft.network.EnumConnectionState;
import net.minecraft.network.NetworkManager;
@@ -24,6 +25,14 @@
public void func_147383_a(C00Handshake p_147383_1_)
{
+ if (!FMLCommonHandler.instance().shouldAllowPlayerLogins())
+ {
+ ChatComponentText chatcomponenttext = new ChatComponentText("Server is still starting! Please wait before reconnecting.");
+ this.field_147386_b.func_150725_a(new S00PacketDisconnect(chatcomponenttext), new GenericFutureListener[0]);
+ this.field_147386_b.func_150718_a(chatcomponenttext);
+ return;
+ }
+
switch (NetHandlerHandshakeTCP.SwitchEnumConnectionState.field_151291_a[p_147383_1_.func_149594_c().ordinal()])
{
case 1:
@@ -1,29 +0,0 @@
--- ../src-base/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java
+++ ../src-work/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java
@@ -3,6 +3,8 @@
import com.google.common.base.Charsets;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.exceptions.AuthenticationUnavailableException;
+
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import io.netty.util.concurrent.GenericFutureListener;
import java.math.BigInteger;
import java.security.PrivateKey;
@@ -58,7 +60,7 @@
this.func_147326_c();
}
- if (this.field_147336_h++ == 600)
+ if (this.field_147336_h++ == FMLNetworkHandler.LOGIN_TIMEOUT)
{
this.func_147322_a("Took too long to log in");
}
@@ -96,7 +98,7 @@
{
this.field_147328_g = NetHandlerLoginServer.LoginState.ACCEPTED;
this.field_147333_a.func_150725_a(new S02PacketLoginSuccess(this.field_147337_i), new GenericFutureListener[0]);
- this.field_147327_f.func_71203_ab().func_72355_a(this.field_147333_a, this.field_147327_f.func_71203_ab().func_148545_a(this.field_147337_i));
+ FMLNetworkHandler.fmlServerHandshake(this.field_147327_f.func_71203_ab(), this.field_147333_a, this.field_147327_f.func_71203_ab().func_148545_a(this.field_147337_i));
}
}
@@ -1,62 +0,0 @@
--- ../src-base/minecraft/net/minecraft/tileentity/TileEntity.java
+++ ../src-work/minecraft/net/minecraft/tileentity/TileEntity.java
@@ -1,10 +1,12 @@
package net.minecraft.tileentity;
+import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Callable;
+
import net.minecraft.block.Block;
import net.minecraft.block.BlockJukebox;
import net.minecraft.crash.CrashReportCategory;
@@ -12,6 +14,8 @@
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.Packet;
import net.minecraft.world.World;
+
+import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -87,9 +91,10 @@
{
TileEntity tileentity = null;
+ Class oclass = null;
try
{
- Class oclass = (Class)field_145855_i.get(p_145827_0_.func_74779_i("id"));
+ oclass = (Class)field_145855_i.get(p_145827_0_.func_74779_i("id"));
if (oclass != null)
{
@@ -103,7 +108,17 @@
if (tileentity != null)
{
+ try
+ {
tileentity.func_145839_a(p_145827_0_);
+ }
+ catch (Exception ex)
+ {
+ FMLLog.log(Level.ERROR, ex,
+ "A TileEntity %s(%s) has thrown an exception during loading, its state cannot be restored. Report this to the mod author",
+ p_145827_0_.func_74779_i("id"), oclass.getName());
+ tileentity = null;
+ }
}
else
{
@@ -137,7 +152,6 @@
}
}
- @SideOnly(Side.CLIENT)
public double func_145835_a(double p_145835_1_, double p_145835_3_, double p_145835_5_)
{
double d3 = (double)this.field_145851_c + 0.5D - p_145835_1_;
@@ -1,26 +0,0 @@
--- ../src-base/minecraft/net/minecraft/tileentity/TileEntityFurnace.java
+++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityFurnace.java
@@ -1,5 +1,6 @@
package net.minecraft.tileentity;
+import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
@@ -322,7 +323,15 @@
}
}
- return item instanceof ItemTool && ((ItemTool)item).func_77861_e().equals("WOOD") ? 200 : (item instanceof ItemSword && ((ItemSword)item).func_150932_j().equals("WOOD") ? 200 : (item instanceof ItemHoe && ((ItemHoe)item).func_77842_f().equals("WOOD") ? 200 : (item == Items.field_151055_y ? 100 : (item == Items.field_151044_h ? 1600 : (item == Items.field_151129_at ? 20000 : (item == Item.func_150898_a(Blocks.field_150345_g) ? 100 : (item == Items.field_151072_bj ? 2400 : 0)))))));
+ if (item instanceof ItemTool && ((ItemTool)item).func_77861_e().equals("WOOD")) return 200;
+ if (item instanceof ItemSword && ((ItemSword)item).func_150932_j().equals("WOOD")) return 200;
+ if (item instanceof ItemHoe && ((ItemHoe)item).func_77842_f().equals("WOOD")) return 200;
+ if (item == Items.field_151055_y) return 100;
+ if (item == Items.field_151044_h) return 1600;
+ if (item == Items.field_151129_at) return 20000;
+ if (item == Item.func_150898_a(Blocks.field_150345_g)) return 100;
+ if (item == Items.field_151072_bj) return 2400;
+ return GameRegistry.getFuelValue(p_145952_0_);
}
}
@@ -1,13 +0,0 @@
--- ../src-base/minecraft/net/minecraft/util/ResourceLocation.java
+++ ../src-work/minecraft/net/minecraft/util/ResourceLocation.java
@@ -1,10 +1,7 @@
package net.minecraft.util;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
import org.apache.commons.lang3.Validate;
-@SideOnly(Side.CLIENT)
public class ResourceLocation
{
private final String field_110626_a;
@@ -1,75 +0,0 @@
--- ../src-base/minecraft/net/minecraft/util/StringTranslate.java
+++ ../src-work/minecraft/net/minecraft/util/StringTranslate.java
@@ -3,10 +3,13 @@
import com.google.common.base.Splitter;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
+
+import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.IOException;
import java.io.InputStream;
+import java.util.HashMap;
import java.util.IllegalFormatException;
import java.util.Iterator;
import java.util.Map;
@@ -18,16 +21,35 @@
{
private static final Pattern field_111053_a = Pattern.compile("%(\\d+\\$)?[\\d\\.]*[df]");
private static final Splitter field_135065_b = Splitter.on('=').limit(2);
+ private final Map field_74816_c;
private static StringTranslate field_74817_a = new StringTranslate();
- private final Map field_74816_c = Maps.newHashMap();
private long field_150511_e;
private static final String __OBFID = "CL_00001212";
public StringTranslate()
{
+ InputStream inputstream = StringTranslate.class.getResourceAsStream("/assets/minecraft/lang/en_US.lang");
+ field_74816_c = Maps.newHashMap();
+ inject(this, inputstream);
+ }
+
+ public static void inject(InputStream inputstream)
+ {
+ inject(field_74817_a, inputstream);
+ }
+
+ private static void inject(StringTranslate inst, InputStream inputstream)
+ {
+ HashMap<String, String> map = parseLangFile(inputstream);
+ inst.field_74816_c.putAll(map);
+ inst.field_150511_e = System.currentTimeMillis();
+ }
+
+ public static HashMap<String,String> parseLangFile(InputStream inputstream)
+ {
+ HashMap<String,String> table = Maps.newHashMap();
try
{
- InputStream inputstream = StringTranslate.class.getResourceAsStream("/assets/minecraft/lang/en_US.lang");
Iterator iterator = IOUtils.readLines(inputstream, Charsets.UTF_8).iterator();
while (iterator.hasNext())
@@ -42,17 +64,17 @@
{
String s1 = astring[0];
String s2 = field_111053_a.matcher(astring[1]).replaceAll("%$1s");
- this.field_74816_c.put(s1, s2);
+ table.put(s1, s2);
}
}
}
- this.field_150511_e = System.currentTimeMillis();
}
- catch (IOException ioexception)
+ catch (Exception ioexception)
{
;
}
+ return table;
}
static StringTranslate func_74808_a()
@@ -1,28 +0,0 @@
--- ../src-base/minecraft/net/minecraft/world/World.java
+++ ../src-work/minecraft/net/minecraft/world/World.java
@@ -1800,14 +1800,14 @@
}
}
- this.field_147481_N = false;
-
if (!this.field_147483_b.isEmpty())
{
this.field_147482_g.removeAll(this.field_147483_b);
this.field_147483_b.clear();
}
+ this.field_147481_N = false;
+
this.field_72984_F.func_76318_c("pendingBlockEntities");
if (!this.field_147484_a.isEmpty())
@@ -3598,7 +3598,7 @@
@SideOnly(Side.CLIENT)
public double func_72919_O()
{
- return this.field_72986_A.func_76067_t() == WorldType.field_77138_c ? 0.0D : 63.0D;
+ return this.field_72986_A.func_76067_t().getHorizon(this);
}
public CrashReportCategory func_72914_a(CrashReport p_72914_1_)
@@ -1,48 +0,0 @@
--- ../src-base/minecraft/net/minecraft/world/WorldProvider.java
+++ ../src-work/minecraft/net/minecraft/world/WorldProvider.java
@@ -50,20 +50,12 @@
protected void func_76572_b()
{
- if (this.field_76579_a.func_72912_H().func_76067_t() == WorldType.field_77138_c)
- {
- FlatGeneratorInfo flatgeneratorinfo = FlatGeneratorInfo.func_82651_a(this.field_76579_a.func_72912_H().func_82571_y());
- this.field_76578_c = new WorldChunkManagerHell(BiomeGenBase.func_150568_d(flatgeneratorinfo.func_82648_a()), 0.5F);
- }
- else
- {
- this.field_76578_c = new WorldChunkManager(this.field_76579_a);
- }
+ this.field_76578_c = field_76577_b.getChunkManager(field_76579_a);
}
public IChunkProvider func_76555_c()
{
- return (IChunkProvider)(this.field_76577_b == WorldType.field_77138_c ? new ChunkProviderFlat(this.field_76579_a, this.field_76579_a.func_72905_C(), this.field_76579_a.func_72912_H().func_76089_r(), this.field_82913_c) : new ChunkProviderGenerate(this.field_76579_a, this.field_76579_a.func_72905_C(), this.field_76579_a.func_72912_H().func_76089_r()));
+ return field_76577_b.getChunkGenerator(field_76579_a, field_82913_c);
}
public boolean func_76566_a(int p_76566_1_, int p_76566_2_)
@@ -179,19 +171,19 @@
public int func_76557_i()
{
- return this.field_76577_b == WorldType.field_77138_c ? 4 : 64;
+ return this.field_76577_b.getMinimumSpawnHeight(this.field_76579_a);
}
@SideOnly(Side.CLIENT)
public boolean func_76564_j()
{
- return this.field_76577_b != WorldType.field_77138_c && !this.field_76576_e;
+ return this.field_76577_b.hasVoidParticles(this.field_76576_e);
}
@SideOnly(Side.CLIENT)
public double func_76565_k()
{
- return this.field_76577_b == WorldType.field_77138_c ? 1.0D : 0.03125D;
+ return this.field_76577_b.voidFadeMagnitude();
}
@SideOnly(Side.CLIENT)
@@ -1,88 +0,0 @@
--- ../src-base/minecraft/net/minecraft/world/WorldType.java
+++ ../src-work/minecraft/net/minecraft/world/WorldType.java
@@ -1,5 +1,14 @@
package net.minecraft.world;
+import java.util.Random;
+
+import net.minecraft.world.biome.BiomeGenBase;
+import net.minecraft.world.biome.WorldChunkManager;
+import net.minecraft.world.biome.WorldChunkManagerHell;
+import net.minecraft.world.chunk.IChunkProvider;
+import net.minecraft.world.gen.ChunkProviderFlat;
+import net.minecraft.world.gen.ChunkProviderGenerate;
+import net.minecraft.world.gen.FlatGeneratorInfo;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -112,4 +121,70 @@
this.field_151361_l = true;
return this;
}
+
+ public WorldChunkManager getChunkManager(World world)
+ {
+ if (this == field_77138_c)
+ {
+ FlatGeneratorInfo flatgeneratorinfo = FlatGeneratorInfo.func_82651_a(world.func_72912_H().func_82571_y());
+ return new WorldChunkManagerHell(BiomeGenBase.func_150568_d(flatgeneratorinfo.func_82648_a()), 0.5F);
+ }
+ else
+ {
+ return new WorldChunkManager(world);
+ }
+ }
+
+ public IChunkProvider getChunkGenerator(World world, String generatorOptions)
+ {
+ return (this == field_77138_c ? new ChunkProviderFlat(world, world.func_72905_C(), world.func_72912_H().func_76089_r(), generatorOptions) : new ChunkProviderGenerate(world, world.func_72905_C(), world.func_72912_H().func_76089_r()));
+ }
+
+ public int getMinimumSpawnHeight(World world)
+ {
+ return this == field_77138_c ? 4 : 64;
+ }
+
+ public double getHorizon(World world)
+ {
+ return this == field_77138_c ? 0.0D : 63.0D;
+ }
+
+ public boolean hasVoidParticles(boolean flag)
+ {
+ return this != field_77138_c && !flag;
+ }
+
+ public double voidFadeMagnitude()
+ {
+ return this == field_77138_c ? 1.0D : 0.03125D;
+ }
+
+/* public BiomeGenBase[] getBiomesForWorldType() {
+ return biomesForWorldType;
+ }
+
+ public void addNewBiome(BiomeGenBase biome)
+ {
+ Set<BiomeGenBase> newBiomesForWorld = Sets.newLinkedHashSet(Arrays.asList(biomesForWorldType));
+ newBiomesForWorld.add(biome);
+ biomesForWorldType = newBiomesForWorld.toArray(new BiomeGenBase[0]);
+ }
+
+ public void removeBiome(BiomeGenBase biome)
+ {
+ Set<BiomeGenBase> newBiomesForWorld = Sets.newLinkedHashSet(Arrays.asList(biomesForWorldType));
+ newBiomesForWorld.remove(biome);
+ biomesForWorldType = newBiomesForWorld.toArray(new BiomeGenBase[0]);
+ }
+*/
+ public boolean handleSlimeSpawnReduction(Random random, World world)
+ {
+ return this == field_77138_c ? random.nextInt(4) != 1 : false;
+ }
+
+ /**
+ * Called when 'Create New World' button is pressed before starting game
+ */
+ public void onGUICreateWorldPress() { }
}
@@ -1,65 +0,0 @@
--- ../src-base/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java
+++ ../src-work/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java
@@ -9,6 +9,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityList;
@@ -24,9 +25,13 @@
import net.minecraft.world.chunk.NibbleArray;
import net.minecraft.world.storage.IThreadedFileIO;
import net.minecraft.world.storage.ThreadedFileIOBase;
+
+import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import cpw.mods.fml.common.FMLLog;
+
public class AnvilChunkLoader implements IChunkLoader, IThreadedFileIO
{
private static final Logger field_151505_a = LogManager.getLogger();
@@ -260,11 +265,20 @@
Entity entity = (Entity)iterator1.next();
nbttagcompound1 = new NBTTagCompound();
- if (entity.func_70039_c(nbttagcompound1))
+ try
{
- p_75820_1_.field_76644_m = true;
- nbttaglist2.func_74742_a(nbttagcompound1);
+ if (entity.func_70039_c(nbttagcompound1))
+ {
+ p_75820_1_.field_76644_m = true;
+ nbttaglist2.func_74742_a(nbttagcompound1);
+ }
}
+ catch (Exception e)
+ {
+ FMLLog.log(Level.ERROR, e,
+ "An Entity type %s has thrown an exception trying to write state. It will not persist. Report this to the mod author",
+ entity.getClass().getName());
+ }
}
}
@@ -276,8 +290,16 @@
{
TileEntity tileentity = (TileEntity)iterator1.next();
nbttagcompound1 = new NBTTagCompound();
+ try {
tileentity.func_145841_b(nbttagcompound1);
nbttaglist3.func_74742_a(nbttagcompound1);
+ }
+ catch (Exception e)
+ {
+ FMLLog.log(Level.ERROR, e,
+ "A TileEntity type %s has throw an exception trying to write state. It will not persist. Report this to the mod author",
+ tileentity.getClass().getName());
+ }
}
p_75820_3_.func_74782_a("TileEntities", nbttaglist3);
@@ -1,18 +0,0 @@
--- ../src-base/minecraft/net/minecraft/world/gen/ChunkProviderServer.java
+++ ../src-work/minecraft/net/minecraft/world/gen/ChunkProviderServer.java
@@ -1,6 +1,7 @@
package net.minecraft.world.gen;
import com.google.common.collect.Lists;
+import cpw.mods.fml.common.registry.GameRegistry;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
@@ -216,6 +217,7 @@
if (this.field_73246_d != null)
{
this.field_73246_d.func_73153_a(p_73153_1_, p_73153_2_, p_73153_3_);
+ GameRegistry.generateWorld(p_73153_2_, p_73153_3_, field_73251_h, field_73246_d, p_73153_1_);
chunk.func_76630_e();
}
}
@@ -1,31 +0,0 @@
--- ../src-base/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java
+++ ../src-work/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java
@@ -4,6 +4,8 @@
import java.util.Iterator;
import java.util.List;
import java.util.Random;
+
+import cpw.mods.fml.common.registry.VillagerRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.passive.EntityVillager;
@@ -50,6 +52,8 @@
arraylist.add(new StructureVillagePieces.PieceWeight(StructureVillagePieces.Field2.class, 3, MathHelper.func_76136_a(p_75084_0_, 2 + p_75084_1_, 4 + p_75084_1_ * 2)));
arraylist.add(new StructureVillagePieces.PieceWeight(StructureVillagePieces.House2.class, 15, MathHelper.func_76136_a(p_75084_0_, 0, 1 + p_75084_1_)));
arraylist.add(new StructureVillagePieces.PieceWeight(StructureVillagePieces.House3.class, 8, MathHelper.func_76136_a(p_75084_0_, 0 + p_75084_1_, 3 + p_75084_1_ * 2)));
+ VillagerRegistry.addExtraVillageComponents(arraylist, p_75084_0_, p_75084_1_);
+
Iterator iterator = arraylist.iterator();
while (iterator.hasNext())
@@ -123,6 +127,10 @@
{
object = StructureVillagePieces.House3.func_74921_a(p_75083_0_, p_75083_2_, p_75083_3_, p_75083_4_, p_75083_5_, p_75083_6_, p_75083_7_, p_75083_8_);
}
+ else
+ {
+ object = VillagerRegistry.getVillageComponent(p_75083_1_, p_75083_0_ , p_75083_2_, p_75083_3_, p_75083_4_, p_75083_5_, p_75083_6_, p_75083_7_, p_75083_8_);
+ }
return (StructureVillagePieces.Village)object;
}
@@ -1,48 +0,0 @@
--- ../src-base/minecraft/net/minecraft/world/storage/MapData.java
+++ ../src-work/minecraft/net/minecraft/world/storage/MapData.java
@@ -10,7 +10,7 @@
import java.util.Map;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.*;
import net.minecraft.world.World;
import net.minecraft.world.WorldSavedData;
@@ -18,7 +18,7 @@
{
public int field_76201_a;
public int field_76199_b;
- public byte field_76200_c;
+ public int field_76200_c;
public byte field_76197_d;
public byte[] field_76198_e = new byte[16384];
public List field_76196_g = new ArrayList();
@@ -33,7 +33,17 @@
public void func_76184_a(NBTTagCompound p_76184_1_)
{
- this.field_76200_c = p_76184_1_.func_74771_c("dimension");
+ NBTBase dimension = p_76184_1_.func_74781_a("dimension");
+
+ if (dimension instanceof NBTTagByte)
+ {
+ this.field_76200_c = ((NBTTagByte)dimension).func_150290_f();
+ }
+ else
+ {
+ this.field_76200_c = ((NBTTagInt)dimension).func_150287_d();
+ }
+
this.field_76201_a = p_76184_1_.func_74762_e("xCenter");
this.field_76199_b = p_76184_1_.func_74762_e("zCenter");
this.field_76197_d = p_76184_1_.func_74771_c("scale");
@@ -84,7 +94,7 @@
public void func_76187_b(NBTTagCompound p_76187_1_)
{
- p_76187_1_.func_74774_a("dimension", this.field_76200_c);
+ p_76187_1_.func_74768_a("dimension", this.field_76200_c);
p_76187_1_.func_74768_a("xCenter", this.field_76201_a);
p_76187_1_.func_74768_a("zCenter", this.field_76199_b);
p_76187_1_.func_74774_a("scale", this.field_76197_d);
@@ -1,109 +0,0 @@
--- ../src-base/minecraft/net/minecraft/world/storage/SaveHandler.java
+++ ../src-work/minecraft/net/minecraft/world/storage/SaveHandler.java
@@ -6,13 +6,18 @@
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.StartupQuery;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.MinecraftException;
import net.minecraft.world.WorldProvider;
import net.minecraft.world.chunk.storage.IChunkLoader;
+
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -107,20 +112,29 @@
NBTTagCompound nbttagcompound;
NBTTagCompound nbttagcompound1;
+ WorldInfo worldInfo = null;
+
if (file1.exists())
{
try
{
nbttagcompound = CompressedStreamTools.func_74796_a(new FileInputStream(file1));
nbttagcompound1 = nbttagcompound.func_74775_l("Data");
- return new WorldInfo(nbttagcompound1);
+ worldInfo = new WorldInfo(nbttagcompound1);
+ FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound);
+ return worldInfo;
}
+ catch (StartupQuery.AbortedException e)
+ {
+ throw e;
+ }
catch (Exception exception1)
{
exception1.printStackTrace();
}
}
+ FMLCommonHandler.instance().confirmBackupLevelDatUse(this);
file1 = new File(this.field_75770_b, "level.dat_old");
if (file1.exists())
@@ -129,8 +143,14 @@
{
nbttagcompound = CompressedStreamTools.func_74796_a(new FileInputStream(file1));
nbttagcompound1 = nbttagcompound.func_74775_l("Data");
- return new WorldInfo(nbttagcompound1);
+ worldInfo = new WorldInfo(nbttagcompound1);
+ FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound);
+ return worldInfo;
}
+ catch (StartupQuery.AbortedException e)
+ {
+ throw e;
+ }
catch (Exception exception)
{
exception.printStackTrace();
@@ -146,6 +166,8 @@
NBTTagCompound nbttagcompound2 = new NBTTagCompound();
nbttagcompound2.func_74782_a("Data", nbttagcompound1);
+ FMLCommonHandler.instance().handleWorldDataSave(this, p_75755_1_, nbttagcompound2);
+
try
{
File file1 = new File(this.field_75770_b, "level.dat_new");
@@ -184,6 +206,8 @@
NBTTagCompound nbttagcompound1 = new NBTTagCompound();
nbttagcompound1.func_74782_a("Data", nbttagcompound);
+ FMLCommonHandler.instance().handleWorldDataSave(this, p_75761_1_, nbttagcompound1);
+
try
{
File file1 = new File(this.field_75770_b, "level.dat_new");
@@ -296,4 +320,22 @@
{
return this.field_75767_f;
}
+
+ public NBTTagCompound getPlayerNBT(EntityPlayerMP player)
+ {
+ try
+ {
+ File file1 = new File(this.field_75771_c, player.func_110124_au().toString() + ".dat");
+
+ if (file1.exists() && file1.isFile())
+ {
+ return CompressedStreamTools.func_74796_a(new FileInputStream(file1));
+ }
+ }
+ catch (Exception exception)
+ {
+ field_151478_a.warn("Failed to load player data for " + player.func_70005_c_());
+ }
+ return null;
+ }
}
Loaded 100 of 1274 files, more files were not shown because too many files have changed in this diff. Show more