Compare commits

..
852 Commits
Author SHA1 Message Date
mezz d06e0ad71b Fix log4j configuration 2017-06-07 20:53:27 -07:00
cpw 8182c93525 Fix up release jsons to clean up extraneous netty references 2016-05-11 11:19:23 -04: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
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
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 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
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
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 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 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
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
CovertJaguar f61605c7af Add missing Minecart/Track hook. 2016-03-21 03:18:25 -07: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 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
Choonster TheMage 9ca3ede736 Allow finite fluids to be drained correctly 2016-03-07 21:31:27 +11: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
1179 changed files with 53822 additions and 70256 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
+9 -1
View File
@@ -3,6 +3,9 @@
/.settings
/.classpath
#In case people make their workspace in the repo
/eclipse/
#idea
/.idea
*.iml
@@ -12,12 +15,17 @@
/.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.
+321 -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.8.9"
mappings = 'stable_20'
//mappings = "snapshot_nodoc_20151122"
workspaceDir = "projects"
versionJson = "jsons/1.8.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.8.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,125 @@ 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' }
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,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,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,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;
+ }
}
@@ -1,47 +0,0 @@
--- ../src-base/minecraft/net/minecraft/world/storage/WorldInfo.java
+++ ../src-work/minecraft/net/minecraft/world/storage/WorldInfo.java
@@ -2,8 +2,11 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+
+import java.util.Map;
import java.util.concurrent.Callable;
import net.minecraft.crash.CrashReportCategory;
+import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.GameRules;
@@ -36,6 +39,7 @@
private boolean field_76110_t;
private boolean field_76109_u;
private GameRules field_82577_x;
+ private Map<String, NBTBase> additionalProperties;
private static final String __OBFID = "CL_00000587";
protected WorldInfo()
@@ -532,4 +536,24 @@
}
});
}
+
+ /**
+ * Allow access to additional mod specific world based properties
+ * Used by FML to store mod list associated with a world, and maybe an id map
+ * Used by Forge to store the dimensions available to a world
+ * @param additionalProperties
+ */
+ public void setAdditionalProperties(Map<String,NBTBase> additionalProperties)
+ {
+ // one time set for this
+ if (this.additionalProperties == null)
+ {
+ this.additionalProperties = additionalProperties;
+ }
+ }
+
+ public NBTBase getAdditionalProperty(String additionalProperty)
+ {
+ return this.additionalProperties!=null? this.additionalProperties.get(additionalProperty) : null;
+ }
}
-1
View File
@@ -1 +0,0 @@
rootProject.name = 'fml'
@@ -1,140 +0,0 @@
package cpw.mods.fml.client;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;
import com.google.common.collect.ImmutableSet;
import cpw.mods.fml.client.config.ConfigGuiType;
import cpw.mods.fml.client.config.DummyConfigElement;
import cpw.mods.fml.client.config.GuiConfig;
import cpw.mods.fml.client.config.GuiConfigEntries.NumberSliderEntry;
import cpw.mods.fml.client.config.IConfigElement;
import cpw.mods.fml.client.config.DummyConfigElement.DummyCategoryElement;
import cpw.mods.fml.client.config.DummyConfigElement.DummyListElement;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.resources.I18n;
public class FMLConfigGuiFactory implements IModGuiFactory
{
public static class FMLConfigGuiScreen extends GuiConfig
{
public FMLConfigGuiScreen(GuiScreen parent)
{
super(parent, getConfigElements(), "FML", false, false, I18n.format("fml.config.sample.title"));
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private static List<IConfigElement> getConfigElements()
{
List<IConfigElement> list = new ArrayList<IConfigElement>();
List<IConfigElement> listsList = new ArrayList<IConfigElement>();
List<IConfigElement> stringsList = new ArrayList<IConfigElement>();
List<IConfigElement> numbersList = new ArrayList<IConfigElement>();
Pattern commaDelimitedPattern = Pattern.compile("([A-Za-z]+((,){1}( )*|$))+?");
// Top Level Settings
list.add(new DummyConfigElement<Boolean>("imABoolean", true, ConfigGuiType.BOOLEAN, "fml.config.sample.imABoolean").setRequiresMcRestart(true));
list.add(new DummyConfigElement<Integer>("imAnInteger", 42, ConfigGuiType.INTEGER, "fml.config.sample.imAnInteger", -1, 256).setRequiresMcRestart(true));
list.add(new DummyConfigElement<Double>("imADouble", 42.4242D, ConfigGuiType.DOUBLE, "fml.config.sample.imADouble", -1.0D, 256.256D).setRequiresMcRestart(true));
list.add(new DummyConfigElement<String>("imAString", "http://www.montypython.net/scripts/string.php", ConfigGuiType.STRING, "fml.config.sample.imAString").setRequiresMcRestart(true));
// Lists category
listsList.add(new DummyListElement<Boolean>("booleanList", new Boolean[] {true, false, true, false, true, false, true, false}, ConfigGuiType.BOOLEAN, "fml.config.sample.booleanList"));
listsList.add(new DummyListElement<Boolean>("booleanListFixed", new Boolean[] {true, false, true, false, true, false, true, false}, ConfigGuiType.BOOLEAN, "fml.config.sample.booleanListFixed", true));
listsList.add(new DummyListElement<Boolean>("booleanListMax", new Boolean[] {true, false, true, false, true, false, true, false}, ConfigGuiType.BOOLEAN, "fml.config.sample.booleanListMax", 10));
listsList.add(new DummyListElement<Double>("doubleList", new Double[] {0.0D, 1.1D, 2.2D, 3.3D, 4.4D, 5.5D, 6.6D, 7.7D, 8.8D, 9.9D}, ConfigGuiType.DOUBLE, "fml.config.sample.doubleList"));
listsList.add(new DummyListElement<Double>("doubleListFixed", new Double[] {0.0D, 1.1D, 2.2D, 3.3D, 4.4D, 5.5D, 6.6D, 7.7D, 8.8D, 9.9D}, ConfigGuiType.DOUBLE, "fml.config.sample.doubleListFixed", true));
listsList.add(new DummyListElement<Double>("doubleListMax", new Double[] {0.0D, 1.1D, 2.2D, 3.3D, 4.4D, 5.5D, 6.6D, 7.7D, 8.8D, 9.9D}, ConfigGuiType.DOUBLE, "fml.config.sample.doubleListMax", 15));
listsList.add(new DummyListElement<Double>("doubleListBounded", new Double[] {0.0D, 1.1D, 2.2D, 3.3D, 4.4D, 5.5D, 6.6D, 7.7D, 8.8D, 9.9D}, ConfigGuiType.DOUBLE, "fml.config.sample.doubleListBounded", -1.0D, 10.0D));
listsList.add(new DummyListElement<Integer>("integerList", new Integer[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, ConfigGuiType.INTEGER, "fml.config.sample.integerList"));
listsList.add(new DummyListElement<Integer>("integerListFixed", new Integer[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, ConfigGuiType.INTEGER, "fml.config.sample.integerListFixed", true));
listsList.add(new DummyListElement<Integer>("integerListMax", new Integer[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, ConfigGuiType.INTEGER, "fml.config.sample.integerListMax", 15));
listsList.add(new DummyListElement<Integer>("integerListBounded", new Integer[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, ConfigGuiType.INTEGER, "fml.config.sample.integerListBounded", -1, 10));
listsList.add(new DummyListElement<String>("stringList", new String[] {"An", "array", "of", "string", "values"}, ConfigGuiType.STRING, "fml.config.sample.stringList"));
listsList.add(new DummyListElement<String>("stringListFixed", new String[] {"A", "fixed", "length", "array", "of", "string", "values"}, ConfigGuiType.STRING, "fml.config.sample.stringListFixed", true));
listsList.add(new DummyListElement<String>("stringListMax", new String[] {"An", "array", "of", "string", "values", "with", "a", "max", "length", "of", "15"}, ConfigGuiType.STRING, "fml.config.sample.stringListMax", 15));
listsList.add(new DummyListElement<String>("stringListPattern", new String[] {"Valid", "Not Valid", "Is, Valid", "Comma, Separated, Value"}, ConfigGuiType.STRING, "fml.config.sample.stringListPattern", commaDelimitedPattern));
list.add(new DummyCategoryElement("lists", "fml.config.sample.ctgy.lists", listsList));
// Strings category
stringsList.add(new DummyConfigElement<String>("basicString", "Just a regular String value, anything goes.", ConfigGuiType.STRING, "fml.config.sample.basicString"));
stringsList.add(new DummyConfigElement<String>("cycleString", "this", ConfigGuiType.STRING, "fml.config.sample.cycleString", new String[] {"this", "property", "cycles", "through", "a", "list", "of", "valid", "choices"}));
stringsList.add(new DummyConfigElement<String>("patternString", "only, comma, separated, words, can, be, entered, in, this, box", ConfigGuiType.STRING, "fml.config.sample.patternString", commaDelimitedPattern));
stringsList.add(new DummyConfigElement<String>("chatColorPicker", "c", ConfigGuiType.COLOR, "fml.config.sample.chatColorPicker", new String[] {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"}));
stringsList.add(new DummyConfigElement<String>("modIDSelector", "FML", ConfigGuiType.MOD_ID, "fml.config.sample.modIDSelector"));
list.add(new DummyCategoryElement("strings", "fml.config.sample.ctgy.strings", stringsList));
// Numbers category
numbersList.add((new DummyConfigElement<Integer>("basicInteger", 42, ConfigGuiType.INTEGER, "fml.config.sample.basicInteger")));
numbersList.add((new DummyConfigElement<Integer>("boundedInteger", 42, ConfigGuiType.INTEGER, "fml.config.sample.boundedInteger", -1, 256)));
numbersList.add((new DummyConfigElement<Integer>("sliderInteger", 2000, ConfigGuiType.INTEGER, "fml.config.sample.sliderInteger", 100, 10000)).setCustomListEntryClass(NumberSliderEntry.class));
numbersList.add(new DummyConfigElement<Double>("basicDouble", 42.4242D, ConfigGuiType.DOUBLE, "fml.config.sample.basicDouble"));
numbersList.add(new DummyConfigElement<Double>("boundedDouble", 42.4242D, ConfigGuiType.DOUBLE, "fml.config.sample.boundedDouble", -1.0D, 256.256D));
numbersList.add(new DummyConfigElement<Double>("sliderDouble", 42.4242D, ConfigGuiType.DOUBLE, "fml.config.sample.sliderDouble", -1.0D, 256.256D).setCustomListEntryClass(NumberSliderEntry.class));
list.add(new DummyCategoryElement("numbers", "fml.config.sample.ctgy.numbers", numbersList));
return list;
}
}
@Override
public void initialize(Minecraft minecraftInstance)
{
}
@Override
public Class<? extends GuiScreen> mainConfigGuiClass()
{
return FMLConfigGuiScreen.class;
}
private static final Set<RuntimeOptionCategoryElement> fmlCategories = ImmutableSet.of(new RuntimeOptionCategoryElement("HELP", "FML"));
@Override
public Set<RuntimeOptionCategoryElement> runtimeGuiCategories()
{
return fmlCategories;
}
@Override
public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element)
{
return new RuntimeOptionGuiHandler() {
@Override
public void paint(int x, int y, int w, int h)
{
// TODO Auto-generated method stub
}
@Override
public void close()
{
}
@Override
public void addWidgets(List<Gui> widgets, int x, int y, int w, int h)
{
widgets.add(new GuiButton(100, x+10, y+10, "HELLO"));
}
@Override
public void actionCallback(int actionId)
{
// TODO Auto-generated method stub
}
};
}
}
@@ -1,55 +0,0 @@
package cpw.mods.fml.client;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.resources.I18n;
public class GuiIngameModOptions extends GuiScreen
{
private final GuiScreen parentScreen;
protected String title = "Mod Options";
private GuiModOptionList optionList;
public GuiIngameModOptions(GuiScreen parentScreen)
{
this.parentScreen = parentScreen;
}
@SuppressWarnings("unchecked")
@Override
public void initGui()
{
this.optionList=new GuiModOptionList(this);
this.optionList.registerScrollButtons(this.buttonList, 7, 8);
this.buttonList.add(new GuiButton(200, this.width / 2 - 100, this.height / 6 + 168, I18n.format("gui.done", new Object[0])));
}
@Override
protected void actionPerformed(GuiButton p_146284_1_)
{
if (p_146284_1_.enabled)
{
if (p_146284_1_.id == 200)
{
this.mc.gameSettings.saveOptions();
this.mc.displayGuiScreen(this.parentScreen);
}
}
}
@Override
public void drawScreen(int p_73863_1_, int p_73863_2_, float p_73863_3_)
{
// force a non-transparent background
this.drawDefaultBackground();
this.optionList.drawScreen(p_73863_1_, p_73863_2_, p_73863_3_);
this.drawCenteredString(this.fontRendererObj, this.title, this.width / 2, 15, 0xFFFFFF);
super.drawScreen(p_73863_1_, p_73863_2_, p_73863_3_);
}
FontRenderer getFontRenderer() {
return fontRendererObj;
}
}
Loaded 100 of 1179 files, more files were not shown because too many files have changed in this diff. Show more