Compare commits

...
2049 Commits
Author SHA1 Message Date
LexManos e08c63b57b Merge pull request #1184 from bspkrs/patch-2
Fix config category names being quoted to many times.
2014-07-02 14:55:03 -07:00
LexManos db1e2c863d Merge pull request #1192 from bloodmc/mc172
Fixed wrong method call in ChunkIOProvider.
2014-06-29 14:56:10 -07:00
bloodshot ea7be67db2 Fixed wrong method call in ChunkIOProvider.
When a chunk fails to load async, we fallback to the original sync method.
In this case, it was calling the async method twice which ended up causing
a stackoverflow.
2014-06-29 14:31:53 -04:00
bspkrs 6144650579 dupe quotes fix for category names 2014-06-26 16:43:17 -04:00
cpw 6998e76d3f Fix API incompatibilities. Should mean mods will work with new config changes. 2014-06-25 20:47:33 -04:00
cpw bcda92e941 Merge branch 'bspkrsgui' 2014-06-25 20:16:20 -04:00
cpw 013c0b0feb MinecraftForge/FML@701d98eafa Added config GUI system
MinecraftForge/FML@50164db5c1 Merge branch 'master' of github.com:bspkrs/FML into bspkrsgui
MinecraftForge/FML@7eb36a1481 Merge branch 'bspkrsgui'
2014-06-25 20:15:08 -04:00
cpw 24c05a73ce Merge branch 'master' of github.com:bspkrs/MinecraftForge into bspkrsgui
Conflicts:
	src/main/resources/assets/forge/lang/en_US.lang
2014-06-25 20:13:36 -04:00
cpw 4c26057a4e MinecraftForge/FML@5d6dc5dce3 Fix up other exit points. Should stop process hangs for clean exits. 2014-06-24 22:16:39 -04:00
Christian 1275aa732e Null check the Item in the supplied stack as well as the stack itself. 2014-06-22 14:47:24 -04:00
Christian 4778c33902 And fix firing for single player loading. 2014-06-22 14:39:23 -04:00
Christian 127605ec3e Fix derpity derp. 2014-06-22 10:11:32 -04:00
Christian f7736e9a0a Fire an event when a player loads or saves from disk. Mods that want to load an additional
player related file from the players dir can now do so in that event.
2014-06-21 17:38:21 -04:00
Christian ea7c11baf4 Some patch offsets
MinecraftForge/FML@7219061b05 Also patch in warnings for Vec3Pool - similarly removed.
MinecraftForge/FML@dff2204558 FML now sets a security manager (FINALLY!). It's primary purpose at this point is to catch rogue calls to System.exit so that they can cause a proper crash report, rather than silently abandoning the game.
2014-06-21 17:34:52 -04:00
LexManos 755dd9b954 Merge pull request #1164 from lumien231/Fix-DimensionCrash
Fixes a server crash caused by a player joining that is in a non existen...
2014-06-20 17:31:45 -07:00
Lumien a21ad8fa9d Fixes a server crash caused by a player joining that is in a non existent dimension 2014-06-20 11:18:23 +02:00
LexManos 9701e944c2 Merge pull request #1162 from Thog92/1.7-biome
Add missing 1.7 biomes to BiomeDictionary
2014-06-19 11:26:38 -07:00
Thog92 a905fe578b Add missing 1.7 biomes to BiomeDictionary 2014-06-19 19:06:27 +02:00
LexManos 5ac6f2289b Merge pull request #1155 from Zarathul/master
Added soft return for modders passing invalid negative ids to OreDictionary.getOreName. Warning: WILL Error in 1.8+
2014-06-16 19:49:13 -07:00
Zarathul e68cfa9f72 Fixed ArrayIndexOutOfBoundsException in getOreName
Added sanity check to prevent ArrayIndexOutOfBoundsException in getOreName for negative ids.
2014-06-16 23:00:40 +02:00
Lex Manos bb15efd037 Fixed vines generation for hanging off of trees. 2014-06-15 11:59:11 -07:00
LexManos 7d700c9ad2 Merge pull request #1147 from bloodmc/chunkasync
Don't call ChunkDataEvent.Load async
2014-06-12 23:10:30 -07:00
bloodshot 61a6b67d51 Don't call ChunkDataEvent.Load async
ChunkDataEvent.Load must be called after TE's are loaded since this is
what mods expect. The event is handled by ChunkIOProvider during
callStage2.
2014-06-13 00:52:13 -04:00
LexManos 96286b77f9 Merge pull request #938 from bloodmc/chunkasync
Load chunks asynchronously for players.
2014-06-12 17:43:28 -07:00
LexManos 7b6b88b002 Merge pull request #1125 from alucas/addmissingjumpevent
Add missing onLivingJump calls
2014-06-12 16:20:03 -07:00
Lex Manos 1b7190c50b Pop version for new Recomended build. 2014-06-12 15:16:56 -07:00
Travis Watkins e6bbcf6a3d Load chunks asynchronously for players.
When a player triggers a chunk load via walking around or teleporting
there is no need to stop everything and get this chunk on the main thread.
The client is used to having to wait some time for this chunk and the
server doesn't immediately do anything with it except send it to the
player. At the same time chunk loading is the last major source of file IO
that still runs on the main thread.

These two facts make it possible to offload chunks loaded for this reason
to another thread. However, not all parts of chunk loading can happen off
the main thread. For this we use the new AsynchronousExecutor system to
split chunk loading in to three pieces. The first is loading data from
disk, decompressing it, and parsing it in to an NBT structure.  The second
piece is creating entities and tile entities in the chunk and adding them
to the world, this is still done on the main thread. The third piece is
informing everyone who requested a chunk load that the load is finished.
For this we register callbacks and then run them on the main thread once
the previous two stages are finished.

There are still cases where a chunk is needed immediately and these will
still trigger chunk loading entirely on the main thread. The most obvious
case is plugins using the API to request a chunk load. We also must load
the chunk immediately when something in the world tries to access it. In
these cases we ignore any possibly pending or in progress chunk loading
that is happening asynchronously as we will have the chunk loaded by the
time they are finished.

The hope is that overall this system will result in less CPU time and
pauses due to blocking file IO on the main thread thus giving more
consistent performance. Testing so far has shown that this also speeds up
chunk loading client side although some of this is likely to be because
we are sending less chunks at once for the client to process.

Thanks for ammaraskar for help with the implementation of this feature.

This commit is based off the following :

Bukkit/CraftBukkit@b8fc6ab2c1
Bukkit/CraftBukkit@85f5776df2
Bukkit/CraftBukkit@0714971ca2
Bukkit/CraftBukkit@7f49722f45
Bukkit/CraftBukkit@53ad0cf1ab
2014-06-12 16:51:17 -04:00
Christian b12e0bff2a MinecraftForge/FML@1a99ec7db6 Deprecate getAABBPool so people can stop using it in mods. Failure to do so will result in 1.7.10 upgrade incompatibility. Use getBoundingBox instead. 2014-06-12 14:45:25 -04:00
Christian aaccbb8247 Warn when chunks are being self-recursively loaded. This can cause serious issues. Modders should watch out. 2014-06-12 14:45:25 -04:00
LexManos c45ed6f6d8 Changed dustLapis to gemLapis to make OM SHUT THE HELL UP. 2014-06-11 22:43:15 -07:00
Lex Manos dd5b51aac1 Fixed missed metadata offset, and now cache return values of getOres for speed. 2014-06-11 10:27:28 -07:00
Antoine 27d9edac67 Add missing onLivingJump calls 2014-06-11 13:37:36 +02:00
LexManos a08357a845 Merge pull request #1126 from Cojomax99/fog_customization
World fog color and density can now be controlled through an event
2014-06-11 00:57:33 -07:00
Cojomax99 9a3bc1fff5 World fog color and density can now be controlled through an event 2014-06-11 10:54:54 +03:00
LexManos 4ae1abd7d4 Merge pull request #1134 from diesieben07/ender-teleport
Fix EnderTeleportEvent for Ender Pearls.
2014-06-10 18:49:32 -07:00
Lex Manos d5a4ee2c10 Fixed inverted player parameters in PlayerEvent.Clone, Closes #1142 Closes #1140 2014-06-10 18:48:00 -07:00
Lex Manos 5849458443 Changed EntityWolf to EntityTameable in EntityLivingBase.attackEntityFrom, to allow for more custom pets. Closes #1141 2014-06-10 18:20:59 -07:00
Lex Manos 7a43d2f96a Rework OreDictionary's internals to be a bit more speedy to help combat modders using it inapropriatly. Closes #1022 Closes #1131 2014-06-10 18:05:09 -07:00
diesieben07 b0195f31e4 Fix not being able to change target & attackDamage for EnderTeleportEvent. 2014-06-07 13:45:29 +02:00
Christian 58e69af1b3 MinecraftForge/FML@e3ce211cc7 Nullcheck the dispatchers on players. Should stop some crashes when spamming connectivity.
MinecraftForge/FML@480bf2c1d0 Fix REPLY handling in SimpleNetworkWrapper. Closes  #440
2014-06-05 15:31:11 -04:00
Lex Manos 03ae909762 Fix inverted parameters in OreDictionary.getOreID Closes #1123
-.- Closes #1120
2014-06-04 23:09:13 -07:00
bspkrs 04c2ed554d Added support for new FML config GUI classes
refactored lots of stuff based on comments

added Configuration.load() exception handling and logging
2014-06-04 17:39:47 -04:00
LexManos f3cbc6c262 Merge pull request #1034 from Adubbz/master
Greatly simplified the addition of new biomes to the default world. If this breaks things blame Adubbz.
2014-06-02 17:00:47 -07:00
Lex Manos 42fc3c9516 Added Noteblock change and play events. Closes #1027 #1025 2014-06-02 16:57:04 -07:00
Lex Manos b301b1f70c Add target world to PlayerInteractEvent for potential 'cross dimension' interaction such as LittleBlocks. Closes #1071 2014-06-02 15:49:11 -07:00
Lex Manos eb1ddab278 Add a couple of localizations to Forge added strings. Closes #1068 2014-06-02 15:28:11 -07:00
LexManos 0456c4d5ae Merge pull request #1095 from rwtema/master
Fixed setBlock not using the location version of getLightOpacity()
2014-06-02 14:28:42 -07:00
Lex Manos fa3feda0d5 Filter all vanilla blocks that we missed through Forge's getDrops and BlockDrops events. As well as implemented IShearable for DoublePlants and DeadBushes. Mojang really should generic out some of this stuff instead of repeating logic all over the place! 2014-06-02 14:10:49 -07:00
Lex Manos f2a33ea9f6 Add comment to RotationHelper telling modders where to actually look, closes #1115 2014-06-02 12:20:28 -07:00
Lex Manos e7f492a15b Fixed GuiContainer calling button.mouseReleased. Closes #1116 2014-06-02 12:01:34 -07:00
Lex Manos 5fe0a0ea5a Fix patch fuzz 2014-06-02 12:01:10 -07:00
Christian 2e152c52c4 MinecraftForge/FML@585d3a91e1 If a packet is not handled by the channel, log it, and clear it. Could be spammy, but this is a serious bug and could cause a memory leak otherwise.
MinecraftForge/FML@cd715efca1 Log the queue as well
2014-05-31 09:53:36 -04:00
LexManos 7f018dad0f Merge pull request #1112 from diesieben07/entity-tracking
Add PlayerEvent.StartTracking and .StopTracking
2014-05-29 17:19:58 -07:00
diesieben07 deb5df542e Add PlayerEvent.StartTracking and .StopTracking & make trackedEntityIDs visible
& Update, as discussed on IRC (squash)
2014-05-30 01:59:05 +02:00
LexManos 4a6a49e073 Merge pull request #1109 from Open-Code-Developers/finite-patch
Make finite fluid blocks drainable
2014-05-29 15:18:34 -07:00
Lex Manos 0737601dbf Fix enum helpers for EnumRarity {moved to Commn and changed paramter} and EnumCreatureType {new parameter} and added junit test for them. Closes #1009 2014-05-28 15:28:40 -07:00
Christian 0a56e19d47 MinecraftForge/FML@1d41aa978d Fix the side for the compatibility check. Should result in green ticks finally! 2014-05-26 15:30:22 -04:00
Lex Manos 5f90e0788b Change IShearable JavaDoc by one line so Anti would shut up. Closes #1054 2014-05-26 11:26:53 -07:00
Christian 36ab17474b MinecraftForge/FML@4512f8e5e3 Warn when the objectholder finds nothing in the registry. Helps debug mismatched names. Also, actually make the scoping thing work with objectholder 2014-05-26 11:29:15 -04:00
LexManos 96ee4caf39 Merge pull request #1089 from RainWarrior/render-events
Added world display list render events
2014-05-25 17:16:08 -07:00
RainWarrior 3980bf79da Added world display list render events 2014-05-26 04:09:21 +04:00
LexManos 5eb99791b0 Merge pull request #1103 from ganymedes01/patch-1
Fix getOreIDs not using the wildcard value correctly
2014-05-25 15:35:15 -07:00
ganymedes01 6924fef324 Fix getOreIDs not using the wildcard value correctly
You can see it's not working by requesting the ore IDs from lapis, and you'll see the name "dye" is missing (and that's the one registered using the wildcard).

Fixed it by inverting the order of the item stack parameters.
2014-05-25 19:15:26 -03:00
Lex Manos 25ef7e3469 Prevent duplciates in registered Ores in the OreDictionary and clean up some of the code, add new function to return all ores the specified ItemStack satisfies. Closes #1102 2014-05-25 14:20:02 -07:00
LexManos 507f184144 Merge pull request #1101 from Open-Code-Developers/master
Fix fluid blocks
2014-05-25 13:41:13 -07:00
Vilim bc1434ff04 Make finite fluid blocks drainable 2014-05-25 19:59:59 +02:00
Vilim bab2de72bc Fix fluid blocks
For https://github.com/BuildCraft/BuildCraft/issues/1843 .
2014-05-25 18:42:17 +02:00
Lex Manos fcc43e0aaa Updated FML:
MinecraftForge/FML@3aba56440a lastIndexOf, Note Don't code while sick.
2014-05-24 21:49:22 -07:00
Lex Manos fc70334343 Updated FML:
MinecraftForge/FML@3a687f48b9 -.- Save File First. My Bad.
2014-05-24 21:11:35 -07:00
Lex Manos db52113a7e Updated FML:
MinecraftForge/FML@c828bb63c5 Make AccessTransformer change INVOKESPECIAL to INVOKEVIRTUAL when making methods visible
MinecraftForge/FML@a9aa468457 Merge pull request #431 from diesieben07/at-invokevirtual
MinecraftForge/FML@31d726abad Fix the null networkHandler in the MessageContext
MinecraftForge/FML@725d988e36 Add in the objectholder, autopopulated by FML based on simple rules. Allows for reference driven substitution of mod blocks and items based on their server running state.
MinecraftForge/FML@f07bf5cb30 Fixed deobfusication of nested inner classes. And removed legacy ModLoader remaps.
2014-05-24 20:46:04 -07:00
Lex Manos 243aa60bf9 Add Glass, Colored glass, ore storage blocks, alines, and a few others to ore dicitonary. Closes #1011 2014-05-24 13:01:35 -07:00
Lex Manos acf8e468f3 Made WorldGenShrub respect Block.canSustainPlant, Closes #1096 2014-05-24 10:55:57 -07:00
Lex Manos dc10db1d90 Add new PlayerEvent.Clone called when an EntityPlayer is cloned via dimension travil or respawn. 2014-05-24 10:50:52 -07:00
rwtema 576a1294da Fixed setBlock not using the location-specific version of getLightOpacity() 2014-05-23 22:37:41 +01:00
LexManos 8145de123e Merge pull request #1091 from Clashsoft/master
Don't render ItemStack tooltip twice
2014-05-22 09:57:36 -07:00
Clashsoft e530089639 Update GuiScreen.java.patch 2014-05-22 16:12:52 +02:00
LexManos d63a9b1b10 Merge pull request #1086 from WaDelma/master
Added amount that is being filled/drained to the FluidEvent
2014-05-21 18:44:38 -07:00
WaDelma a3e8f0cbe4 Fluid events now know how much fluid is moved
Added amount that is being filled/drained to the FluidEvent

Added constructors without amount to ensure backwards compability

Added deprecation to amountless constructors
2014-05-20 01:39:51 +03:00
Lex Manos 7b062dd390 Fixed Stems not droping a random number of seeds based on metadata, Closes #1087 2014-05-19 11:11:04 -07:00
LexManos 83e7130216 Merge pull request #1081 from XCompWiz/master
Bug Fixes to Biome Decoration and Chunk
2014-05-18 15:48:10 -07:00
XCompWiz cdad2dc55a Bug Fixes to Biome Decoration and Chunk
Fixes issue with biome decoration crashing on worlds with exposed void
Fixes same issue in JungleBiome decoration
Fixes forge bug in getting lighting from a block in chunk
2014-05-19 01:37:59 +03:00
Lex Manos 9d66c91c86 Added accessible instance to RenderBlocks and RenderItem for modders to use who don't wish to create there own instance. Warning: Other modders may influance the transient state of the instance, BE WEARY MODDERS. 2014-05-14 12:23:22 -07:00
Lex Manos 1c7341b982 Added Farmland to PLAINS type plants as that has changed in 1.7. Also made BlockTallGrass call it's super.canBlockStay to better support custom soils. Closes #1077 2014-05-14 12:21:24 -07:00
Lex Manos 5e6c346c7c In Flower Forest biome a Poppy should spawn instead of Blue Orchid Closes #1078 2014-05-14 12:20:04 -07:00
Christian 3d9b5b1472 MinecraftForge/FML@43e3ee1af1 Swap Listenerlist constructor around. Should fix parent resizing issue? 2014-05-14 14:24:16 -04:00
Christian 7578f0813b MinecraftForge/FML@70570a863f Fix up possible CME 2014-05-14 10:13:00 -04:00
Christian 71b3ba2041 MinecraftForge/FML@503da3a257 Don't consider null NetworkDispatchers. This should fix a bunch of fakeplayer issues. 2014-05-13 08:16:22 -04:00
Lex Manos f95ca18707 Fixed No Blue Orchids spawn in swamp when using bone meal Closes #1072 2014-05-12 12:36:36 -07:00
Lex Manos 711e92a59f Fully clear DimensionManager's DimensionID bitset when world is loaded. Closes #1074 2014-05-12 11:46:03 -07:00
Christian 26c55d89ef Fix forge validating strict versions on remote connections. 2014-05-12 13:49:46 -04:00
Christian 51b55eaf25 MinecraftForge/FML@a8cbef2321 Finally hopefully fully kills the race condition causing a classcast on slow machines.
MinecraftForge/FML@8dbd1ae0a1 Fix ObjectIntIdentityMap sporadically matching non-identical objects.
MinecraftForge/FML@42713c66e5 Merge pull request #426 from sfPlayer1/master
2014-05-12 10:51:00 -04:00
Adubbz 4454d3f341 Greatly simplified the addition of new biomes to the default world 2014-05-11 15:06:14 +10:00
Christian bb52a6b062 MinecraftForge/FML@d8b6adb259 Add a helper for casting some common collection types into generic form
MinecraftForge/FML@5275cea844 Try and see if there is anything to the identityHashCode collision hypothesis. If you see this in your error messages, kindly let us know!
2014-05-10 14:54:23 -04:00
Lex Manos 80511409ff Updated FML:
MinecraftForge/FML@a70308ef41 Update mcmod.info
MinecraftForge/FML@8555344eb3 updated wrapper to gradle 1.12
MinecraftForge/FML@1d5fc60f82 Merge pull request #411 from matthewprenger/master
MinecraftForge/FML@3612ad0c25 Attempt to fix another race condition related to reading NetClientHandler.
MinecraftForge/FML@c73a2076e3 Fix potential rance condition in connecting to vanilla servers as well. And move latch into client side only.
MinecraftForge/FML@1436ac2f14 Fine use FMLCommonHandler.
MinecraftForge/FML@542e9acec1 documented dependencies
MinecraftForge/FML@ddc2cfbe86 Merge pull request #402 from AbrarSyed/patch-1
MinecraftForge/FML@362ec8dee7 Merge pull request #419 from Thog92/master
MinecraftForge/FML@b9de9ebc96 Revert "Fix refreshResources not happening if an error occurs."
MinecraftForge/FML@738ce1d7cd Re-add removed genericiterable to clean a warning
MinecraftForge/FML@b0eb1ef7c6 Split loadmods into loadmods and preinitmods, to allow resource loading to occur *always* between the two phases. This should fix mods not being able to access resources during preinit.
MinecraftForge/FML@de546bdf6c Clean up some missing generic info
MinecraftForge/FML@cd43eacbb2 Ensure that the loadcontroller is ready to preinit.
MinecraftForge/FML@f2fe80dc36 Fixed default network mod checking to allow client side mods without the server side. Mods wishing to REQUIRE server side components must specify a custom check handler using @NetworkCheckHandler
MinecraftForge/FML@0c36868f92 Fix network disconnect with message on the client side in NetworkDispatcher.
2014-05-09 13:34:08 -07:00
LexManos 51628825e5 Merge pull request #1064 from bspkrs/patch-2
Fixed unforeseen NPE
2014-05-08 08:40:25 -07:00
bspkrs e625622b6e Fixed unforeseen NPE 2014-05-08 10:22:48 -04:00
Lex Manos 9e1f038c16 Revert "Implemented hashCode and equals in ItemStack, Closes #986"
This reverts commit 0b01545a03.
2014-05-07 22:08:06 -07:00
Lex Manos 0b01545a03 Implemented hashCode and equals in ItemStack, Closes #986 2014-05-07 15:28:03 -07:00
Lex Manos c8abc41aa0 Fix extended entity properties being lost when leaving the end, This introduces the concept of calling IExtendedEntityProperties.init when entites/worlds change. Lets see if mods explode. 2014-05-07 14:52:18 -07:00
LexManos 3b79370be1 Merge pull request #1062 from bspkrs/master
New GuiScreen events and a new ElementType DEBUG for RenderGameOverlayEvent
2014-05-07 13:58:18 -07:00
bspkrs eb2549c773 New GuiScreen events and a new ElementType DEBUG for RenderGameOverlayEvent 2014-05-07 16:52:10 -04:00
Lex Manos d881baa581 Added new hook to WeightedRandom.getItem that allows for use of custom rnadom generators, prevents redundant code in mods. 2014-05-07 13:27:05 -07:00
Lex Manos f81c0cb58f Fixed hard references in WorldGenBigTree and ForgeCommand that caused worlds to leak in the client. 2014-05-07 12:18:56 -07:00
Lex Manos 0fe2584b77 Updated FML:
MinecraftForge/FML@2c56c32c5a Fix saving backups with the raw name. Fix air block not being assigned as the default.
MinecraftForge/FML@d0f8073fa5 Merge pull request #413 from sfPlayer1/master
MinecraftForge/FML@810b1f3075 Clean some generic warnings up. Make a generic list handler. Helpful for others I think too.
MinecraftForge/FML@fff86ee9d3 Fix refreshResources not happening if an error occurs.
MinecraftForge/FML@76d8d0e870 Fix mod version checking
MinecraftForge/FML@b84d0760ae Fix display of mod status at the server
MinecraftForge/FML@251af1d09d Fixed memory leak on the client caused by Netty holding references to the World.
2014-05-07 12:17:52 -07:00
LexManos 5fc3e7e913 Merge pull request #1060 from Azanor/master
Fix for Block.getExplosionResistance getting passed the wrong parameters
2014-05-07 09:41:43 -07:00
Azanor 2e1033b045 Fix for Block.getExplosionResistance getting passed the wrong parameters
It is being sent the x, x, y coordinates instead of x, y, z
2014-05-07 17:21:58 +02:00
LexManos 80fd60eaff Merge pull request #1051 from Deadrik/ChunkProviderFixes
ReplaceBiomeBlocks Event changes
2014-04-29 17:38:37 -07:00
Bioxx f848955263 Adds a new ReplaceBiomeBlocks Event constructor that supplies the metadata array if applicable and updates the ChunkProviderGenerate class to pass in the metadata array. 2014-04-29 19:40:32 -04:00
LexManos d01758e90d Merge pull request #1050 from CovertJaguar/master
Flexible Rail return value was inverted between 1.6 and 1.7
2014-04-29 14:12:33 -07:00
CovertJaguar 5f6e1167f4 Fix issue with flexible rail return value
Between 1.6 and 1.7 the return value to BlockRailBase.isFlexibleRail()
was inverted. While this is not a huge deal and could be worked around
by simply inverting your return value, it does mean its no longer
consistent with the function name and javadocs.
2014-04-29 14:07:59 -07:00
Christian 63a205c043 No, this is not me modding either. I'm doing this as a favour for Lex, who's a bit computerless at the minute.
MinecraftForge/FML@77c254a6d9 I am not modding, I am fixing an annoyance. The MCP version has long since been 9.03. Also, the JSON from MC updated..
MinecraftForge/FML@7f01cf549b I'm still not modding. Player has contributed greatly to the 1.7 release of FML. He needs authorship credit.
MinecraftForge/FML@2b8d0f6680 Fix SimpleNetworkWrapper - this is not me modding, I didn't realize it was broken until Pahimar told me.
MinecraftForge/FML@ddee7eb117 Fix vanilla bug causing integrated server saving from 2 threads concurrently after a crash
MinecraftForge/FML@59a5adfdb3 Registry: Fix Block-before-ItemBlock allocation when loading 1.6 world saves, more validation
MinecraftForge/FML@d88b2aa0c5 prevent the world from getting saved twice at shutdown
MinecraftForge/FML@9b1cbab03b Registry: Crash earlier with conflicting name/object registrations.
MinecraftForge/FML@7ba167c500 Registry: Misc tweaks
MinecraftForge/FML@78248da399 Registry: Treat all 1.6 entries as items.
2014-04-28 15:59:30 -04:00
LexManos 022cefc72a Merge pull request #1044 from bspkrs/patch-1
Fixed typo in update checker
2014-04-20 03:52:55 -07:00
bspkrs 3fa0c70f2b get a spelling checker :P 2014-04-18 11:21:40 -04:00
Lex Manos a008339c6e Bump Forge version in prep for release. 2014-04-16 17:30:50 -07:00
Lex Manos 172ea90c59 Try and fix invalid framebuffer depth/stencil setup, Thanks Ivoforce. Closes #1032 2014-04-15 12:03:31 -07:00
LexManos cc08cb46c8 Merge pull request #1038 from planetguy32/master
Fix infinite loop in RecipeSorter
2014-04-15 14:47:36 -04:00
planetguy32 fd59ab261f Fix infinite loop in RecipeSorter
If recipe is multiple levels of inheritance from Object and not categorized, cls=cls.getSuperclass(); needs to be repeated more than once. It must therefore be moved to inside the while loop.
2014-04-12 20:04:02 -07:00
LexManos 2cef9c5cb2 Merge pull request #1029 from iChun/patch-1
Fixes stencil buffers on platforms not supporting OpenGL 3.0 or higher.
2014-04-07 10:43:02 -07:00
iChun cc54645bf3 Fixes stencil buffers on platforms not supporting OpenGL 3.0 or higher. 2014-04-08 01:09:17 +08:00
Lex Manos 2b40a5e3ce Small wording change in license to allow for specifc differnet licnense contributions.
Updated FML:
MinecraftForge/FML@e58562d3ed Fix remaining issue with autoassigned Block and Item IDs overlapping.
MinecraftForge/FML@a82195772e Registry: Block IDs after failing to find a mapping for them
MinecraftForge/FML@fd9389015f Fix FMLMissingMappingsEvent.get
MinecraftForge/FML@5eebd4df71 Registry: Implement support for remapping blocks/items to a new name.
MinecraftForge/FML@7325aa5033 Registry: cleanup, fix missing id error GUI formatting
MinecraftForge/FML@eb29d651eb Fix old 1.7 worlds with broken ID mappings
MinecraftForge/FML@6fd3c12a4a Registry: allow handling missing blocks/items regardless of the mod id
MinecraftForge/FML@038fa17ad3 Merge branch 'master' of https://github.com/MinecraftForge/FML
MinecraftForge/FML@49c623f59c initial attempt at a better way to ask the user in case of startup issues
MinecraftForge/FML@9be92dcfcb Registry: Complain about bogus registrations
MinecraftForge/FML@fd6d55afcc Registry: Allow ignoring missing mods from the GUI, with confirm+backup
  Registry: Add confirm+backup for automated corrupted id table fixup Require the user to confirm loading from a backup level.dat
MinecraftForge/FML@c47fc3b382 Enable custom gui rendering only as required
MinecraftForge/FML@f77632df35 Remove unneeded entity spawn debug logging.
MinecraftForge/FML@c7adb42199 Registry: Repair mismatched ItemBlocks as well Fix a few misc issues
MinecraftForge/FML@c8a245a985 Registry: Fix debug info
MinecraftForge/FML@c8a0b72eba Registry: Complain about missing mods when repairing broken worlds Registry: Reduce console spam
MinecraftForge/FML@8e44006f43 Registry: Protect against putObject misuse, handle duplicate registrations better
MinecraftForge/FML@294c93212c Registry: Add support for registering ItemBlocks before their Blocks
MinecraftForge/FML@3b42b33b6e Merge pull request #400 from sfPlayer1/master
2014-04-07 10:01:56 -07:00
LexManos ae81ad58ea Merge pull request #1028 from alexbegt/patch-1
Small Fix: Held Items & Multiple Render Passes
2014-04-06 16:34:58 -07:00
Alexander Behrhof 36298e2bfe Small Fix: Held Items & Multiple Render Passes
Passes beyond 1 now have the correct icon.
2014-04-06 17:29:23 -04:00
Lex Manos 7b19768c4c Fix line offset in Minecraft patch, and mix RenderPlayer looping once to many on multi-pass items. 2014-04-04 14:20:56 -07:00
LexManos 094d80fe66 Merge pull request #1024 from ShetiPhian/patch-1
Add a variable for SoundCategory in PlaySoundEvent17
2014-04-03 19:59:56 -07:00
ShetiPhian bba42d4230 Update PlaySoundEvent17.java 2014-04-03 22:25:49 -04:00
Lex Manos 621fb050ce Finally do SoundSystem workup for 1.7, Closes #982 2014-04-03 03:12:22 -07:00
Lex Manos 5fbc70173c Add NPE protection to GuiingameMenu.actionPerformed, Closes #961 2014-04-03 02:11:17 -07:00
Lex Manos 72d22c5827 Update access transformer, Closes #951 and #1021 2014-04-03 02:10:43 -07:00
Lex Manos 12e8d95e9f Fix potential threading issue if FluidRegistry.loopupFluidForBlock is called from two threads at the same time before being setup. Closes #936 2014-04-02 23:53:05 -07:00
Lex Manos 14b9d639a2 Use BiomeGenBase's array size instead of hardcoding it in BiomeDictionary. Closes #871 2014-04-02 23:46:52 -07:00
Lex Manos 5f62afb5f2 Add AnvilUpdateEvent which is fired when a user places a item in both input slots of a Anvil and allows modders to control the output. Closes #838 2014-04-02 18:33:13 -07:00
Lex Manos 33bf2c8a69 Add ANIMALS tpe to PopulateChunkEvent.Populate Custom providers should call this function if they spawn animals curing population. Closes #790 2014-04-02 17:40:03 -07:00
Lex Manos 56084b584d ItemStack sensitive version of Item.getAttributeModifiers, Closes #816 2014-04-02 17:24:25 -07:00
Lex Manos b0bfea4e03 New hook to truely seperate the display of the 'durability' bar from the current / max durability. Allowing modders to control that display easier. 2014-04-02 17:08:22 -07:00
Lex Manos aa0c902d22 Advanced Model Loader available server-side for data driven models. To be cleanuped and re-evaluated in 1.8. Closes #773 2014-04-01 15:02:06 -07:00
Lex Manos d9a1c718bf Add position to BreakSpeed event. Closes #621 2014-04-01 15:00:25 -07:00
Lex Manos f436b3e62d Update patches for new Fixed FernFlower used in FG 1.2. 2014-03-31 16:48:21 -07:00
LexManos 8576fe6dbe Merge pull request #1012 from AbrarSyed/master
Updated for ForgeGradle 1.2
2014-03-31 16:05:09 -07:00
AbrarSyed 1d2d0ea5cd fixed remaining noop patches and exc derp 2014-03-29 01:52:11 -05:00
AbrarSyed 5d43695710 updated FML to latest master 2014-03-29 01:14:24 -05:00
AbrarSyed 0e1a1202d8 added .exe file.. fixed a bunch of patches 2014-03-29 01:12:45 -05:00
AbrarSyed 9d3a274cb6 updated for ForgeGradle 1.2 2014-03-25 10:15:42 -05:00
AbrarSyed 2a2e201f4a COnverted patches to SRG names 2014-03-25 10:13:57 -05:00
LexManos 0620a64813 Merge pull request #998 from Eurymachus/master
This correctly uses the world height less one block for placement of a door
2014-03-15 16:31:57 -05:00
Eurymachus 05afb0c347 This correctly uses the world height less one block for placement of a
Door.

Required for placing doors inside a littleblocks area.
2014-03-12 13:26:48 +00:00
Lex Manos 185b9f8368 MinecraftForge/FML@ef07de4f65 Fix hard link to DedicatedSerever when opening a LAN connection causing stalls on connecting. 2014-03-11 00:55:57 -07:00
Lex Manos ea2c07c727 -.- Both null combinations. 2014-03-10 23:41:37 -07:00
Lex Manos 1a9e13f880 properly implement equals, sod off Player. 2014-03-10 23:27:30 -07:00
Lex Manos d97ec2763c Implement simple hash based equals in Fluid ContainerKey. 2014-03-10 22:51:31 -07:00
Lex Manos 534b241e9f Make StructureVillagePieces.Village public. 2014-03-10 22:12:46 -07:00
LexManos 0513182e3c Merge pull request #995 from iChun/master
Fixes stencil bits not existing in Minecraft's framebuffer causing stencil test to not work.
2014-03-10 17:42:55 -05:00
iChun 741a90c6bd Fixes stencil bits not existing in Minecraft's framebuffer causing stencil test to not work. 2014-03-11 06:40:37 +08:00
Lex Manos 68eb0d15dc Updated FML:
MinecraftForge/FML@e8b60441cc Reload game settings after mod loading is finished to capture mod keybindings. Closes #378
MinecraftForge/FML@399770e572 Kill the modEventTypes list, register anything that extends FMLEvent, Fixes MissingMappingEvent handler, and any futureevents added.
MinecraftForge/FML@b7ad532ab5 Re-enable post initalize texture pack reloading to allow Icons to be registerd through any init phase.
2014-03-09 13:44:36 -07:00
LexManos 8660d0471f Merge pull request #983 from DemoXinMC/master
Added Ore Dictionary entries and recipe replacements for Diamond, Emerald, Crops, Redstone, and Glowstone
2014-03-01 12:06:08 -08:00
LexManos 0a6dc66749 Merge pull request #984 from ShetiPhian/item-renderer-fix
Small Fix: Held Items & Multiple Render Passes
2014-02-28 05:03:41 -08:00
DemoXin 488eb30272 * Fixed Items.glowstone to Items.glowstone_dust 2014-02-28 02:54:50 -05:00
Timothy Tomkins d2d2032f93 Small Fix: Held Items & Multiple Render Passes
Passes beyond 1 now have the correct icon.
2014-02-27 23:57:44 -05:00
DemoXin 58fde290f8 * Added Ore Dictionary entries and recipe replacements for Diamond, Emerald, Crops, Redstone, and Glowstone 2014-02-27 22:48:33 -05:00
Lex Manos 246152d3c4 Fixed hashcode in FluidContainerRegistry, still needs a redesign. Closes #967 2014-02-23 16:56:29 -08:00
LexManos ee7aa93416 Merge pull request #978 from iChun/master
Add cancelable RenderHandEvent.
2014-02-21 10:28:37 -08:00
iChun bad0639e90 Add cancelable RenderHandEvent. 2014-02-22 01:13:40 +08:00
Lex Manos 6f49bba302 Fix a typo in our tile entity fix causing it to be ineffective. 2014-02-20 12:04:27 -08:00
Lex Manos b01d87f0c6 Fix items with color rendering incorrectly. 2014-02-19 12:34:21 -08:00
Christian 08a636c34f Update Forge for patch changes
MinecraftForge/FML@064b66af3d Prevent players from logging in until server has finished starting.
MinecraftForge/FML@2aa73afa15 Fix ExampleMod.java for build #1024+
MinecraftForge/FML@c890206268 Try and handle removal of mods a bit better. Currently no way to allow a world which has missing blocks to load - but i have the code in place to allow it i think.
MinecraftForge/FML@995c204338 Fix failing to load a world with missing mod blocks and items. There will be a way to force worlds to load when stuff is missing, but for right now, it will fail as this is "world safe".
MinecraftForge/FML@fa5f4c8842 Some argumentation
MinecraftForge/FML@45409bfa0c Prevent player dat files getting reset during disconnects.
MinecraftForge/FML@33100d6bab Merge pull request #371 from bl4ckscor3/patch-1
MinecraftForge/FML@572d32358a Merge pull request #373 from bloodmc/master
MinecraftForge/FML@d0dd05a15c FML expands S3F to support payloads up to 2 megs in size. Should be transparent
2014-02-18 21:03:44 -05:00
Lex Manos 3322996885 Fixeed a missed -1 in SpawnerAnimals patch. Thanks Blood. 2014-02-12 23:06:11 -08:00
Lex Manos b43d63a7ad Cull FakePlayers when worlds are unloaded. 2014-02-11 18:25:33 -08:00
Lex Manos c8e0b4a193 Use correct tag types when reading Forced Chunk data. Fixes ticket loading. Closes #964 2014-02-10 16:16:03 -08:00
Lex Manos c4972b7658 Fixed FluidContainerRegisry.contansFluid closes #845 2014-02-10 15:29:36 -08:00
Lex Manos 8462f3b17c Fix AIOOB error with Endermen and blocks >256. Also better support for ID remapping. More to come later. 2014-02-07 19:15:05 -08:00
Lex Manos 1e2c63f486 Add the beginnings of a Constants class, to document/clean some of the magic numbers that are in the MC code base. 2014-02-05 01:14:57 -08:00
Lex Manos e68577ffd3 Updated FML:
MinecraftForge/FML@03fb1879d7 Fix obf error when right clicking a Empty Map.
MinecraftForge/FML@6bb9b8b953 Clean up FMLEventChannel. Closes #367.
MinecraftForge/FML@b7b3450dcd Update MCP mapping snapshot to latest crowdsourced names.
MinecraftForge/FML@8c9e8b5270 Fix isRemote, this is integral to so many parts of the code, everyone knows it by this name, People should not change it.
2014-02-05 01:14:24 -08:00
Christian 9d919f8ac9 Fix up the event handler so it knows it's owned by forge 2014-02-02 12:34:34 -05:00
Christian 67d9dac16d Add a discriminator for fluididspacket. remove extraneous channel handler. 2014-02-02 12:19:37 -05:00
Christian 978bfd6eb1 MinecraftForge/FML@d87822ad85 Bump gradle wrapper to 1.10
MinecraftForge/FML@359ac3ca2a Ensure we check both item and block registries when finding valid IDs. Should fix #365
MinecraftForge/FML@cee0f0b811 Tweak so that writing to the context will automatically send a message back to the originator in handshakeestablished.
2014-02-02 12:18:32 -05:00
Lex Manos 539ee0ea88 Fixed missed parens causing trapdoors to fall off incorrectly. 2014-01-31 15:12:19 -08:00
Lex Manos f85ab543ee Fixed issue where enchantment effects caused slight rendeirng issue. 2014-01-31 14:32:32 -08:00
Lex Manos 51414375e4 Uncomment aa few FluidRegistry entries. 2014-01-29 21:04:34 -08:00
Lex Manos 2b9a2b5c1a Inital Fluid system update, untested. Still in progress. 2014-01-29 18:34:23 -08:00
Lex Manos 51b008c391 Attempt a AIOOB error fix in tesselator when there are alot of transparent blocks in the rendering range. 2014-01-29 16:17:31 -08:00
Lex Manos 0d84da021f Fix NPE when breaking ice. 2014-01-29 15:43:13 -08:00
Christian 3059e517c5 MinecraftForge/FML@544320b8d2 Beginning of a saveinspectionhandler.
MinecraftForge/FML@ab199c5811 Try harder to find a mod container.
MinecraftForge/FML@8633d780c9 And make a loud message if there isn't a modcontainer found, substitute Minecraft. In general, this can only happen for coremods not properly registering their code. Closes #363
2014-01-25 06:30:12 -05:00
Lex Manos f8f1b4211b Fix imporerly efficient tools breaking blocks to fast. 2014-01-24 21:43:47 -08:00
Lex Manos 30a390d4bf Adds a WeatherRender in the style of SkyRender, Closes #844 2014-01-24 19:38:33 -08:00
Lex Manos 790030ab05 Fixed potential NPE in SlotCrafting, and added ItemStack sensitive version fo hasContainerItem. Closes #854 2014-01-24 19:30:17 -08:00
Lex Manos d73f4fb7b3 Move change of metadata to immediatly after change of Block, should prevent any 'invalid' tile entities from breaking created. Reference: #897 2014-01-24 19:21:59 -08:00
Lex Manos 6f7ac27c96 New PlayerUseItemEvents, Start, Stop, Tick and Finish. See PlayerUseItemEvent.java for more details. Closes #924 2014-01-24 19:10:51 -08:00
Lex Manos 6ae2353f41 Don't short circuit item icons for multiple render passes while being used. Closes #929 2014-01-24 17:23:49 -08:00
Lex Manos c62061728b Add the ability for custom records to have finer control over there sound resource location. Closes #933 2014-01-24 17:16:35 -08:00
Lex Manos 796b53f549 Exclude cobblestone slab recipe from ore dictification, closes #940 2014-01-24 16:44:23 -08:00
Lex Manos 6c6f664c30 Implement PlayerPickupXpEvent, fired when a player aquires XP from a EntityXPOrb. Closes #942 2014-01-24 16:31:38 -08:00
Lex Manos 2e47771860 Missing EntityAITasks.tasks and MapgGenStructreIO register ATs, Closes #949 2014-01-24 16:04:41 -08:00
Lex Manos 75a80f2f75 Make ItemBlock.field_150939_a public, closes #945 2014-01-24 16:02:39 -08:00
Lex Manos aaf6dd2b2e Fix Furnace stopping on 63rd Item, Closes #947 2014-01-22 15:35:55 -08:00
Christian af011d1a57 MinecraftForge/FML@b6d95d704b Name the log files properly. fml-junk is an early startup annoyance I can't kill because log4j2.
MinecraftForge/FML@8692ca17d1 Log4j2 logging context for things. This should help add context when things go wrong in mods.
MinecraftForge/FML@a7ca131a33 And don't spam NONE everywhere
MinecraftForge/FML@741e172ffe Log4j2 doesn't need debug level logging for itself anymore
2014-01-20 22:04:52 -05:00
Christian e653204638 MinecraftForge/FML@458b0620b4 Log the bad packet in a prettier way. Also, don't show the authlib debug data in the log file. 2014-01-20 17:30:16 -05:00
Lex Manos adf0e3ab7d Add BookCloning to the recipe sorter. 2014-01-20 14:04:34 -08:00
Christian eeef1137a8 MinecraftForge/FML@9a8d16b66e Fix log4j2 config. Fix server gui to *show* logging. Fix log spamminess in the console. Fix bug in servergui that can cause deadlock.
MinecraftForge/FML@a355eecb2c Add in error logging for outbound messages. Fix bug with indexedcodec NPE
MinecraftForge/FML@1c793abe0e Fix derp with networkcheck
MinecraftForge/FML@675b5a0778 And turn down some more logging, now we have useful logging back again..
2014-01-20 16:15:57 -05:00
Christian 49886aa633 MinecraftForge/FML@4aa2416ce5 Propagate Optional method removal to trait implementation classes
MinecraftForge/FML@fc025a7b73 Logging Changes
MinecraftForge/FML@f0132a6f3b changed fml log level to all
MinecraftForge/FML@f23eba4352 put max number of FML log files to 3
MinecraftForge/FML@449ac98b77 SSP Worlds updating from 1.6 will now pop a warning message before loading, and will capture a timestamped zip file in the minecraft dir before starting to load. Allows for people to test updates.
MinecraftForge/FML@3557fe31c9 Throw an exception when discriminator is not found
MinecraftForge/FML@2524045728 Make NetworkEventFiringHandler sharable
MinecraftForge/FML@dfc0899ec6 Merge pull request #357 from jk-5/sharable
MinecraftForge/FML@79d42fca8d Merge pull request #355 from jk-5/errorhandling
MinecraftForge/FML@7907e16e96 Add a type adapter for artifact version. Should fix #354
MinecraftForge/FML@7ac5bddbc3 Allow indexed messages to validate themselves. Also, catch exceptions from an embedded channel, and cause them to close the connection. It's ugly, but it means that the client doesn't crash if it connects to a screwy bungycord that's trying a 1.6 handshake for some reason.
MinecraftForge/FML@5adacc3b33 Check the mod, not it's container, in the check handler. Closes #358
MinecraftForge/FML@3d26f28bcf Allow connection when server is apparently offline. Might allow :NOFML circumvention though. Hmmm. Closes #359
MinecraftForge/FML@a62374d4ac findBlock should now return null, not the default block, if the thing being looked for is not found. Closes #352
MinecraftForge/FML@6a695c4348 Try and stop the epic channel closed spam at close time. Closes #353
MinecraftForge/FML@35a38d7840 Make sidedproxy support non-public fields. Closes #344
MinecraftForge/FML@9d2e089df6 Merge branch 'logging' of github.com:AbrarSyed/FML into abrar-borked
MinecraftForge/FML@79b04898d4 And restore suppressions. ABRAR, DON'T TIDY CODE!!!!
MinecraftForge/FML@3dfb54e066 Merge branch 'trait-optional' of github.com:RainWarrior/FML
MinecraftForge/FML@32bb7315cc Add in example assets dir. Closes #308
MinecraftForge/FML@16d33d2989 Clean up and document outbound handler a bit better. Add in dispatcher target. Closes #361
MinecraftForge/FML@5719b9ec53 Fix reply handling. Make the proxy message available for subclasses of indexedcodec. Fire user events into the network event firing.
2014-01-20 12:03:07 -05:00
Lex Manos 28f7f523ee Add support in Techne models for the TextureSize tag. Closes #856 2014-01-18 13:53:54 -08:00
Lex Manos b917d48cff Fixed RenderWorldLastEvent never being called, was missed in 1.7 update. Closes #932 2014-01-18 13:22:09 -08:00
Lex Manos 79ebdfa145 Updated FML: MinecraftForge/FML@444a7d7fa1 Move placement of single player world load hook to fix NPEs. 2014-01-18 13:19:51 -08:00
Lex Manos 612a8a71b0 Fix flexible rails, Closes #944 2014-01-18 04:45:25 -08:00
Lex Manos b93217397c Updated FML:
MinecraftForge/FML@7c5d62704a Make UniqueIdentifier final and add a hashCode. Closes #348
MinecraftForge/FML@ff7b5845e7 Clean up some warnings about @Override
MinecraftForge/FML@275ccac6f1 Fix NPE at startup
MinecraftForge/FML@2a5a8d0cd0 Fix memory leak?!
2014-01-17 21:55:54 -08:00
Lex Manos baf95e747a Fix warnings in Forge codebase. 2014-01-17 21:55:48 -08:00
Christian eeeb4d37e8 Add exception logging to forge channel handlers as well
MinecraftForge/FML@53557dcd05 Put logging exception handlers on all channel inbounds. Fix problem with failure to login. Closes #350
2014-01-17 17:05:11 -05:00
Christian b3d8e4ea68 MinecraftForge/FML@9c96ca4402 Fire a custom packet channel registration/deregistration event, for any mods that care about that kind of thing 2014-01-16 19:47:03 -05:00
Christian b463476815 MinecraftForge/FML@e14efe786f Some fixes and tweaks
MinecraftForge/FML@c013870b1d Merge branch 'simplenet'
MinecraftForge/FML@30882b0c1d Clean up some warnings. Add in simple network impl
MinecraftForge/FML@9cab2ab36e Add in some tests and examples for the "simple" network stuff
MinecraftForge/FML@a429e106dd Fix bug with SSP, and hook so we can do confirmation of world loading, as well as other things
2014-01-16 18:19:28 -05:00
Christian c71b7554e0 MinecraftForge/FML@b362e8a273 At the request of AbrarSyed.
MinecraftForge/FML@e344303ec7 Merge pull request #346 from Jezzadabomb338/master
MinecraftForge/FML@a4686b1261 Added basic Mojang account authentication support for development time login.
MinecraftForge/FML@dd17979a2f Fix bukkit connectivity issue.
2014-01-16 15:07:48 -05:00
Christian 3c8bd6346f Updated FML:
MinecraftForge/FML@1db3daa0e8 added override toString method for getting full name.
MinecraftForge/FML@acf74a3403 changed the readme to reflect new setup task.
MinecraftForge/FML@96c19b3580 undid readme change
MinecraftForge/FML@a89939e57e Merge pull request #336 from jadar/master
MinecraftForge/FML@717a8d6945 Fix csv string vs list of strings. Thanks immibis. Closes #334
MinecraftForge/FML@584c0f368b Fix potential ordering issue, clean up some imports
MinecraftForge/FML@28293b29ea Add in a simple(ish) event driven network handling system. Register using newEventDrivenChannel and you'll get a simple network handler that will fire events at the subscriber(s) of your choice, whenever a packet is received. You'll also get some convenience methods for sending to things.
MinecraftForge/FML@80b00dc796 Fix openGui. Closes #342
MinecraftForge/FML@fc69bcf280 Fix up privacy derp in TickEvent. Closes #343
MinecraftForge/FML@10d056a494 Fix possible NPE derp
MinecraftForge/FML@5da6dcc7e3 Divert connection through FML, so we can deny connections to servers that don't want us
2014-01-14 22:02:57 -05:00
LexManos 0296803fe3 Merge pull request #926 from iChun/master
Fix erroneous position when getting player position with changed eye height.
2014-01-11 17:32:27 -08:00
iChun b1f8af7f55 Squash commits so Lex would stop whining. Fix erroneous position when getting player position with changed eye height. 2014-01-12 07:59:39 +08:00
Christian 3c0ef2cce8 Updated FML:
MinecraftForge/FML@d5bfd69e35 Fix problem with connecting to vanilla. SHOW what's modded and what's vanilla in the list. Hooks that make the blocking work to come
MinecraftForge/FML@dd098854b0 Fix the keybinding array to the right one
MinecraftForge/FML@43068eb986 Fix TargetPoint to be static
2014-01-09 08:44:52 -05:00
Lex Manos aab5b04a6d Attempt to prevent a NPE when MC renders a lot of things at once. 2014-01-06 20:25:34 -08:00
LexManos 4e45156eaf Merge pull request #928 from Minalien/master
Fixed issue with forward-slashes in texture names when registering icons, fixed custom item renderer retrieval.
2014-01-05 21:08:06 -08:00
Ken 'Minalien' Murray 9e91b0ca81 Fixed MinecraftForgeClient for custom Item Renderer implementations. Removed check for forward-slashes (/) in texture asset locations (but left check for backslash in place). 2014-01-05 21:55:04 -07:00
Lex Manos 08eb897996 MinecraftForge/FML@0d810c01fa Mark jopt needed on the server, herp derp, blame Abrar! 2014-01-05 19:08:00 -08:00
Lex Manos 0da954cc10 Fix DoublePlant placement, closes #921 2014-01-04 13:07:05 -08:00
Lex Manos a1b68d938d Deprecate BlockFire.func_149842_a, and throw exception if someone tries to set the burn properties for air. Should prevent 'The Air is on fire!' reports. 2014-01-04 13:06:31 -08:00
LexManos 325423ab02 Merge pull request #919 from VeryBigBro/patch-2
Create ru_RU.lang
2014-01-04 00:08:43 -08:00
Anton 9523059d85 Create ru_RU.lang 2014-01-04 09:28:29 +03:00
Christian 95c12b6c20 Updated FML:
MinecraftForge/FML@5317672631 Add a utility method for finding the channel handler name based on type. Should fix naming weirdnesses.
MinecraftForge/FML@9de9a15530 Fix stupid hardcoding derp
2014-01-03 23:07:55 -05:00
Lex Manos b6199c202e Fixed pipeline naming issue in the ForgeNetworkHandler. 2014-01-03 18:54:52 -08:00
LexManos 367c5d1ede Merge pull request #882 from Vexatos/patch-2
Create de_DE.lang
2014-01-03 18:29:55 -08:00
Lex Manos ef5d66ebd2 Fixed the run config for dev time server, Cloases #913 2014-01-03 17:29:40 -08:00
Lex Manos 3953eb3f6c Fix panes/iron bars not connecting correctly. Closes #904 2014-01-03 17:26:40 -08:00
Lex Manos b149ccbc17 Models now load from resource packs
Models must now be loaded from resource packs using the standard resource pack reference. For example, to load a model named "assets/mymod/models/mymodel.obj", you would call AdvancedModelLoader.loadModel("mymod:models/mymodel.obj");
Closes #670
2014-01-03 17:10:15 -08:00
Lex Manos df0b1751e6 Fixing an infinite recursion case, Closes #916 2014-01-03 16:50:02 -08:00
LexManos bb756115fa Merge pull request #915 from Adubbz/master
Made canBeReplacedByLeaves default to whether a block isn't opaque rathe...
2014-01-03 16:14:37 -08:00
Adubbz 48a9e24630 Made canBeReplacedByLeaves default to whether a block isn't opaque rather than if it is, also uninverted the checks for canBeReplacedByLeaves in WorldGenBigMushroom, WorldGenSwamp, WorldGenTaiga1 and WorldGenTaiga2 2014-01-03 18:00:11 +11:00
Christian 3896a63016 Fix inversion 2014-01-02 22:52:04 -05:00
Christian 50144d178a Updated FML:
MinecraftForge/FML@6f1da6550e Fix up mcpname derp in GuiScrollingList.
2014-01-02 22:46:42 -05:00
Christian e0840e392c Updated FML:
MinecraftForge/FML@21b13d6351 Lots of network cleanup. Gui packets now work too!
MinecraftForge/FML@b3f98d1ee0 Fix derpiness with Mods button when Realms is available
MinecraftForge/FML@cdd9d92a4f Starting work on the actual GUI. Still work to do. Needs an API.
MinecraftForge/FML@ab5eb3ccff Fix button size for GuiModList
MinecraftForge/FML@3113138bd1 Tweak button positions.
MinecraftForge/FML@c5e29b574a Avoiding redundant calls to LogManager
MinecraftForge/FML@fbc1f8f6f9 Config GUIs in the modlist now work.
MinecraftForge/FML@fa4f3015a0 Added transparent background for GuiIngameModOptions as per cpw's request. May not compile due to manual de-mcp-fication.
MinecraftForge/FML@7bf119e1e5 Fix up readmes and credits. We no longer support modloader.
MinecraftForge/FML@779cd05aa1 Tweaks
MinecraftForge/FML@b51fb91355 Merge branch 'patch-1' of github.com:airbreather/FML
2014-01-02 22:27:42 -05:00
Vexatos e6bfb6b7b3 Update de_DE.lang 2014-01-01 09:06:40 +01:00
LexManos 165cbd1c48 Merge pull request #912 from Adubbz/master
Fixed sky colour transitions on a render distance of 16, fixed the World...
2013-12-31 23:53:45 -08:00
Adubbz bd5e7f8118 Fixed sky colour transitions on a render distance of 16, fixed the WorldGen of various things 2014-01-01 18:50:52 +11:00
LexManos ccee30b15e Merge pull request #908 from jk-5/patch-1
Add constructors to DimensionRegisterMessage
2013-12-31 13:08:56 -08:00
Lex Manos 32f26561b1 Fix inverted login in BlockPistonBase causing blocks to break incorrectly. Closes #910 #909 2013-12-31 13:07:44 -08:00
Lex Manos ea0be720a1 Update patches for AT changes. 2013-12-31 13:03:45 -08:00
Lex Manos b31fbe528a Update for the FMLEmbeddedChannel change. 2013-12-31 12:48:59 -08:00
Christian 2f13622d37 Updated FML:
MinecraftForge/FML@22ba6fda5e Expose the nethandler in a few places, and pull out FMLEmbeddedChannel, exposing a utility method on it. More to come.
2013-12-31 09:46:50 -05:00
jk-5 03c4282ebf Added default constructor for reflection 2013-12-31 08:21:05 +01:00
jk-5 5ff5f1b0d5 Added a constructor and made the fields package-private 2013-12-30 21:58:53 +01:00
jk-5 07fa6615f8 Update ForgeMessage.java 2013-12-30 20:12:15 +01:00
Christian 941c2b1d14 Fix build.gradle for tweakClass property
Updated FML:
MinecraftForge/FML@f36152398d Add in the tweakclass, fix the json for lzma @ the server.
2013-12-30 13:27:15 -05:00
Christian aa67bc5da6 Updated FML:
MinecraftForge/FML@5d069629cf Allow itemstacks for furnace recipe inputs. Allow passing extra arguments through registerblock into the itemblock constructor.
2013-12-28 18:06:18 -05:00
Christian 946166f13e Updated FML:
MinecraftForge/FML@061288909d Fire simple network connect/disconnect gameevents.
2013-12-28 17:53:29 -05:00
Christian 6ab5ef1315 Merge branch 'master' of github.com:Adubbz/MinecraftForge 2013-12-28 17:02:41 -05:00
Christian 5c647d4515 Fix the network handler for forge 2013-12-28 17:01:58 -05:00
Christian 906ced3c32 Updated FML:
MinecraftForge/FML@34819c9303 Make gradlew executable on linux
MinecraftForge/FML@53a1f98414 Attempt to load old pre-1.7 worlds. ENSURE YOU HAVE A BACKUP!
MinecraftForge/FML@6a5f9e135f Fix example mod code for 1.7
2013-12-28 13:49:18 -05:00
Adubbz 164fa8f646 Made BlockCrops.getDrops call its super method 2013-12-28 23:15:09 +11:00
Christian f075264d6f Allow tools to override their material harvest levels. 2013-12-27 23:48:10 -05:00
Christian cf3447feea Tidier implementation of previous commit. Should fix for subclasses of individual tools too 2013-12-27 21:48:42 -05:00
Christian 78b1b54e2b Add in harvesting abilities of the items, should fix effectiveness 2013-12-27 21:26:42 -05:00
Christian b7eac150cc Updated FML:
MinecraftForge/FML@f8d6213829 Update render registry
MinecraftForge/FML@ec316f113f AT for renderblocks
2013-12-27 00:09:22 -05:00
Christian a9876475c1 Updated FML:
MinecraftForge/FML@268bbabee6 Fix handling world reloads when new stuffs are added
2013-12-26 12:43:34 -05:00
LexManos 46296328ff Merge pull request #893 from iChun/master
Add render offset to event.
2013-12-25 01:05:45 -08:00
iChun 5f3ece629c Add render offset to event. 2013-12-25 17:03:19 +08:00
Lex Manos a6827f9820 Fix dig speed on redstone ore and obsidian. 2013-12-25 00:41:21 -08:00
Lex Manos 40d02fe6c3 Add a version check mechanic to startup, it is done in a seperate thread and has a config option to compleetly disable it. This allows us to notify users of new recomended builds. Hopefully stemming the flow of outdated help request. Also adds a warning to the main screen if you are running a 'Beta' Forge. Which means a Forge for a new version of Minecraft that we have not promoted a recomended build for yet. 2013-12-25 00:35:59 -08:00
Lex Manos 572bc48a25 Resize pending tile updates when it goes over the curent length. Fixed AIOOB error. 2013-12-24 19:59:34 -08:00
Lex Manos 1959e414e2 Forgot to regen patches... 2013-12-23 22:45:45 -08:00
Lex Manos 08a875c39a Added constructor to WorldType, and delegated the BiomeLayer management to it. Also updated the access transformer for Item/Block classes. 2013-12-23 22:40:54 -08:00
Lex Manos 90be589ffa MinecraftForge/FML@c180d9b157 Add 1.7.2 base json, Gradle will automatically download updated versions of this. Keeping it in the repo allows us to se
e what base json we have built our jsons off of. And if it changes update accordingly.
2013-12-23 22:40:54 -08:00
Christian 780865cfed Updated FML:
MinecraftForge/FML@156a9ae03a Fix build script
MinecraftForge/FML@7d3b1250e8 Fix handshaking properly. Also, fix ID syncup. It now will completely freeze the idmap after preinit. This frozen map is used to inject "new" stuff into existing serverside worlds. Interesting sideeffect: remote servers lacking things will change the client, to also LACK ids for those things. watch for -1 ids in your remap events. Note: idmaps should be considered temporary per server instance. SERVERSTOPPED will restore "startup" state, as will client logout.
2013-12-24 01:37:25 -05:00
Lex Manos d795f1b898 Fix items rendering on the GUI with invalid state due to glint rendering changing it. Thanks iChun. 2013-12-23 20:58:48 -08:00
Lex Manos ecf8d29724 Fixed accedential inverted logic that caused Potions to render incorrectly. Thanks iChun. 2013-12-23 20:47:07 -08:00
Lex Manos 8ca1179e04 Move Grass {Flower} registry to BiomeGenBase as 1.7 made flowers Biome specifc, this means modders who wish to add global base flowers need to add them to all the biomes indavidually. 2013-12-23 20:34:39 -08:00
Lex Manos 96e23516f6 Temporary fix for items rendering with effects on one layer. Restores default vanilla rendering, which is considered a bug in modded community. 2013-12-23 20:33:32 -08:00
Lex Manos 2102965fac Fix debug HUD rendering semi-transparently. 2013-12-23 20:32:37 -08:00
Lex Manos 436f7fc550 Bump version to 10.12.0 to mark 1.7. 2013-12-22 18:48:22 -08:00
Lex Manos 2b10a2b874 Updated FML:
MinecraftForge/FML@58132ccda3 Add new required --accessToken to launch specs.
2013-12-22 18:37:53 -08:00
Lex Manos 9ee5053b71 Fix:
Block placement/interaction
  Tesselator crash due to wrong mapping
  Missing isreplaceable check in world.canPlaceAt
  Small foratting/logging cleanup
  Temporarly commented out efficancy changes till I implement it.
2013-12-22 18:25:26 -08:00
Lex Manos 30494f8ddb Fix MethodNotFound crash when shutting down internal server. 2013-12-22 18:22:57 -08:00
Lex Manos 21e505c334 Forge uses the FORGE channel for packets. 2013-12-22 18:21:56 -08:00
Lex Manos 7e668ca9ac Get object based on identity not name. 2013-12-22 18:21:43 -08:00
LexManos 1d556a5668 Merge pull request #890 from bloodmc/master
Refactored BiomeManager stronghold add/remove methods to support new MapGenStronghold dynamic biome changes.
2013-12-22 15:52:37 -08:00
bloodshot 8654623271 Refactored BiomeManager stronghold add/remove methods to support new
MapGenStronghold dynamic biome changes.
Changed InitNoiseGensEvent to pass a NoiseGenerator array instead of
NoiseGeneratorOctaves due to new NoiseGeneratorPerlin in
ChunkProviderGenerate.
Fixed worldgen crash caused by wrong metadata in Chunk patch.
2013-12-22 18:47:51 -05:00
Lex Manos e1c0cad8e1 Updated FML:
MinecraftForge/FML@a17489172c Code to disable mods at runtime, or other times.
MinecraftForge/FML@85516d9588 ICraftingHandler, IPickupHandler are now both events.
MinecraftForge/FML@e4b63a1801 IWorldGenerator now has an ordering at registration time. This means the order of worldgen should be much more stable.
MinecraftForge/FML@ef3856f9a3 Update patches for Gradle's rename rewrite: MinecraftForge/ForgeGradle@19e7acf2a2
MinecraftForge/FML@31ea100b29 Working on id missing handling
MinecraftForge/FML@3e76dfba34 More tweaking on id stuffs at worldload
MinecraftForge/FML@f860c8ad3b bump to legacy launcher 1.9 with logging unification stuffs.
2013-12-22 03:07:48 -08:00
Lex Manos a6c45a7ade Inital patch update for 1.7.2, Doesn't compile, not done yet. 2013-12-22 03:06:10 -08:00
Christian cd34090eb8 Updated FML:
MinecraftForge/FML@32561265fc Ticks, Player events, keybindings, all migrated to the new event driven system.
2013-12-16 23:20:06 -05:00
Christian ae478c92a2 Moved the core event handler parts to FML. Implemented the Forge network handler based on the new
netty strategy.

Updated FML:
MinecraftForge/FML@3b2994a3de Some patching touchups
MinecraftForge/FML@557357fe17 Update for log4j2
MinecraftForge/FML@a2b324beb2 Copy eventhandler from Forge into FML. It is going to replace a lot of the runtime event systems.
MinecraftForge/FML@4071ff38af Patch some GUIs. We're gonna add some basic mod gui config support.
MinecraftForge/FML@0b419ac79c Fire a user event down the channels when a handshake has occured.
2013-12-16 20:19:03 -05:00
Lex Manos 439dbd8bb3 Killed a few hundred compile errors. 2013-12-12 23:32:36 -08:00
Lex Manos 9cf0a5b68b Comment out fluids until King gets his hands on it 2013-12-12 23:32:18 -08:00
Lex Manos 6eb9915690 Updated FML:
MinecraftForge/FML@1d71c017f4 ID syncing.
MinecraftForge/FML@fd36f50d82 Cleanups
MinecraftForge/FML@89e4e483c2 Add in a remapping event for mods to consume.
MinecraftForge/FML@cd417c6786 Fixed remote and local connections work with mods now.
MinecraftForge/FML@ef492407ef Entity spawning works.
MinecraftForge/FML@d0d31d9575 SpawnAdjustment packet. Clean up stuffs. No more compile errors.
MinecraftForge/FML@3e278acb71 Fix stupid possible compiler error.
MinecraftForge/FML@009d4dee23 Fix the exc file. Fix the deobfremapper for handling inner classes.
MinecraftForge/FML@49cb893d12 Fix exc this time *sigh*
MinecraftForge/FML@31efcfc3b2 Clean up patches for latest exc.
MinecraftForge/FML@7a4ceebf5e Kill old patches and add rejects to ignore file.
MinecraftForge/FML@7ea571f593 Fix AT, Fix exc. Almost works now!
MinecraftForge/FML@b852e30285 First functional release under reobfuscation.
MinecraftForge/FML@df870c1a33 Update shiped ForgeGradle for 1.7
MinecraftForge/FML@55aa337f95 Rename synthetic bridge methods, these methods are not decompiled, but need to reobf correctly cross the recompile boundary.
MinecraftForge/FML@0098c57f94 Merge pull request #316 from AbrarSyed/patch-4
2013-12-12 22:59:35 -08:00
Vexatos ca7a404fc8 Create de_DE.lang 2013-12-11 15:17:20 +01:00
Lex Manos 4a1a0be51d Updated FML:
MinecraftForge/FML@a30f173627 Add sonatype snapshots repo for SpecialSource snapshots.
MinecraftForge/FML@b2550b8a69 Add mappings for Items/Blocks fields.
MinecraftForge/FML@57f7f1d7ab Update for fixed Enum cleaning and names.
MinecraftForge/FML@99c681ad87 Did it manually, forgot it needed the end comma
2013-12-09 22:03:39 -08:00
Lex Manos 521b8a16c4 Some work on 1.7, waiting for Abrar to fix a few things. 2013-12-09 21:59:12 -08:00
Lex Manos d4e7a5c68e Bump data for 1.7 start. 2013-12-09 18:47:55 -08:00
Lex Manos b474c2ca7a Kill liquids finally. 2013-12-09 18:47:15 -08:00
Lex Manos 4142f7c728 MinecraftForge/FML@3714426e19 fix derp in example builscript
MinecraftForge/FML@01fb451b69 Merge pull request #311 from AbrarSyed/patch-3
MinecraftForge/FML@30d532f4fc Pass 1: Most patches are restored.
MinecraftForge/FML@53127eec30 Merge branch 'master' of github.com:MinecraftForge/FML
MinecraftForge/FML@7ab3c3a37c Update gitignore
MinecraftForge/FML@38cec7a11f The basic network handshaking for FML is done. All scenarios seem to work.
MinecraftForge/FML@9f928963f2 A network design I like. It uses the netty embedded channel to allow mods to build channel pipelines on top of custom payload packets.
MinecraftForge/FML@58f7487cfa Check in patches. Add in some network timeout tweaking values so you can debug the network.
MinecraftForge/FML@e544adba5c More cleanup. Bidirectional server <-> client network works for mods as well as FML|HS now.
MinecraftForge/FML@f5c38e2359 OK, network channels appear to be working well for both dedi and integrated servers. The beginnings of the new mod structure too.
MinecraftForge/FML@9c96a0a10a More network stuff, partially done id syncing.
MinecraftForge/FML@2aaaeba15e ID loading from the server save now works.
2013-12-09 18:45:17 -08:00
Lex Manos 54c440d75c Bump build for gradle fixes:
Now Builds for java 1.6
  Include version,json in universal
  Fixed classpath issues in eclipse task.
2013-11-20 23:44:54 -08:00
LexManos 954d46e587 Merge pull request #868 from luacs1998/patch-1
Update readme for ForgeGradle
2013-11-20 21:47:08 -08:00
Lex Manos 198539479f Updated FML: MinecraftForge/FML@c2b919d339 Don't validate signatures in dev env. 2013-11-20 20:41:20 -08:00
luacs1998 30680d0268 Update README.txt 2013-11-20 22:49:20 +08:00
luacs1998 c1c88644ae Another update for eclipse users 2013-11-20 16:16:48 +08:00
luacs1998 36ce23073c Updated 2013-11-20 16:09:34 +08:00
luacs1998 45e2d12d06 Update readme for ForgeGradle
Let me know if there's anything else to add or change.
2013-11-20 15:49:08 +08:00
Lex Manos e18a7569f8 Fix build file pom closures. 2013-11-19 16:47:50 -08:00
Lex Manos 3470b44e9a Proper configuratuion name for jenkins. 2013-11-19 15:35:06 -08:00
LexManos 23cfb03a3b Merge pull request #867 from GUIpsp/master
Fix gradle wrapper.
2013-11-19 15:15:09 -08:00
Guilherme Espada 918f91bc44 Make the gradle wrapper executable. 2013-11-19 22:37:52 +00:00
LexManos 6ff7584f96 Merge pull request #859 from AbrarSyed/master
Gradlization
2013-11-19 14:13:56 -08:00
Lex Manos b15289113b update build.gradle 2013-11-19 16:00:07 -06:00
Lex Manos 99faaae9f6 Regenerate all patches, No functional change as added this is a formatting change only. 2013-11-18 17:17:45 -08:00
Lex Manos 0999017fda Updated FML:
MinecraftForge/FML@e9a7660cb8 updated samples
MinecraftForge/FML@30894f7afa Merge pull request #307 from AbrarSyed/master
MinecraftForge/FML@c4b8a393f9 Make the working directory the root of the eclipse workspace.
2013-11-18 17:17:22 -08:00
Lex Manos 34f4b58f69 Update run configs. 2013-11-18 16:19:31 -08:00
Lex Manos e9af710cf4 Fix for new FML, and publish to maven local 2013-11-17 12:01:31 -08:00
AbrarSyed 74104fe5d0 Update forge 2013-11-17 12:07:22 -06:00
Lex Manos 45cc0bd87c Fix NPE in FakePlayers when they are created in a purely client side environment. To remove in 1.7 as FakePlayers should be used for server side interaction with the world on a player's behalf, not for client rendering. 2013-11-16 15:26:52 -08:00
Lex Manos 77c5caffd5 Fix NPE on specific tile entities when the block break event is canceled. Closes #863 2013-11-16 15:26:00 -08:00
AbrarSyed f5335d59cc added buildSrc to the gitIgnore 2013-11-14 20:22:31 -06:00
Christian 28abe2cc3c Updated FML:
MinecraftForge/FML@23baf3a8ce Actually fix the nethandler code

Update patches
2013-11-13 19:16:24 -05:00
Christian 745d601831 Updated FML:
MinecraftForge/FML@da72640c7e Way to go, missing import. *sigh*
2013-11-13 07:46:04 -05:00
Christian 9fd39ebe79 Updated FML:
MinecraftForge/FML@b7f34629c3 Don't try and open GUIs on the server.
2013-11-12 18:05:04 -05:00
Christian 4f05808b8e Don't send openGui commands from the fakeplayer. Fixes thaumcraft and probably others. 2013-11-12 17:33:24 -05:00
Christian c8e249f919 Updated FML:
MinecraftForge/FML@6af42bc656 Add in null protection for client/server sides of handleChat
2013-11-12 17:22:20 -05:00
LexManos 7adccac8ec Merge pull request #855 from CovertJaguar/patch-4
Fix Water/Lava Fluid Localization
2013-11-12 10:00:37 -08:00
CovertJaguar 0a12840e68 Fix Water/Lava Fluid Localization 2013-11-12 01:05:13 -08:00
Lex Manos 1bd3e96e6e Noop out FakePlayer.addStat. 2013-11-11 13:15:06 -08:00
AbrarSyed cdbdd0d6fb fixed versioning and stuff 2013-11-10 00:54:57 -06:00
AbrarSyed 743d10d50e Step 3: The Rebirth 2013-11-09 21:48:53 -06:00
AbrarSyed 797399ff7f Step 2: The Reformation 2013-11-09 15:57:08 -06:00
AbrarSyed 9332673944 update FML for gradle changes 2013-11-09 15:53:05 -06:00
AbrarSyed f9563e5a34 Step 1: The Purge 2013-11-09 15:44:50 -06:00
Christian 84fd2a147e Updated FML:
MinecraftForge/FML@3d25b4e793 Add in the ability to strip interface references for specific interfaces - this is probably mostly useful for scala scenarios where sythetic methods are generated and is not a substitute for using Optional.Method where appropriate. Closes #300
2013-11-09 14:36:42 -05:00
LexManos cfd368e18f Merge pull request #852 from MinecraftForge/breakevent
Merge BreakEvent branch, as nobody has told me that it breaks everything. And in prep from 1.7.
2013-11-09 00:43:58 -08:00
Christian a9c795b54c Updated FML:
MinecraftForge/FML@f4532410ec Change a couple of warnings, as a prelude to 1.7- preinit is now required for all GameRegistry activity, and every item and block REQUIRES registration.
2013-11-06 16:19:40 -05:00
Christian 8fb4546437 Updated FML:
MinecraftForge/FML@8f87021b0f Fix derp with custom properties. They work now!
2013-11-05 22:24:36 -05:00
Christian d316d74933 Updated FML:
MinecraftForge/FML@bc57ff9e83 Fix recursive API dependency resolution. Allows nested APIs, such as BuildCraft's
2013-10-31 09:40:18 -04:00
Christian ebfaf83bd9 Updated FML:
MinecraftForge/FML@de8ab934d8 Fix up duplicate entries
2013-10-30 22:46:40 -04:00
Christian a103fbc0e6 Updated FML:
MinecraftForge/FML@81fe1c9682 Add in an API marker for API type packages. This does several things: 1. Packages marked as API will generate a new "modid" (the provides) that can be depended on. 2. Packages marked as API will be searched systemwide, and anything declaring that package (even without the API marker) will get an implicit dependency on the API package. 3. The API package itself will get a soft dependency on the "owner" package.
2013-10-30 22:30:02 -04:00
Lex Manos a4fa417114 Add new recipe sorter that is called after all mods are initalized. This is disabled by default in 1.6 to not break current worlds as it may change machine's recipy outputs. Will enable by default in 1.7. Players may enable it in the forge config. 2013-10-30 14:08:03 -07:00
LexManos a47cca7e42 Merge pull request #841 from XCompWiz/biomecheck
Adds a Check to prevent Biome Replacement
2013-10-27 22:14:54 -07:00
XCompWiz 80ac3017bd Adds a Check to prevent Biome Replacement
Splits the BiomeGenBase constructor to create one which takes a flag
that indicates whether to insert the biome object into the biomeList
array.  The standard constructor calls the new one with the default of
true.  This allows biome wrapper-objects to exist.
2013-10-28 07:11:17 +02:00
Lex Manos ec517d5f28 Format strings properly in MC's internal logger. Fixes resource pack case warnings. 2013-10-27 11:00:10 -07:00
Christian 899b28bffe Updated FML:
MinecraftForge/FML@dac7f590ea Modify ordering of networkmod registration and mod instantiation. This fixes VersionCheckHandler logging an incorrect failure message due to NPE.
MinecraftForge/FML@f0dc530b28 Fix up documentation of VersionCheckHandler - it only ever accepted a String and only works on the NetworkMod annotated class
MinecraftForge/FML@243a21a353 Wrapping coremods as tweakers. Part 1.
MinecraftForge/FML@58a299aabc Attempt to inject coremods as tweakers, so both can share a dependency ordering
2013-10-27 13:53:05 -04:00
Lex Manos 217d5562ff Fix null pointer exception in BiomeDictionary causing the ChunkManager's config to not load/save. 2013-10-19 18:31:32 -07:00
Lex Manos b0f8d495bb Updated FML: MinecraftForge/FML@bf54d4d667 Make each mod's EventBus log a child of it's main logger. 2013-10-19 18:30:19 -07:00
Lex Manos 295542c357 Add wildcard versions of OreDict replacements, Closes #827 2013-10-18 18:58:31 -07:00
Christian 4db6c4cfc4 Updated FML:
MinecraftForge/FML@da4337efbf Fix up handling the new method signature data for NetworkCheckHandlers
2013-10-14 21:30:43 -04:00
Christian efc6b9abbb Merge branch 'master' of github.com:OniBait/MinecraftForge into breakevent 2013-10-13 23:02:20 -04:00
Christian 430d94de95 Updated FML:
MinecraftForge/FML@f92962bbbb Use null to empty, so missing values work. *sigh*
2013-10-13 22:44:15 -04:00
Christian e0cb56381f And remember to make the event class static *sigh* 2013-10-13 12:23:08 -04:00
Christian f9c283a2e5 Add in an event for zombie summoning. Allows for mods to control summoning behaviour, as well as custom summoned mob. 2013-10-13 12:21:57 -04:00
Christian 6c45b43eee And set the RIGHT variable *sigh* 2013-10-13 11:55:15 -04:00
Christian de69b7dfd0 And allow for tweaking baby chance as well. 2013-10-13 11:53:48 -04:00
Christian 5f5b509c7a Allow configuration of the zombie additional summoning mechanic. The vanilla mechanic is a little borked at times. 2013-10-13 11:39:23 -04:00
Christian 29606e2c39 Updated FML:
MinecraftForge/FML@58577775d2 Very minor style fixes
MinecraftForge/FML@96be82343c Merge pull request #280 from mc10/patch-1
MinecraftForge/FML@2714da1022 Primitive capability for tweakers to order. Add a "TweakOrder" integer property to your manifest, or accept the default of zero.
2013-10-13 11:33:41 -04:00
Lex Manos 412952be5b Prevent session from being printed to the console, also make sure the username is not empty. Causes a lot of bugs further down the line. 2013-10-12 23:10:23 -07:00
OniBait 79e0165362 Cleaned up patches to BlockOre and BlockRedstoneOre
Fixed trailing whitespace (it bugs me too)
2013-10-10 17:15:38 -05:00
OniBait e47a6402e1 Fixed formatting 2013-10-10 12:45:56 -05:00
Christian 465525119c Updated FML:
MinecraftForge/FML@fc3e7647d2 Support, and fix up, interface lists for Optional
2013-10-09 21:00:07 -04:00
Lex Manos 43a16d5389 Added some missing air checks to world gen features. 2013-10-09 02:47:05 -07:00
OniBait 303288e8b1 Merge branch 'upstream/master' 2013-10-08 19:04:54 -05:00
OniBait eb5940664c Add block break events based on @bloodmc's initial 1.5.2 Pull Request 2013-10-08 19:00:02 -05:00
Lex Manos 1a6743331b Fix repeated argument in CleintCommands. 2013-10-07 14:16:04 -07:00
Lex Manos c8df5b832e MinecraftForge/FML@a381874bb9 Delay sound system backend initalization to speed up startup and prevent race condition on some computers. 2013-10-06 11:23:36 -07:00
LexManos fc1089713f Merge pull request #792 from Eurymachus/opencontainer
Added PlayerOpenContainerEvent and added ForgeHooks.canInteractWith
2013-10-06 09:12:25 -07:00
Christian 0866d88126 Updated FML:
MinecraftForge/FML@bc64ceabef Optional shouldn't be constructable itself. It's purely a wrapper thing.
MinecraftForge/FML@55525f6d2e ModLoader is officially deprecated. It will all cease to be with 1.7.
2013-10-06 11:17:58 -04:00
Eurymachus 8d0b58ee6f Added PlayerOpenContainerEvent and added ForgeHooks.canInteractWith
- Used to override the canInteractWith during player tick
- setResult to ALLOW/DENY as required
- Defaults to Vanilla behaviour in any other instance.

Required for LittleBlocks Mod and to Assist Gullivers Mod
2013-10-06 03:58:13 +01:00
Christian fa41058ba1 Updated FML:
MinecraftForge/FML@63ba3aa009 Add in support for Optional interfaces and methods. Be gone coremods!
2013-10-04 17:21:14 -04:00
OniBait 296a484f4b Add block break events based on @bloodmc's initial 1.5.2 Pull Request 2013-10-04 00:15:19 -05:00
Lex Manos 7d5d191fc2 Fix missing patch which caused per-world storage to not be saved. 2013-10-01 09:59:13 -07:00
LexManos d55ddfcebc Merge pull request #808 from rhilenova/player_list
Added pre/post to player list rendering in GuiIngameForge.
2013-09-30 22:52:59 -07:00
rhilenova 7147cdb1c1 Merging in master. 2013-09-30 20:30:08 -04:00
Lex Manos cba1de122a Bump version number for todays changes. 2013-09-30 17:17:35 -07:00
Lex Manos 68669e2679 Make isItemStackDamageable() pass the stack to getMaxDamage() to use the Forge version of getMaxDamage().
Fixes display issues with mods using getMaxDamage(ItemStack) instead of the vanilla one. Closes #805
2013-09-30 17:15:18 -07:00
LexManos 4374f67759 Merge pull request #803 from benblank/block-power
Allow blocks to choose how they handle indirect power
2013-09-30 17:12:34 -07:00
rhilenova 5e998776cb Moved PLAYER_LIST event inside display check. 2013-09-30 20:06:04 -04:00
LexManos b09e72a2fc Merge pull request #793 from jrtc27/install-args
Pass arguments to install.sh and install.cmd to install.py
2013-09-30 16:59:51 -07:00
Lex Manos 2e3d1a3c09 Add cancelable EntityStructByLightningEvent, Closes #789 2013-09-30 16:56:34 -07:00
Lex Manos 96b4fd1da1 Stack sensitive version of Item.getItemStackLimit. Closes #771 2013-09-30 16:21:40 -07:00
LexManos d3c80c326a Merge pull request #772 from Lomeli12/master
Villager Trading GUI will now not open if Player is sneaking. Allowing for bypassing of the GUI.
2013-09-30 16:01:51 -07:00
Lex Manos b74d977225 Added all the vanilla records to the ore dictionary. Closes #731 2013-09-30 14:58:03 -07:00
Lex Manos 73202259fa Direct canApplyAtEnchantingTable through canApply Closes #740 2013-09-30 14:51:39 -07:00
Lex Manos 01cf29a202 Add pre and post event to rendering Chat, allowing for placement of the chat box. Closes #733 2013-09-30 14:32:12 -07:00
Lex Manos 71ececdbb4 Set densityDir in BlockFluidBase's constructor, closes #737 2013-09-30 14:02:23 -07:00
Lex Manos 81efd38fee Fix placement of snow cover over metadata 6. Closes #724 2013-09-30 13:52:17 -07:00
Lex Manos b3c715c312 Add the ability to register chat commands that only execute on the client. Works with autocomplete.
Client commands are gray when shown in the autocomplete list (when you press tab)
Closes #640
2013-09-30 13:08:57 -07:00
Ben Blank 8c54873afd move shouldCheckWeakPower to Forge section 2013-09-30 11:54:03 -07:00
Lex Manos 50b9abc13f Vanilla hopper should obey the IInventory contract, TileEntityHopper now takes into account IInventory.getInventoryStackLimit() when inserting items Closes #597. 2013-09-30 11:37:37 -07:00
Lex Manos ca351b527d Update workspace to point at launchwrapper 1.8 2013-09-30 11:36:28 -07:00
LexManos e4714bc4c5 Merge pull request #796 from HoBoS-TaCo/master
Added ItemTooltipEvent
2013-09-29 19:55:14 -07:00
HoBoS_TaCo 06e2f914c1 Added ItemTooltipEvent
This event is fired at the end of ItemStack.getTooltip(EntityPlayer, boolean), which in turn is called from it's respective GUIContainer. It allows an itemstack's tooltip to be changed depending on the player, itemstack or whether the advanced information on item tooltips is being shown, toggled by F3+H.
2013-09-30 12:41:52 +10:00
Christian 3805eddd34 Updated FML:
MinecraftForge/FML@5265e34a35 Fix null killing the server
2013-09-29 16:15:03 -04:00
rhilenova e842fd95b4 Added pre/post to player list rendering in GuiIngameForge. 2013-09-29 11:43:29 -04:00
Lex Manos 5f752fc967 MinecraftForge/FML@35ab9f52b0 Fix md5s for new checksums.sha1 in scala libraries. 2013-09-28 19:48:50 -07:00
Ben Blank f40bdeca97 allow blocks to choose how they handle indirect power 2013-09-28 17:56:19 -07:00
Christian 24017d6810 Updated FML:
MinecraftForge/FML@e356f4d713 Cross-modsystem compatibility fix with thanks to Mumfrey @ liteloader
MinecraftForge/FML@9b55f1f48f Attempt at a shared modlist implementation - should allow visibility between liteloader and fml for "mod list display"
2013-09-27 10:49:28 -04:00
Christian 5a24b2d73c Updated FML:
MinecraftForge/FML@bfc25bc5da Add to both the classloader and the parent
2013-09-26 13:01:44 -04:00
Christian 4c38edf532 Updated FML:
MinecraftForge/FML@9f0f9e7288 Fix deobf tweaker
2013-09-26 10:11:46 -04:00
Christian af24dc6096 Updated FML:
MinecraftForge/FML@ce6404fd5b TYPOS!!!
2013-09-26 09:34:05 -04:00
Christian 865e4e2b45 Updated FML:
MinecraftForge/FML@8f18a3de9a Separate deobf tweaker so it runs last. Should fix problems with cascaded tweakers expecting an obf environment.
2013-09-26 09:24:04 -04:00
Christian 41617a0227 Updated FML:
MinecraftForge/FML@8e26c99de3 Add debugging for deobfuscation
MinecraftForge/FML@1d902df581 Use the negative cache in latest legacylauncher.
MinecraftForge/FML@9815d8c379 Update for launchwrapper 1.8
2013-09-26 07:59:15 -04:00
Lex Manos ab2d8fa01b Add wrapper exception to the new Structure ID system to point to the correct Structure. 2013-09-25 16:58:36 -07:00
Lex Manos 80dfdbf749 Updated FML:
MinecraftForge/FML@fc8c3bef03 Update to new installer that uses xz compression and better support for non-standard jvms
2013-09-24 23:22:27 -07:00
Lex Manos dbd19b0cad Fixed typo in bounding box based ladder checks that caused potential infinite loops with entities in certian positions. Thanks Overmind for reporting it. 2013-09-24 22:46:18 -07:00
Lex Manos 70671858c2 Remove some side onlys on BiomeEvents that don't need them. 2013-09-24 21:43:56 -07:00
Lex Manos 0c064485b1 Update dev workspace for 1.6.4 .. 2013-09-24 21:43:25 -07:00
Christian 0d090070a9 Updated FML:
MinecraftForge/FML@a4de22c1ad And use the parent that's actually going to be valid. *sigh*
2013-09-24 08:42:37 -04:00
Christian 9029d380a3 Updated FML:
MinecraftForge/FML@70cffe6982 Herpaderp. Make addURL accessible. *sigh*
2013-09-24 07:34:44 -04:00
CovertJaguar 71c14b815e Fluid Rarity should have a default
Oops.
2013-09-23 22:54:46 -07:00
Christian 64d7c4eaa5 Updated FML:
MinecraftForge/FML@4a94c2c71b Fix NPE when loading second single-player world
MinecraftForge/FML@0e80fcb8f7 Merge pull request #284 from smcv/uninit
MinecraftForge/FML@39620f1e41 Fix injection of tweaker into system
2013-09-23 13:34:22 -04:00
Christian 62079e3549 Updated FML:
MinecraftForge/FML@79c39f8b7c Fix classpath for launchwrapper 1.7
2013-09-21 16:16:10 -04:00
cpw a632ec6ce6 Merge pull request #794 from alexbegt/master
Correcting SoundManager Transformer
2013-09-21 12:39:00 -07:00
Alexander Behrhof be8bccc72e Correcting SoundManager Transformer 2013-09-21 14:30:22 -04:00
Christian a7fde237bb Clean patch fuzz 2013-09-20 21:17:38 -04:00
James Clarke f68bdb0493 Pass arguments to install.sh and install.cmd to install.py 2013-09-21 01:43:22 +01:00
Christian e03a4db2b9 Updated FML:
MinecraftForge/FML@f6190e8752 Update workspaces for 1.6.4
2013-09-20 17:23:39 -04:00
Christian 54594ee1de Updated FML:
MinecraftForge/FML@25981706ef Update for MC 1.6.4
MinecraftForge/FML@0950b9fc84 Fix up a deep crash in the early server init hanging the client
2013-09-20 17:17:53 -04:00
Lex Manos 98aecd7f6b Move have handler creation up, to prevent NPE. 2013-09-19 16:47:46 -07:00
Lex Manos f58df75bea Remove duplicate access transformer 2013-09-19 16:46:30 -07:00
Lex Manos 43a6d0da62 Updated FML:
MinecraftForge/FML@e7dd728f95 Format the log messages through MessageFormat. Thanks CovertJaguar for the pointer.
MinecraftForge/FML@82d896a35e Make final transformers actually work on methods as well.
2013-09-19 13:05:15 -07:00
Lex Manos a525cab5ff Move the Structure data save files to per-world data folders. Vanilla saves them to the global folder which will potentially cause conflicts if two worlds generate 'Villages'. Which in the modded world is highly likely. Refer back to the long standing vanilla issue where nether 'villages' would override the overworlds villages, it's the same situation. 2013-09-18 23:37:23 -07:00
Lex Manos d39c279203 Make MapGenStructureIO name registration functions public, Any mod that has anything extending StructureStart or StructureComponent must register there classes and create a default (no parameter) constructor. 2013-09-18 20:52:52 -07:00
Lex Manos 0a7095afa9 Unfinalized Item.getIconIndex(ItemStack) 2013-09-18 19:33:28 -07:00
Lex Manos 36672fef83 Actually push the submodule update -.- 2013-09-18 16:18:19 -07:00
Lex Manos 57ea20d083 Bump version for new MC version. 2013-09-18 16:10:55 -07:00
Lex Manos 6c5ef9347c Updated FML:
MinecraftForge/FML@da70cdd35a Update tweaker for new Launcher API
MinecraftForge/FML@352117fd78 Update for new installer and thank you.
MinecraftForge/FML@40a34af431 Merge branch 'master' into newtweak
MinecraftForge/FML@e77d2547ad Update for pre-ninja 1.6.3 update
MinecraftForge/FML@34493b0d99 Update for real 1.6.3 update
MinecraftForge/FML@95afc95b24 Update mcp mod info
MinecraftForge/FML@ff75416a32 Update mc_versions data and commands patch and eclipse workspace
MinecraftForge/FML@8f2e675581 Update the src distro's eclipse workspace.
2013-09-18 16:10:38 -07:00
Christian 60da9094ef Updated FML:
MinecraftForge/FML@81328b6684 Add in support for using a mirror list and provide checksums for packed download of libs
2013-09-15 23:00:07 -04:00
Christian f9087cb291 Revert "Added a RenderType that allows Map-style rendering w/o inheriting from"
This reverts commit eb4688bf5e.

Conflicts:
	patches/minecraft/net/minecraft/client/renderer/ItemRenderer.java.patch
2013-09-14 18:43:18 -04:00
Christian 635f13f825 Fix broken PR from vilml. TEST! 2013-09-14 18:13:58 -04:00
cpw 55830256d3 Merge pull request #784 from viliml/patch-1
Prevent NPE in fluid lookup for block
2013-09-14 11:28:06 -07:00
viliml ac58bb2f5a Prevent NPE in fluid lookup for block 2013-09-14 20:16:46 +02:00
cpw a066018c9f Merge pull request #782 from CovertJaguar/patch-1
Allow Fluids to have Rarities
2013-09-14 05:17:34 -07:00
Christian 0bc9138aa4 Fix the divider 2013-09-13 22:57:29 -05:00
CovertJaguar b626c888b0 Allow Fluids to have Rarities
Used for tool tips.
2013-09-13 20:17:12 -07:00
Christian 492cbc3628 Move stuff around a bit- also tie range and enabled to options. 2013-09-13 22:11:59 -05:00
Christian 32353f0db1 Merge branch 'master' of github.com:Adubbz/MinecraftForge into Adubbz-master 2013-09-13 21:04:54 -05:00
Adubbz 7aa43a4217 Sky colours now smoothly transition
Made transitions even smoother

Sky colours now smoothly transition
2013-09-14 12:00:06 +10:00
Christian 09580515a0 Tweak patch comment 2013-09-13 20:45:30 -05:00
Christian 65165cd41c Merge branch 'mapStyle' of github.com:Matchlighter/MinecraftForge into Matchlighter-mapStyle 2013-09-13 20:11:13 -05:00
Christian 391668114d Merge branch 'master' of github.com:micdoodle8/MinecraftForge into micdoodle8-master 2013-09-13 20:06:50 -05:00
iChun ae80a7b322 Allows proper raytracing from actual player eye position rather than hardcoded eye heights. 2013-09-13 19:56:28 -05:00
Christian 9093263d8c Merge branch 'fovhook' of github.com:MachineMuse/MinecraftForge into MachineMuse-fovhook 2013-09-13 19:40:19 -05:00
Christian e008ae3ef1 Updated FML:
MinecraftForge/FML@b5af446d71 Fix sidedness derp in LanguageRegistry.
2013-09-13 19:05:28 -05:00
Lomeli12 c0164f29cd Villager Trading GUI will not open if Player is sneaking. 2013-09-10 14:08:29 -07:00
micdoodle8 9ddb57297f Check if block is air instead of just ID zero when growing from stem block. 2013-09-09 17:53:19 -04:00
Matchlighter eb4688bf5e Added a RenderType that allows Map-style rendering w/o inheriting from
ItemMap.
2013-09-07 22:50:18 -06:00
Christian 519da32391 The partial tick should be available for all render player events. Weird it wasn't. 2013-09-07 16:25:30 -04:00
Christian f9728e8f3f Redo harvest event. This time with simpler logic, that should be less liable to weird "missing" stuff. 2013-09-07 00:10:08 -04:00
Christian 25bfc1407b Reverting HarvestEvent, for new implementation 2013-09-06 23:39:48 -04:00
Lex Manos 303bd03533 Fix bug where guis were not closed properly, resulting in signs not having there text set. 2013-09-06 15:27:02 -07:00
Christian 6b54b52ec4 Change trigger calculation so entities get some time to age before refiring the event. 2013-09-06 16:46:44 -04:00
Lex Manos 89becaca02 Create helper apply_patches script and add paramter to change patch output folder. 2013-09-06 13:32:26 -07:00
Christian d9ca67e162 Change from Cancelable to using a Result. This means you can force despawn mobs you
don't want around anymore. Also, deferred check to once every 20 ticks. May tune it
down further or make it a config if this event is a lag issue.
2013-09-06 16:05:29 -04:00
Daniel García ff655de27e Create es_ES.lang 2013-09-06 13:28:48 -04:00
MachineMuse ee0cb12810 Added fov hook
Small formatting changes (opening braces on new line)
2013-09-06 13:25:47 -04:00
Christian 6da6e9da07 Add a cancellable despawn event- allows mods to decide to prevent the despawning
of certain otherwise normally despawnable mobs.
2013-09-06 13:19:51 -04:00
MachineMuse ad41dfaeaf Small formatting changes (opening braces on new line) 2013-09-05 18:46:05 -06:00
MachineMuse 7a0a7bf8e0 fixed merge 2013-09-05 18:43:27 -06:00
MachineMuse 65551ce233 Added fov hook 2013-09-05 18:39:27 -06:00
Christian c63efa917d Add some javadoc to the HarvestBlock event. 2013-09-05 16:24:50 -04:00
Christian 7544055fa4 Clean up some formatting. 2013-09-05 13:16:01 -04:00
Christian cb5b5cde1f Use the dropchance from the event. 2013-09-05 13:01:25 -04:00
Christian a58a7fd365 Merge branch 'sometweaks' 2013-09-05 12:22:31 -04:00
Christian 99c6662f9d Add in a block reverse lookup for fluids. Closes #749 2013-09-05 12:08:16 -04:00
Christian ca0e32cfd2 Add a harvestblock event, to allow mods to intercept and change the drops for blocks. Don't abuse this, or we'll have to take safety measures.
Fires for both silktouch and non-silktouch harvesting, and provides the player. Note, you may need to
change your break overrides to pass on the player for best results.
2013-09-05 11:57:27 -04:00
Christian c84d99aa22 Defer firing CreateDecorator until it's likely mods have had a chance to register their listener. Should close #759 2013-09-05 10:08:02 -04:00
Christian 0443ef5a9e MachineMuse, remember, there's TWO model formats supported! 2013-09-05 09:14:10 -04:00
Christian e962c2a94d Merge branch 'master' of github.com:jk-5/MinecraftForge into sometweaks
Conflicts:
	patches/minecraft/net/minecraft/client/Minecraft.java.patch
2013-09-05 08:39:15 -04:00
Christian 8c2e171a16 Merge branch 'master' of github.com:mhahn1976/MinecraftForge into sometweaks 2013-09-05 08:26:11 -04:00
Christian 4fb8eb96d0 Merge branch 'french' of github.com:robin4002/MinecraftForge into sometweaks 2013-09-05 08:23:29 -04:00
Christian 7549eb90a7 Add a bit of javadoc 2013-09-05 08:22:28 -04:00
Christian df132a0296 Merge branch 'displayname' of github.com:MachineMuse/MinecraftForge into sometweaks
Conflicts:
	patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch
2013-09-05 08:20:49 -04:00
Christian e499a6d375 Merge branch 'objTessellation' of github.com:MachineMuse/MinecraftForge into sometweaks 2013-09-05 07:58:56 -04:00
Christian fe5f5e690e Fix patch for new MCP naming. 2013-09-05 07:57:21 -04:00
Christian 21cd975ae3 Merge branch 'mouseevent2' of github.com:MachineMuse/MinecraftForge into sometweaks 2013-09-05 07:47:52 -04:00
Christian 32073a5bc1 Reduce patch size significantly 2013-09-05 07:45:29 -04:00
iChun 6cf8408752 Fix player push out of blocks clientside being hardcoded and not based on entity size.
Added player eyeHeight field to allow changeable eye heights of players rather than being hardcoded per player class as well as add a getDefaultEyeHeight function.
2013-09-05 14:57:34 +08:00
MachineMuse 7a77b61ddd fixed logic error 2013-09-04 15:27:45 -06:00
MachineMuse ad09526bee inserted hook into Minecraft.java 2013-09-04 15:05:29 -06:00
MachineMuse e3e3ea54f9 Added mouse event 2013-09-04 15:01:37 -06:00
MachineMuse cb9c26d49c Memoization of display name result 2013-09-04 14:22:22 -06:00
Christian cf88896ad7 Update version to 9.10.1 for mcp naming changes. 2013-09-03 18:09:07 -04:00
Christian 0d44234239 Update forge for MCP naming updates
Updated FML:
MinecraftForge/FML@d0c6e92900 Update MCP data
2013-09-03 18:04:12 -04:00
MachineMuse 96c045137d Merge remote-tracking branch 'forge/master' into objTessellation 2013-09-03 15:45:45 -06:00
MachineMuse 0e3037e85d Added display name hook 2013-09-03 14:55:11 -06:00
Christian 5c334d7627 Fix possible NPE in searching code. 2013-09-02 15:44:27 -04:00
Christian 7246914605 Updated FML:
MinecraftForge/FML@2a9c485edc Remove @SideOnly from 70318 (getDistance) it makes no sense that it's not on the server.
2013-09-02 12:24:57 -04:00
Christian d9b72a2282 Updated FML:
MinecraftForge/FML@a13598b17e Use java 1.6 compatible method of closing the zip file. Stops stupid compile error.
2013-09-02 00:13:23 -04:00
Christian 4eb05ed571 Small fix to container registry. emptyContainer is not null, it's "NULL_EMPTYCONTAINER" now and won't match any valid container. 2013-08-28 22:16:59 -04:00
Christian 5a8def7d00 Tweak the release to add in assets to the distributable. *sigh* 2013-08-28 07:59:45 -04:00
robin 90be31ddc8 create french localization 2013-08-28 13:14:30 +02:00
Christian dddb9b3189 Add some starting work for a forge tps command. Also update coremod for new FML behaviour 2013-08-27 23:07:30 -04:00
Christian 0c06d3b47a Updated FML:
MinecraftForge/FML@1c9a853868 Allow coremods to properly inject asset readers.
MinecraftForge/FML@40b54013b4 Allow server side lang file injection, hopefully
2013-08-27 23:04:48 -04:00
Michael Hahn cc96840aa8 capacity was not respected
Updated to properly calculate the amount of free space in the tank
before checking that against the amount of the resource.
2013-08-26 12:21:31 -05:00
jk-5 f78eba09fd Added GuiOpenEvent
You can use this for a clean way to override guis, without needing an
TickHandler to check if the gui you want to override is open and show
your own gui

Proper close check
2013-08-24 09:32:34 +02:00
Christian b2c1eae652 Updated FML:
MinecraftForge/FML@b993cf4a98 More exception handling for less derpiness.
2013-08-20 21:01:02 -04:00
Christian 8fed427251 In the time honoured tradition of trying to fix vanilla, we today attempt to patch the pathfinding AI so that it doesn't lag when
there's a lot of entities. Basically, if the zombie can't reach the villager, backoff subsequent pathfinding attempts. Hopefully
should really help with lag caused by zombie swarms.
2013-08-20 11:55:57 -04:00
Christian b2d309b17e Allow multipass RenderItem rendering for terrain icons too. Should fix sengir's saplings. 2013-08-19 16:32:47 -04:00
Christian 8d6f893083 Updated FML:
MinecraftForge/FML@913f6f6d36 Try and use the relaunch log, which should be classloaded..
MinecraftForge/FML@ac065ff5f7 Reset the IWorldGenerator seed for each mod, before calling. That should mean worldgen is consistent and not dependent on mod ordering, or mod sideeffects.
2013-08-19 15:28:50 -04:00
LexManos faba7e2a07 Skipp toss event for null entity items. Closes #732 2013-08-19 10:45:57 -07:00
LexManos baf1e771e9 Cache world on all render passes in case some mod disables the first pass. 2013-08-19 10:45:29 -07:00
LexManos 461a30812b Fix bug with custom Fluids. You can now drown in them! 2013-08-18 23:16:36 -07:00
Christian 4b64c15ae8 Updated FML:
MinecraftForge/FML@9468e41bbf Fix up scala refs, for better results
2013-08-18 19:02:20 -04:00
cpw 3625a409a5 Merge pull request #730 from Soaryn/patch-1
Adds Temperature to Lava
2013-08-17 11:17:34 -07:00
Christian 8533f974e8 Updated FML:
MinecraftForge/FML@ffdd056a18 Check keys, not values *sigh*
2013-08-17 13:28:06 -04:00
Christian 667db45b1d Updated FML:
MinecraftForge/FML@f157e7a6ec And more coremod logging
2013-08-17 13:15:18 -04:00
Christian bafbac3d51 Updated FML:
MinecraftForge/FML@4a9d0f9bd5 Add in some log information
2013-08-17 13:10:43 -04:00
Christian 92c095412d Updated FML:
MinecraftForge/FML@0398916666 And actually instantiate the collection *sigh*
2013-08-17 12:57:37 -04:00
Christian ea31a51285 Updated FML:
MinecraftForge/FML@dec9a3924d Add in "FMLCorePluginContainsMod" in the manifest. If this value is present, FML will attempt to parse your mod jar file as a normal mod file as well, instantiating mod containers there.
2013-08-17 12:49:37 -04:00
Christian 8f66346aeb Updated FML:
MinecraftForge/FML@2470120680 Clean up a couple of resources. Also, don't parse jars just because they're in the mods dir
2013-08-17 11:44:06 -04:00
Christian 9741d6348f Updated FML:
MinecraftForge/FML@9a5e24e338 Fix stupid derp is stupid. Closes #275 and means sp614x can do his thing
MinecraftForge/FML@ba90b61607 Make sure we only add args to the argument list if a tweaker hasn't already. Should fix LiteLoader compatibility issue.
2013-08-17 11:13:02 -04:00
Soaryn 8c762223a4 Adds Temperature to Lava
Missing lava temperature. Feel free to change it to any value. 
1300K is the typical max for Magma so wasn't sure what was desired. Regardless, better than the same temp as water at 295K 😄
2013-08-15 19:55:15 -04:00
LexManos ffd2fbcc84 Fix NPE in enchangint books. 2013-08-13 15:25:09 -07:00
LexManos b0f4497bbe Fix inverted case, search works now. 2013-08-11 16:01:27 -07:00
LexManos 97f6138cf8 Merge pull request #606 from Shukaro/master
Add stone and cobblestone to ore dictionary
2013-08-10 23:29:01 -07:00
LexManos f65f042910 Addition: Added isAllowedOnBooks hook to Enchantments Closes #589 2013-08-10 23:23:41 -07:00
LexManos 7ad79b42bc Deprecate Block.addCreativeItems, Kill in 1.6.3+ Closes #655 2013-08-10 23:07:49 -07:00
LexManos 4f172ae9a5 Merge pull request #679 from Chicken-Bones/invchanged
Add onNeighborTileChange callback to block by generalizing func_96440_m ...
2013-08-10 22:53:43 -07:00
LexManos 5fadba7ddc Merge pull request #702 from MrMasochism/master
Added new function for control over dismount underwater
2013-08-10 22:07:02 -07:00
LexManos ffd4d4afc3 Allow creative tabs to have a search box if they want to Closes #592 2013-08-10 22:04:58 -07:00
LexManos d304f40295 Merge pull request #717 from tommy1019/patch-3
Fixed Fluid Non-Solid Block Duplication
2013-08-10 19:47:21 -07:00
LexManos ffd4b38801 Add optional feature to check entire bounding box for ladders. Closes #709 2013-08-10 19:39:06 -07:00
tommy1019 efb27ed1ea Fixed Classic Checking 2013-08-09 12:25:56 -05:00
tommy1019 aab3385c2d Fixed Double Item Drop 2013-08-09 12:23:05 -05:00
tommy1019 9e732ee935 Fixed Fluid Non-Solid Block Duplication 2013-08-08 18:38:46 -05:00
LexManos 571e441502 Only refresh vanilla tile entities when IDs change. 2013-08-07 18:24:50 -07:00
LexManos 18c8ac0b31 Updated FML:
MinecraftForge/FML@f275a24b43 Add in some reverse lookup methods for game registry data
MinecraftForge/FML@cb05c8c4aa Add missing SideOnly in BaseMod
MinecraftForge/FML@1857064afa Merge pull request #266 from grompe/patch-1
MinecraftForge/FML@182aa9c0cb Fixed install.sh not passing arguments to install.py
MinecraftForge/FML@f46a538b41 Merge pull request #268 from Bo98/sh-args-fix
MinecraftForge/FML@29ef3d5ab4 Update installer.
2013-08-06 11:49:39 -07:00
Christian 7d700916d9 Merge branch 'miscchanges' 2013-08-04 22:27:55 -04:00
LexManos b0f5f88482 Merge pull request #610 from purpleposeidon/patch-1
Add an InputStream constructor to WavefrontObject
2013-08-04 16:56:26 -07:00
LexManos c6030b9125 Merge pull request #704 from StormTiberius/master
Adds cloud height to WorldType
2013-08-04 16:54:44 -07:00
cpw 81e4ae2af9 Merge pull request #706 from heldplayer/fluidRendering
Fix small derp
2013-08-03 17:29:04 -07:00
cpw 543535e1a0 Merge pull request #705 from heldplayer/fluids
Fix render colour on bottom of fluids
2013-08-03 17:28:53 -07:00
Heldplayer 647f6fdf34 Fix small derp 2013-08-03 23:42:38 +02:00
Heldplayer 90e0eaf5f5 Fix render colour on bottom of fluids 2013-08-03 23:20:34 +02:00
StormTiberius 4ea7e8d828 Add cloud height to WorldType 2013-08-03 05:45:22 +03:00
Christian cf4f1377d4 Merge branch 'master' of github.com:EnderShadow/MinecraftForge into miscchanges 2013-08-01 07:20:30 -04:00
Matthew Warren bf8f5aa306 added temperature to fluids
it could be useful for blocks that are affected by temperature
2013-07-31 22:15:42 -05:00
MrMasochism 9564575d77 Added a new function to allow control over whether an entity is dismounted when the entity it is riding goes under water 2013-08-01 08:02:19 +12:00
cpw 9776e0937a Merge pull request #700 from iChun/miscchanges
Fix RenderLivingEvent.Pre/Post not being fired by most Renders.
2013-07-31 01:35:18 -07:00
iChun 7b9971b20f Fix RenderLivingEvent.Pre/Post not being fired by most Renders. 2013-07-31 08:03:10 +08:00
cpw 89d9fb3556 Updated FML:
MinecraftForge/FML@57befa89bb Fix keybindings being derped
MinecraftForge/FML@1d84e8063e Temporarily add a version of 'reobfuscate.py' that will resolve complex reobfuscation graph issues with specialsource. Copy it over 'reobfuscate.py' in the mcp runtime dir. Hopefully will have an MCP/specialsource fix in the coming days.
2013-07-28 22:40:13 +02:00
cpw c3f62ed8bf Tweak setBlock in update tick - it should only send serverside updates for
source blocks. Experimental attempt to fix worldgen issues for fluid blocks
2013-07-28 19:25:51 +02:00
cpw 5c5cf3e7e7 Fix formatting error in PR 2013-07-28 19:15:00 +02:00
cpw 94045ea73e Merge pull request #695 from tommy1019/master
Fluid Rendering Fixes
2013-07-28 02:17:16 -07:00
tommy1019 e15c596e42 Fluid Rendering Fixes 2013-07-27 20:32:21 -05:00
cpw b317d10ade Add a translation map for looking up legacy liquid names to convert
to new fluid names.
2013-07-28 01:06:16 +02:00
cpw 31bd8d438d Add support for loading legacy liquid stacks as new fluid stacks.
Requires having been written with the "liquidname" code from forge 1.5.x
2013-07-28 00:53:23 +02:00
cpw 8b78f21199 Merge branch 'master' of github.com:tommy1019/MinecraftForge into miscchanges 2013-07-27 23:59:51 +02:00
cpw 8a8f5af084 Fix names for water/lava fluids. Closes #689 2013-07-27 23:37:06 +02:00
cpw f5a8974bb6 Merge branch 'master' of github.com:iChun/MinecraftForge into miscchanges 2013-07-27 22:57:44 +02:00
CovertJaguar fd5b7359e2 Add SneakClick bypass to client 2013-07-27 00:30:54 -07:00
tommy1019 077e05e0ed Fixed fluids eating each other
Fluids check for other fluids density before flowing, if their density
is higher they can flow into the other fluid, if not they can't.
2013-07-26 16:25:40 -05:00
iChun abdcd23d8b Update RendererLivingEntity.java.patch 2013-07-26 12:51:42 +08:00
iChun fb04d10886 if statement added 2013-07-26 12:49:14 +08:00
iChun 3e8711580e Add Pre and Post events firing for RendererLivingEntity 2013-07-26 12:46:52 +08:00
iChun f48dafda7e Add Pre and Post events for RenderLivingEvent 2013-07-26 12:38:17 +08:00
tommy1019 a42369e081 Fluid Render Fix
Formatting
2013-07-25 18:38:29 -05:00
LexManos 6397939c9e Merge pull request #665 from copyboy/master
Fix getArmorTexture by passing it the subtype
2013-07-24 13:18:31 -07:00
copyboy c9af365d44 Fix getArmorTexture by passing it the subtype 2013-07-24 22:12:38 +02:00
LexManos b6d543f15e Re-added deprecated liquids system. To be removed next major MC versions after issues with Fluids are fixed. (reverse-merged from commit 9b5208fa30)
This WILL be removed and should not be developed against aside for a temporary 1.6 release.
2013-07-22 15:19:35 -07:00
LexManos 8c3ebc7f87 Remove SideOnly(Client) in IBlockAccess.isAirBlock 2013-07-21 11:01:38 -07:00
LexManos ee70b21460 MinecraftForge/FML@10b16d32da Use json 2.9.1 nightly for OSX in release json like vanilla does. 2013-07-17 12:38:53 -07:00
LexManos acb6777ab5 General code cleanup of Fluid system. Made Fluid icons and associated functions non-sided. 2013-07-16 21:40:49 -07:00
LexManos f7ab5684e9 MinecraftForge/FML@3f21a2c1b4 Stupid spaces and windows escaping -.- 2013-07-16 14:35:22 -07:00
LexManos 8a8af5265e Package 'version.json' with universal jar for maunchers to use. It's the json used by the vanilla Minecraft launcher for Forge. 2013-07-16 13:55:31 -07:00
LexManos f72d672e0d MinecraftForge/FML@b2958c9066 Add quotes for paths with spaces -.- 2013-07-16 13:54:08 -07:00
LexManos 094c2bca2e MinecraftForge/FML@9520978b81 Use a temporary file for recompile's command line to combat command length to long issues. 2013-07-16 13:12:46 -07:00
Chicken Bones 5d5d4cb448 Add onNeighborTileChange callback to block by generalizing func_96440_m to all blocks rather than just comparators. 2013-07-17 04:42:45 +10:00
LexManos 380c4ad2da Updated FML: MinecraftForge/FML@4981aa3421 Fix potential NPE in villager skin registry. Closes #678 2013-07-16 10:34:54 -07:00
LexManos e57f1c230c Merge pull request #675 from Soaryn/patch-1
Fixes Vanilla Fluid Still Icon Setters
2013-07-15 22:36:56 -07:00
Soaryn 88e0ecf2cf Fixes Vanilla Fluid Still Icon Setters
Fixes null icons from being set for both the still water/lava icons, and sets the correct Icon.
2013-07-16 01:27:39 -04:00
LexManos 56ab2fd797 Updated FML: MinecraftForge/FML@c48b48ee15 Fix server launching. 2013-07-15 10:58:11 -07:00
Christian 81cce7b6ac Fix for new location of mcp logo. 2013-07-14 14:22:57 -04:00
Christian 745fa93f3f Updated FML:
MinecraftForge/FML@0378355c37 The server.classpath generates the runtime manifest, so it needs the non-debug asm jars.
MinecraftForge/FML@a3f48734ff Fix up jar sanity check code. FML validation of the jar works now and doesn't derp classloading.
MinecraftForge/FML@9947ba8503 Fix logo handling. no more NPE if the logo can't be found. Also, fix location of mcp logo now.
2013-07-14 13:47:53 -04:00
LexManos c5af747da9 Monkey patch to try and make print flush properly. 2013-07-12 04:08:29 -07:00
LexManos c40499ab05 Update changelog generator to point to new jenkins. 2013-07-12 03:09:54 -07:00
LexManos 2e1aa99f54 MinecraftForge/FML@c625ef3009 Update Forge signature for new private key 2013-07-12 03:09:24 -07:00
LexManos 70a6a316d7 Updated FML:
MinecraftForge/FML@7348929819 Kill release time scala libraries, to be re-evaluated after all movement is done and shit is fixed. May require manual instalation for mods that use scala.
MinecraftForge/FML@6de36d78f5 Coremods now have a primitive dependency capability. Also, we search mods dir for special "TweakClass" manifests. These are using the vanilla tweak mechanism to inject into Minecraft. Helpful for other "platform" systems, when you don't want to have to deal with json changes!
MinecraftForge/FML@d4b30422b6 Update build and eclipse workspaces for debug asm.
2013-07-12 00:34:32 -07:00
LexManos e418dddbcf MinecraftForge/FML@b9f4b02cb0 Kill mcp's truncate method, for more useful logs. 2013-07-10 15:24:53 -07:00
LexManos bf127348c9 Merge pull request #661 from Adubbz/master
Made eating particles compatible with metadata
2013-07-10 15:24:07 -07:00
Christian 75907e3815 Updated FML:
MinecraftForge/FML@e44e8b3112 Force a global asset scan prior to mod construction : you should be able to reference assets anywhere in your mod now.
MinecraftForge/FML@20e93a412e Fix up logos in the mod screen. Clean up some unnecessary casts and suppressions, use the -debug asm library at dev time, since it contains full symbols and code in compiled form.
2013-07-10 17:30:45 -04:00
Adubbz c4ad7c3e2c Made eating particles compatible with metadata
Removed extra spaces

Made eating particles compatible with metadata
2013-07-10 20:39:15 +10:00
LexManos 562e8e8021 Re-add reverted patch AGAIN cpw check your commits -.- 2013-07-09 12:56:34 -07:00
Christian c3fbd27a8d Updated FML:
MinecraftForge/FML@bab4d87ce7 Update FML for new stealth update for 1.6.2
2013-07-09 15:36:47 -04:00
Christian a990c0bdc8 Remove forge ISidedInventory, deprecated since 1.5. 2013-07-09 11:38:54 -04:00
Christian 561b0fbe55 Allow optional rider interaction for entities, thanks for the suggestion Vswe.
Updated FML:
MinecraftForge/FML@7af5c21d74 @InstanceFactory was set to look for Fields instead of methods
MinecraftForge/FML@bc9d1fe657 Merge pull request #254 from CaptainShadows/patch-1
2013-07-09 11:23:49 -04:00
Christian 475918a1ca Updated FML:
MinecraftForge/FML@97269a5e3d Decode the file URL. Hopefully will make things work more..
MinecraftForge/FML@d4d522c597 And don't forget to remove the test code
2013-07-09 08:33:05 -04:00
LexManos a85d82a859 MinecraftForge/FML@c913258ca3 Disable signature check of client for now, it's broken. 2013-07-09 05:04:50 -07:00
LexManos ae97ad2bca Updated FML:
MinecraftForge/FML@dfa3a2665d Add MC Version to installed version name.
MinecraftForge/FML@e91431fb70 Don't validate signatures on servers, they are not signed.
MinecraftForge/FML@c7ab872c85 Temporarily disable GuiModList's Mod logos.
2013-07-09 03:35:52 -07:00
LexManos 8eddb7f1b9 Updated FML:
MinecraftForge/FML@c997f2adbc FML now verifies that the minecraft jar is correct and intact. This is intended to discourage those who think that modifying the minecraft jar is still acceptable.
MinecraftForge/FML@0db4624b27 Don't initialize the server.
MinecraftForge/FML@4fa375683f Fix NPE in new debug line when patch targets don't exist.
2013-07-09 01:30:22 -07:00
LexManos 29fabb12e0 Proper return for getRegisteredFluidContainerData thanks Soaryn. Ref issue #634 2013-07-08 18:54:03 -07:00
LexManos 34bcca2640 Fix accedential reverted patch. 2013-07-08 18:35:34 -07:00
Christian 38bd039a93 Make resourcelocation the class available on the server. 2013-07-08 19:40:15 -04:00
Christian 033eedb50f Drop two domain related fixes that have been applied in vanilla.
Updated FML:
MinecraftForge/FML@c47d08c89d Tweak debug data on patched classes
MinecraftForge/FML@dbf5fe38ce We now generate an adler32 checksum for each patched file and verify at load time that they match. Mismatch won't crash, but will emit a big warning..
MinecraftForge/FML@e88a0cd13f Update for stealth update. Thanks mojang!
MinecraftForge/FML@2336002f20 The game is going to exit in face of patch mismatch, unless you force it to run with fml.ignorePatchDiscrepancies in the system properties.
2013-07-08 14:44:51 -04:00
LexManos 51ca5e028b Bump version to 9.10 for new MC version and removal of Fluids. 2013-07-07 14:05:48 -07:00
LexManos 9b5208fa30 Remove deprecated Liquids API, Use new Fluids system as replacement. 2013-07-07 14:05:23 -07:00
LexManos 85fd1d010d Updated FML:
MinecraftForge/FML@1d0384f8f6 Update for 1.6.2 and MCP 8.04
MinecraftForge/FML@111b0216fd Add the jsons for 1.6.2
MinecraftForge/FML@6f96d89e2b Update eclipse workspaces for 1.6.2
2013-07-07 14:03:26 -07:00
Christian 499610e44f Updated FML:
MinecraftForge/FML@c97ac284a5 Update ModLoaderFuelHelper.java
MinecraftForge/FML@3a200e901e Fix coremod injection into main system. Should stop double-dipping coremods.
MinecraftForge/FML@2676c8999c Update mcp data. fixes #248
MinecraftForge/FML@5990e29af7 Merge pull request #247 from jk-5/patch-1
MinecraftForge/FML@adc8972277 Add cascadedTweaks. This will allow simple coexistence for any other mod framework using the tweaker system as well. Hi Voxel and LiteLoader!
2013-07-07 00:58:32 -04:00
LexManos 13294083a9 Merge pull request #645 from XCompWiz/bedspawn
Makes player-specific spawnpoints dimension aware
2013-07-06 14:41:07 -07:00
XCompWiz 5f203ce808 Makes player-specific spawnpoints dimension aware
Makes ServerConfigurationManager correctly get player-specific spawn
point for the target dimension
Changes EntityPlayer to store and save a (bed) spawn point for every
dimension, as well as transfer them to respawn "clones"
2013-07-06 16:24:37 +03:00
LexManos dfc26937ca Re-gather list of Icons when atlas textures are stitched, allows for addition/removal of blocks/items after the atlas's inital constrction. 2013-07-05 22:50:55 -07:00
LexManos 22be4b49d5 Fix enchantment effect on single pass items. Closes #644 2013-07-05 16:55:42 -07:00
LexManos bc932a28ae Merge pull request #642 from MinecraftForge/newliquid
New liquid system
2013-07-04 13:11:36 -07:00
LexManos e9f1c83ff8 Mark old liquid system as deperated to be removed next Minecraft release. 2013-07-04 12:39:49 -07:00
LexManos 30be6d4bab Merge remote-tracking branch 'refs/remotes/origin/newliquid' into newliquid 2013-07-04 12:17:36 -07:00
Christian 1169ba9efb Merge branch 'master' into newliquid 2013-07-04 12:07:32 -07:00
LexManos 33ec5cdc44 Updated FML: MinecraftForge/FML@54e06e841d Move Resource refreshing until affter postInit. 2013-07-03 22:29:42 -07:00
LexManos be14c33ed1 Add missing air checks to WorldGenTrees and ChunkCache Closes #593 2013-07-03 21:48:51 -07:00
LexManos b12872eed1 Fix compile errors temporarily, dont use till updated to new system. 2013-07-03 21:34:49 -07:00
LexManos 35caa32ad1 Merge pull request #539 from richardg867/techne-1
Techne model importer
2013-07-03 21:21:16 -07:00
LexManos 98aab2083b Render pass sensitive version of Item.hasEffect, Closes #517 2013-07-03 21:14:59 -07:00
LexManos 2b588ebce6 Fix lether item rendering colors. 2013-07-03 20:41:27 -07:00
LexManos d4ba95f606 Add hook for EntityWither trying to destroy a block. 2013-07-03 20:29:41 -07:00
LexManos 83504eb2e1 Merge pull request #600 from Lunatrius/rotation
Added rotation support for all vanilla blocks that can be rotated.
2013-07-03 20:16:25 -07:00
LexManos 7f5ec0eaef Fix domain issue with SoundPool entries. 2013-07-03 19:31:54 -07:00
LexManos 68ba3a84d6 Updated FML:
MinecraftForge/FML@7ce84491d1 Fix missing argument and startclient/startserver support.
2013-07-03 19:31:31 -07:00
LexManos 125b134d87 Updated FML:
MinecraftForge/FML@155e846818 Add in support for mods/<mcversion> as a mod location. Also drop coremods as a location. They go in mods too now.
MinecraftForge/FML@3f4bf61ae6 Update key
MinecraftForge/FML@4545beb49d Add deobf-data to setup env.
MinecraftForge/FML@e24f949517 Fix eclipse workspaces and launch configurations.
MinecraftForge/FML@532bee7ce1 Update to new MCP bugfix version, Fixes: Missing Armor/Item rendering, and Boss health mapping issues.
2013-07-03 18:54:47 -07:00
LexManos f9236c4c98 Include MANIFEST file from FML's universal.jar, makes the jar runnable now! 2013-07-03 06:26:47 -07:00
LexManos 02e857827d TEMPORARY fix for MCP mapping issue. 2013-07-03 06:26:12 -07:00
LexManos 7e5560e60d Update dev worksapce: Proper natives location and new server launch profile. 2013-07-03 06:25:40 -07:00
LexManos f35783f0fb Updated FML:
MinecraftForge/FML@6f0eedc9a6 Fixed ClassCastException when loading ModLoader mods
MinecraftForge/FML@8844554da6 Merge pull request #243 from jrtc27/modclassloader
MinecraftForge/FML@7aa7221756 Fix transformer search
MinecraftForge/FML@5f7df5e742 Revert "Keep these on our servers until the launcher is actually fixed -.-"
MinecraftForge/FML@ad79b9ed86 Fix up some deprecation warnings, and clean up coremod code that's going away.
MinecraftForge/FML@ba3707af22 More javadoc cleanup
2013-07-02 18:16:04 -07:00
LexManos e74ef3e86e Attempt to gather lastBuild information to fix ChangeLog's off-by-one issue. 2013-07-02 15:18:23 -07:00
LexManos ae59f1abb4 Move resource location resolution down to TextureAtlasSprite and allow for sprites that are not stitched. 2013-07-02 13:57:50 -07:00
Christian c0b09854b3 Start: f1b533ad87
End: f21cd286ca
Updated FML:
MinecraftForge/FML@f21cd286ca Resource packs, part two. FML mods are now resource packs. Vanilla will scan anything under 'assets' and turn it into a resource prefix. Use resourcelocations to look stuff up.
2013-07-02 13:53:28 -04:00
LexManos 2b61ea417b Update ChestGenHooks for new Dungeon chest strcture. 2013-07-02 02:37:05 -07:00
LexManos e57886e05a Fix resource domain when loading icon. Textures should be located in /assets/{domain}/textures/{block|item}/{name}.png Same strcutre as before except 'assets' instead of 'mods'. 2013-07-02 02:06:12 -07:00
LexManos b0520f3656 Update filler block to prevent useless console warning. 2013-07-02 02:04:28 -07:00
LexManos 3e9349bf7b Make Block.setIconName public 2013-07-02 02:04:04 -07:00
LexManos d5549d770d Fix bound texture in Controls screen, Closes #631 and #629 2013-07-01 23:35:03 -07:00
LexManos 4034cfe9dc Updated FML:
MinecraftForge/FML@5a97d183df Remember to update your patches!!!!
MinecraftForge/FML@f1b533ad87 Keep these on our servers until the launcher is actually fixed -.-
2013-07-01 23:33:48 -07:00
LexManos 7864f2c8ea Updated FML:
MinecraftForge/FML@91ecf71109 Fix -rel json
MinecraftForge/FML@efc369ee83 Fix EventHandler annotation.
MinecraftForge/FML@fbd57b3264 Mods are now loaded as resource packs. Vanilla will scan for valid prefixes based on subdirs of 'ass
ets' which can then be referenced as ResourceLocations with the "<prefix>:path" notation.
2013-07-01 22:54:19 -07:00
LexManos c157875ecd Fix installer unintended replace.
Updated FML:
MinecraftForge/FML@9b6525e805 Point scala downloads to our servers, Launcher doesn't like standard maven repos.
2013-07-01 21:54:10 -07:00
LexManos dac329bcf1 Updated FML:
MinecraftForge/FML@29d6c875d0 Add FML Installer logo crated by @ZaverSLO https://twitter.com/ZaverSLO/status/349947190300508162
MinecraftForge/FML@3d17434510 Build installer package for the new client launcher.
MinecraftForge/FML@bf38d94756 Update json samples
MinecraftForge/FML@7037184a4e Fix up release JSON
MinecraftForge/FML@dc7d02ebf6 Fix json syntax error.
2013-07-01 21:42:52 -07:00
LexManos d072d91081 Release will now build a installer jar and use the standard 'target' output folder. 2013-07-01 21:42:33 -07:00
LexManos e156ec2940 Update ToolMaterial enum helper. 2013-07-01 21:41:47 -07:00
LexManos 14295fd4b3 Merge pull request #627 from MinecraftForge/1.6
Merge 1.6 branch
2013-07-01 16:51:27 -07:00
LexManos ba4637f5a3 Update src distro installer script. Source distro works now! 2013-07-01 16:38:02 -07:00
LexManos fde224e83b Updated FML:
MinecraftForge/FML@1229c4c4ea Fix src distrabution, and got rid of pesky common folder in eclipse workspace. src is now installable.
MinecraftForge/FML@902772ed0c Revert common folder fix, Common folder does nothing, feel free to delete it after first load.
2013-07-01 16:33:34 -07:00
LexManos 895580de42 Merge pull request #626 from MinecraftForge/1.6
1.6.1 Branch Merge
2013-07-01 14:16:37 -07:00
LexManos b8b708aab6 Try absolute path, to not confuse jenkins. 2013-07-01 12:30:19 -07:00
LexManos df03ece63f MinecraftForge/FML@7fecf2ad6b Update mcp URL. 2013-07-01 12:04:46 -07:00
LexManos f1dde02853 Deprecation sweep and update version to 8.9 to reflect 1.6.1 update. 2013-06-30 23:29:43 -07:00
LexManos 3df47c0250 Update release script to generate binary patches and include deobf data. 2013-06-30 23:21:28 -07:00
LexManos 17a539e173 Updated FML:
MinecraftForge/FML@c418da353f Cleanup coremod code, server side working now.
2013-06-30 23:20:56 -07:00
LexManos 7c53448734 Update GuiIngameForge to reflect Mojang changes in 1.6.1 2013-06-30 22:32:11 -07:00
LexManos 27779f096b Add new launch configs to dev workspace. 2013-06-30 22:31:54 -07:00
LexManos ab1ddd99b6 1.6.1 Update 2013-06-30 19:43:27 -07:00
LexManos fa965e5f7c Support dirty submodules in changelog script. 2013-06-30 19:43:09 -07:00
LexManos be88b0f22f Updated FML:
MinecraftForge/FML@110cf372eb Add deobf data to merge-common, workspace is now actually runnable!
2013-06-30 19:42:47 -07:00
LexManos e0d7b9e2c6 Updated FML:
MinecraftForge/FML@8960f6869f Add windows lzma executable http://tukaani.org/xz/ He states that most things are under public domai
n, But I couldn't find an exact reference to this executable. I'm going to assume it under public domain and distribuiting it here is fine. If not someone pleas
e direct me to the apropriate license and I will act accordingly.
MinecraftForge/FML@70cfe24e67 Fix wrong project name in distro eclipse launch.
MinecraftForge/FML@7a004087f7 Add deobf data to src dist. Dont create deobf jar as we ship the lzma Added *.lzma to .gitignore
2013-06-30 19:23:51 -07:00
LexManos be47ccfc7e Updated FML:
MinecraftForge/FML@6a318ddb78 Fix typo in new packages.
MinecraftForge/FML@3711da9c45 Another typo
MinecraftForge/FML@e35e4b16ff More fixups
MinecraftForge/FML@18371bd8c9 Some fixes for updated mcp code
MinecraftForge/FML@ef646d3146 Merge branch '16launch'
MinecraftForge/FML@7406b38d8a 1.6.1
MinecraftForge/FML@12c928c538 Tweak commands patch
MinecraftForge/FML@3f15cd54c2 Functional client @ 1.6.1
MinecraftForge/FML@71a92de5d9 Client launch for eclipse
2013-06-30 18:14:19 -07:00
LexManos 63dfed9d83 Small fixup, need to Update GuiIngameForge for new HUD changes. 2013-06-30 18:13:01 -07:00
LexManos d2144f274b Initial patch update to 1.6, Does not compile, need to update references to the old TexturePack system. 2013-06-30 05:50:11 -07:00
LexManos 7326f00a85 Update FML to 16launch branch 2013-06-30 05:29:49 -07:00
LexManos f5747824eb Update workspace for new library structure. 2013-06-30 05:25:53 -07:00
RedmenNL 2c9e11299e Added more render methods to IModelCustom interface. 2013-06-29 23:26:39 -06:00
MachineMuse ca011729d3 Fixed both RenderAllExcept behaviours 2013-06-29 23:24:03 -06:00
MachineMuse 0f25e6ec6b Added tessellation methods to obj model, for ISBRH-friendliness 2013-06-29 04:35:57 -06:00
James af2b5eb6f6 Add an InputStream constructor to WavefrontObject
It is said that Resource Packs will return InputStreams. And I like putting my models into texture packs which, obviously, give InputStreams rather than URLs.
2013-06-19 15:57:44 -06:00
Ross Swartz b207111c50 Update OreDictionary.java 2013-06-17 19:09:40 -03:00
LexManos dac97174ff Add air check to Flint and Steel Ref: #602 2013-06-17 08:28:26 -07:00
LexManos 949b991b96 Fic Chest content gneeration delegate call. Cloases #609 2013-06-17 08:27:57 -07:00
LexManos 1173e9074d Bump Forge revision and mark recomended. 2013-06-15 00:19:35 -07:00
LexManos f425a367cd Add air checks to BlockSand falling and Piston pushing. Please report any other issues with custom 'Air' blocks in issue #602 2013-06-14 12:08:24 -07:00
LexManos 0ec313abb1 Added EntityLiving to Block.isLadder arguments, deperacating older version. New parameter has the possibility of being null, so modders must take care. Closes #608 2013-06-14 11:51:28 -07:00
LexManos ff95f73cd1 Merge pull request #607 from heldplayer/tripwires
Fix tripwire patches for solid side checks
2013-06-14 11:30:03 -07:00
Heldplayer 060bacb196 Fix tripwire patches for solid sides 2013-06-14 15:39:20 +02:00
Ross Swartz 05b2a19bac Add stone and cobblestone to Ore Dictionary 2013-06-11 23:58:05 -03:00
Christian 3794713dd9 Fix server patch FML update
Updated FML:
MinecraftForge/FML@22738de028 Attempt to properly fix deadlock if the internal server derps. It should never hang now. Damn you fast computer..
MinecraftForge/FML@05a854cd2a Small tweaks to the mcp data. Nothing major..
2013-06-11 14:57:23 -04:00
Christian ebd22c3abd Make glass panes and iron fences connect to block sides based on solidity. This does change IBlockAccess, so anything with a custom IBlockAccess may need to implement the new method. 2013-06-10 16:57:34 -04:00
LexManos 47b5e28c91 Forgot most important side, release script. 2013-06-10 02:27:39 -07:00
LexManos 47f87ed6b5 Fixed changelog generation. 2013-06-10 02:06:43 -07:00
LexManos c1ba77eb3f Fix AIOOB exception in crash reporting if exception does not have a stack. Possible, but odd. 2013-06-10 01:25:25 -07:00
LexManos 031e7a5e7e Add NPE protection to refernce to MinecraftServer.worldServer 2013-06-08 19:36:57 -07:00
LexManos da75e1b68b Fix hoes being able to till dirt under other blocks, and made it look for air type blocks. 2013-06-08 19:36:02 -07:00
LexManos 5ea9aff894 Fix Air block check in BlockPortal. 2013-06-08 18:38:22 -07:00
LexManos 9034862024 Add NPE protection to ItemStack delegates. Closes #601
Also cleaned up the names of said delegates, we do not have to follow MCP's crowdsourced names as they are very bad.
Redirected damage through setItemDamage to allow items to have finder control of breaking.
2013-06-08 14:02:53 -07:00
Lunatrius 0c308a5f07 Added rotation support for all vanilla blocks that can be rotated. 2013-06-08 21:35:42 +02:00
LexManos 2bbb3ee0ca Disable ImageIO's File based cache, should speed up texturepack loading/stitching. 2013-06-08 12:20:49 -07:00
Christian 24e67b857c Updated FML:
MinecraftForge/FML@24c4056651 Add in an optional modid identifier for @SidedProxy. It's main use is when both scala and java @Mods reside in the same package, and you want the @SidedProxy behaviour for a specific @Mod language type. In general it should not be needed otherwise.
MinecraftForge/FML@cd0466395a Fix sysout with trailing messages after a newline
2013-06-06 12:16:44 -04:00
Christian ab62ca7b1f Merge branch 'master' into newliquid 2013-06-06 09:39:19 -04:00
Christian f515ebcb12 Updated FML:
MinecraftForge/FML@6f3da97365 Don't throw an exception if the scala adapter find a java proxy. I may add some distinguishers to @SidedProxy so you know which mod it's for.
MinecraftForge/FML@59fe905695 Don't continue trying to send events to mods that depend on errored mods.
2013-06-04 20:16:00 -04:00
LexManos 5f750197ac Merge pull request #560 from jk-5/master
RenderGameOverlayEvent.Post ALL is not called in GuiIngameForge
2013-06-03 12:21:34 -07:00
LexManos cea0edfdb1 Ignore registration of a object that is already registered. Preventing duplicate callback invocations. Thanks King_Lemming for pointing this out. 2013-06-02 21:44:34 -07:00
LexManos 0e571eeb19 Add cache for ASM Event Handler bridge classes, should not need to redefine a class to invoke the same method on different instances. 2013-06-02 21:27:09 -07:00
LexManos 15d158161e Make changelog generation non-fatal untill we get jenkins issue figured out. 2013-06-02 16:26:06 -07:00
Christian cc520e40ce Fix isAir check to see if a portal can light. Should fix w/Railcraft and others 2013-06-02 14:51:41 -04:00
Christian 4d626bf025 Patch village distance checking to use floats instead of ints, to avoid int wrapping 2013-05-28 23:36:09 -04:00
LexManos 40afc35985 Fix arbitrary GUIContainer text coloring by forcing lighting to be disabled. Closes #594 2013-05-27 16:13:05 -07:00
Christian 50992f2112 Merge branch 'master' of github.com:KingLemming/MinecraftForge into newliquid
Conflicts:
	common/net/minecraftforge/common/network/ForgePacket.java
2013-05-27 18:16:24 -04:00
Christian 227d4eeefa Updated FML:
MinecraftForge/FML@843a13c1ab Try and clean up cycle detection output a bit
MinecraftForge/FML@82e9de8641 More tweaks to the mod sorting code
MinecraftForge/FML@ac97370f94 Add in a pretty sorting error screen
MinecraftForge/FML@f1d68ed4c8 Throw the sorting exception
MinecraftForge/FML@edc1fb24e2 Send the "suspect list", and print the suspect versions
2013-05-27 11:10:46 -04:00
King Lemming 6cd56ebed6 Forge Fluid System!
Signed-off-by: King Lemming <[email protected]>
2013-05-27 00:56:58 -04:00
LexManos 18d87c64dd Fix potential GL issue when atlas animations bind textures without informating RenderEngine. 2013-05-23 22:07:22 -07:00
LexManos e27de47090 Cleanup Dimension Registration packet, generate takes no arguments, and added fix to world to prevent providers from overwriting the dimension ID. 2013-05-23 22:06:13 -07:00
LexManos 68a31cecb2 Merge pull request #590 from bloodmc/master
Add support for servers to register dimensions on client.
2013-05-23 21:45:41 -07:00
bloodshot 659a837fb0 Add support for servers to register dimensions on client.
In order to support multi-worlds such as MultiVerse, the server needs the
ability to register dimensions on client or many forge mods such as IC2
will not function correctly. This has been an issue for MCPC which
provides both Forge and Bukkit support to players. By adding the
DimensionRegisterPacket class, MCPC now has the ability to send the
required packet to client to register a dimension with DimensionManager.
2013-05-23 15:26:21 -04:00
LexManos 276929901f Introduced the framework for Forge's packet handler system. Heavily based off FMLPacket.
Packet splitting and reconstruction is handled.
2013-05-21 20:13:26 -07:00
Christian e37ff3ddae Updated FML:
MinecraftForge/FML@3bf50c4bbe Fix server side derp with Forge network packet handler
2013-05-21 11:02:36 -04:00
LexManos b293251c17 Fixed creative tab rendering with invalid color closes #588 2013-05-20 19:24:50 -07:00
LexManos f382679cae Fix type in biome list. 2013-05-20 19:24:14 -07:00
Christian 75e99e2150 Add forge network handling support
Updated FML:
MinecraftForge/FML@4922e90d81 Separate network mod config from setup. Allows for Forge Packet Handler nicety
2013-05-20 21:50:59 -04:00
LexManos 7f5fa36fcf Merge pull request #584 from Chicken-Bones/hitinfo
Add hitInfo field to MovingObjectPosition for when an int doesn't suffice
2013-05-19 13:32:09 -07:00
LexManos 7143607620 Fixed render count for stacks of blocks 40+ and distrabution of items based on scale. Closes #579 2013-05-19 13:22:12 -07:00
LexManos 432023a9ba Fix another NPE when Items are in Block range with custom renderers, Modders keep your items out of the block range! Closes #581 2013-05-19 13:09:05 -07:00
Chicken Bones 24757402c2 Add hitInfo field to MovingObjectPosition for when an int doesn't suffice 2013-05-20 02:10:57 +10:00
Christian 63b59f078a Remember x & z passed to getTopSolidOrLiquidBlock and use it for foliage tests. Fixes #575 2013-05-16 10:12:03 -04:00
Christian eba92ad3f8 Fix blending on the hotbar. Closes #574 2013-05-15 20:51:24 -04:00
Christian 5ca854efa8 Add in a very simple stencil bit registry to try and arbitrate between mods wanting to use stencil bits in rendering 2013-05-15 20:29:47 -04:00
Christian 2a86167c98 Updated FML:
MinecraftForge/FML@23b070c7d0 Alternative @SidedProxy setter for Scala.
MinecraftForge/FML@2cca7aa759 Some more Scala @SidedProxy adjustments. Now properly supporting pure singletons, i.e. object C {   @SidedProxy(...)   var proxy: P = null } Removed fallback, as all such singletons are properly handled by the new code now, and class implementations fall back to the code also used for plain Java mods.
MinecraftForge/FML@8517a824e5 Merge declaration and initialization of a variable.
MinecraftForge/FML@a3a920437f Merge pull request #230 from fnuecke/master
2013-05-15 18:49:07 -04:00
LexManos 0f36b52d7d Merge pull request #563 from Asajz/master
Default Quartz Ore Dictionary
2013-05-13 21:23:46 -07:00
LexManos 7e702833ab Merge pull request #568 from hitchh1k3r/master
Furnace XP bug fix (fixed)
2013-05-13 21:23:29 -07:00
LexManos ed5dc83c81 Merge pull request #571 from odininon/master
Addition: ItemStack sensitive canHarvestBlock
2013-05-13 21:22:39 -07:00
LexManos 348add87b3 Merge pull request #565 from CovertJaguar/patch-1
Possible NPE if the liquid isn't in the LD
2013-05-13 21:09:00 -07:00
LexManos 55dac73d10 Fix NPE when rendering EntityItems that are not blocks but int he block range. 2013-05-13 21:04:55 -07:00
Freyja c5b64c5eef Created an ItemStack sensitive version of canHarvestBlock. 2013-05-13 23:33:12 -04:00
LexManos f4b9333c99 Prevent water from dropping snowballs. 2013-05-13 20:31:46 -07:00
hitchh1k3r fecb4dc35f updated FurnaceRecipes.java.patch 2013-05-12 01:15:52 -04:00
LexManos e19ec10b7f Fire EntityJoinWorled event for forced entities {Players and there mounts} as well, just ignore the cancelled value. 2013-05-11 12:16:37 -07:00
LexManos 7ea4508933 MinecraftForge/FML@787c0c4a6a Don't spit error on LWJGL not supporting 4.3 just warning.
Make custom item renderers attempt to use EQUIPPED type when running first person. For backwards compatiblity, will be removed in 1.6.
And a small change to make the 1.6 check not print it's stack trace.
2013-05-11 10:59:03 -07:00
LexManos 348af15cb5 Merge pull request #564 from purpleposeidon/patch-1
Fix render bounding box of trapped double chests
2013-05-11 09:59:07 -07:00
LexManos 79aaddbf57 Merge pull request #566 from jampot5000/patch-1
Make getStencilBits static
2013-05-11 09:56:20 -07:00
jampot5000 9873eee53a Make getStencilBits static
Made getStencilBits static so it can be called.
2013-05-11 16:58:02 +02:00
CovertJaguar a88692a0f2 Possible NPE if the liquid isn't in the LD
https://github.com/BuildCraft/BuildCraft/issues/787
2013-05-11 04:27:52 -06:00
LexManos 4cd70f5e98 Move Partical rendering down in the order, after everything else. Should fix particals rendering behind water, digging process, and selection. 2013-05-11 01:02:30 -07:00
James 1a52514c9d Fix render bounding box of trapped double chests 2013-05-11 00:48:04 -07:00
Asajz c6a1db22ff Added oreQuartz
Gives a default quartz Ore Dictionary (I know of at least 3 used by different mods that use Nether Quartz as an equivalent).
2013-05-10 16:29:58 -05:00
Jeffrey Kog 109d4ff134 RenderGameOverlayEvent.Post(ALL) is now called in GuiIngameForge 2013-05-09 14:27:59 +02:00
LexManos e805d53089 Fixed NPE in rendering dragged items. 2013-05-09 01:03:36 -07:00
LexManos ec755e09d0 Attempt to allocate a 8-bit stencil buffer when creating Minecraft's display context. If that throws an error it will revert back to it's default values.
Also contains a method for modders to rereive how many bits the context was created with. Closes #552
2013-05-08 17:13:19 -07:00
LexManos 2b7cd66f9a New RenderPlayer and RenderLiving events. Closes #493 2013-05-08 16:30:59 -07:00
LexManos 417fff89b8 Changed to just plane entity for flexability. 2013-05-08 15:27:18 -07:00
LexManos 810b03bd83 EntityPlayer sensitive version of Item.isValidArmor, deprecated older version. Closes #551 2013-05-08 15:09:53 -07:00
LexManos 0444cc063c Merge pull request #557 from pahimar/master
Expose the EntityLiving's combat tracker
2013-05-06 19:13:16 -07:00
LexManos c5c44c2de4 Merge pull request #556 from micdoodle8/master
Separate EQUIPPED and EQUIPPED_FIRST_PERSON Item Render Types
2013-05-06 19:08:21 -07:00
pahimar da49e2fb45 Update forge_at.cfg 2013-05-06 14:23:41 -03:00
LexManos 2444a80bef Capture and fire the PlaySoundAtEntity event for The client entity. Minecraft does some odd bypasses for no good reason. Thanks iPixile for reporting this. 2013-05-04 17:39:10 -07:00
micdoodle8 b28910e722 Separate EQUIPPED and EQUIPPED_FIRST_PERSON Item Render Types 2013-05-04 16:59:47 -04:00
LexManos 3fdbc02c54 Updated FML:
MinecraftForge/FML@99bb50d8f8 Improved Entity Spawn Error
MinecraftForge/FML@c0cca7f41d Merge pull request #227 from CovertJaguar/patch-1
MinecraftForge/FML@49111e9c5c Add version detection to astyle and print error if it doesnt detect version 2.0+
 Also fixed astyle's config for max-instatement-indent that sometimes caused crashes with certian versions of astyle.
2013-05-03 14:39:08 -07:00
LexManos 408ced2ea2 Merge remote-tracking branch 'refs/remotes/origin/1.5.2'
Conflicts:
	common/net/minecraftforge/common/ForgeVersion.java
2013-05-02 09:06:36 -07:00
LexManos cd40aba38e Bump version number for 1.5.2 2013-05-02 09:02:26 -07:00
LexManos 46a369e932 Merge pull request #550 from cadyyan/master
Build Script Error Handling Error
2013-04-30 20:20:52 -07:00
James Durand a5cc807dcd Fixed build error handling using invalid Python syntax. 2013-04-29 11:18:05 -05:00
LexManos 3242904b36 Fixed hardcoding of MC version in debug text. 2013-04-28 17:10:16 -07:00
LexManos 24f2fb1f6a Updated FML:
MinecraftForge/FML@00f00b17bf Fix scalac detection to actually use the located command instead of defaulting to 'scalac'
2013-04-28 16:57:19 -07:00
LexManos 784e23668b Changelog generator will now bundle failed builds with the next successful build. Should make it look better and prevent the version numbers from being confusing. 2013-04-28 15:35:14 -07:00
LexManos a6b8055c44 Bump version to 7.7.2 so I can make a release. 2013-04-28 14:21:33 -07:00
LexManos 2c05258205 Update to 1.5.2 PR.
MinecraftForge/FML@f0bba74a47 Update for minecraft 1.5.2
MinecraftForge/FML@62fdbad74c Update MCP's md5 for the fixed srg files.
2013-04-28 13:28:40 -07:00
LexManos cffaef6e0f Merge pull request #543 from Chimaine/master
Fix unregistering of event listener
2013-04-26 13:07:06 -07:00
Chimaine 3061fd6db6 Replaced derpy tabs with spaces 2013-04-26 21:53:09 +02:00
Chimaine 4b4f5a07a5 Fixed ListenerListInst not being rebuild after unregistering a listener, causing calls to unregistered event listeners. 2013-04-26 12:45:45 +02:00
cpw cb14e29cdb Merge pull request #542 from KingLemming/master
OreDictionary additions + ItemStack maxDamage hook
2013-04-25 18:46:06 -07:00
King Lemming b8a17e2748 -Add vanilla Ores to the Ore Dictionary. No recipe replacement required.
-Add NBT-sensitive getMaxDamage() for ItemStack.

Signed-off-by: King Lemming <[email protected]>
2013-04-25 21:36:51 -04:00
LexManos 4da2992df5 Attempted a fix for the changelog generation, should print all builds back to 1 now. 2013-04-24 10:49:33 -07:00
Christian 54b3654eaa Updated FML:
MinecraftForge/FML@cf9b5b445b Don't leave scala running in interactive mode.
2013-04-23 23:37:56 -04:00
Christian b483c7ee74 Updated FML:
MinecraftForge/FML@aa200923f0 Fix patch derp.
2013-04-23 22:51:28 -04:00
Christian e50fb10bff Updated FML:
MinecraftForge/FML@ddadf93ca1 Fix when an old scalac is present on the system to not fail the build
2013-04-23 22:44:35 -04:00
LexManos 15ffb962e4 Fix rotation issue with non-block items. 2013-04-23 19:05:35 -07:00
Christian b56d05ef9d ItemStack delegation to Item for damage values. 2013-04-23 19:05:11 -04:00
Christian 7aa91ca635 Try and be less noisy about world leaks 2013-04-23 07:51:07 -04:00
Christian 10f1028a8f Updated FML:
MinecraftForge/FML@cfda7fc738 Fix URL for MCP
MinecraftForge/FML@781c681216 Some fixups for scala compilation in MCP. Scala should now be compilable and reobfuscatable with srgnames in MCP.
2013-04-23 07:41:45 -04:00
Christian 95c144dcf0 Updated FML:
MinecraftForge/FML@dcf069ca52 Attempt to reduce lines on the screen for id mismatch. Hopefully prevents game crashes.
MinecraftForge/FML@58ba24add2 Fix possible NPEs in GameData
2013-04-22 21:15:04 -04:00
richardg867 f3caada13a Complete it, got the bug figured out 2013-04-22 13:08:59 -03:00
richardg867 27d922d470 Techne model loader (incomplete for debugging) 2013-04-21 21:32:23 -03:00
Christian 6e2d06c950 Add forge/FML data to the f3 screen. 2013-04-21 16:54:11 -04:00
Christian de8a4c8855 Updated FML:
MinecraftForge/FML@a3b5eaacfd Fix a small modloader compatibility derp: closes #222
MinecraftForge/FML@677a6e578e Fix scala supporting SidedProxy. It should work now.
MinecraftForge/FML@334a76de75 Update FMLDeobfuscatingRemapper.java
MinecraftForge/FML@42f1d87955 Merge pull request #224 from Glought/master
MinecraftForge/FML@2dcabe0123 Add a to string to fmlmodcontainer: should mean less derpy cyclic dependency data
MinecraftForge/FML@11ac46daeb Fixing the GameRegistry. Now it is possible to register a Block with a BlockItem using following code: MyBlock myBlock = new MyBlock(); GameRegistry.registerBlock(myBlock, MyBlockItem.class, "myBlock"); where MyBlockItem class has one constructor with signature: public MyBlockItem(int id, Block block)
MinecraftForge/FML@c3fda11d10 Merge pull request #225 from MarcinSc/master
2013-04-21 16:43:24 -04:00
LexManos c0d7e23c8d Merge remote-tracking branch 'refs/remotes/origin/GuiIngame'
Conflicts:
	patches/minecraft/net/minecraft/client/Minecraft.java.patch
2013-04-21 10:42:17 -07:00
LexManos 960eaf99ef Allow spawning of Bonemeal particles even if block is not set. 2013-04-21 00:15:02 -07:00
LexManos c998db6a86 Restore world unload event for client worlds Closes #531 2013-04-20 11:25:16 -07:00
LexManos 06727b965e Fix replaceable checks to work on blocks with a non-replacable material, Closes #532 2013-04-20 11:19:05 -07:00
LexManos 13ff75bd9c Fix the BLOCK_3D render helper for items that aren't an instance of ItemBlock Closes #533 2013-04-20 11:12:35 -07:00
LexManos 2d84dcd44e Fix logic issue in CrashReportCategory patch, blame Jadedcat for sloppy quick patch. 2013-04-19 22:08:07 -07:00
LexManos 74742fd12f Merge pull request #530 from Azanor/master
Fix for BiomeDictionary.getTypesForBiome throwing a ClassCastException when called.
2013-04-19 10:52:30 -07:00
Azanor 4b2aca2124 getBiomesForType will cause the same problem 2013-04-19 14:29:07 +03:00
Azanor 09dd117d1d Fix for ClassCastException when attempting to fetch Biome types from BiomeDictionary
Attempting to fetch the BiomeDictionary types linked to a biome throws a ClassCastException. This fixes that
2013-04-19 14:08:53 +03:00
Christian cf90eb37f7 Simple block recolouring API: closes #525
Fix up documentation on "rotation" API: it is up to the mod to decide interpretation of "rotation" for the mod/block.
2013-04-18 17:21:26 -04:00
Christian cb9e944257 Updated FML:
MinecraftForge/FML@b3d4ea05ec Fix possible NPE in findItemStack, closes #218
2013-04-18 16:39:11 -04:00
LexManos cb4a073f5d Adds a field to the player for maximum health. Player.dat additions are present, getMaxHealth() needs a magic number for spawning. Closes #527 2013-04-17 19:16:34 -07:00
LexManos a0891d74a0 Fix return value of EnchantPower hook, closes #518 2013-04-17 19:08:50 -07:00
LexManos 11115d5f3a Forge now takes control of GuiIngame's renderGameOverlay, and spits out a ton of events to give modders control of how the screen is rendered.
Inital draft for community feedback.
2013-04-17 18:55:06 -07:00
LexManos d3a2243799 New hook to allow Items to render Helmet overlays like pumpkins do. 2013-04-17 14:03:59 -07:00
Christian 718e9b3756 Updated FML:
MinecraftForge/FML@394f424185 Fix to output versions in crash logs
MinecraftForge/FML@8f35adca7a Use more expressive language when a version specifier is a simple unbounded above condition
2013-04-16 13:57:46 -04:00
Christian 588bc8c865 Updated FML:
MinecraftForge/FML@5673c1dd29 Add srgname to registerTileEntityWithAlternatives
MinecraftForge/FML@7aea09f4ca Add type info to properly deobfuscate overloaded fields. Fixes #210.
MinecraftForge/FML@edffd04ed2 Add in some caching of the read field descriptions for efficiency
MinecraftForge/FML@0daf1a6df4 Merge branch 'agaricusb-fix-deobf-field'
MinecraftForge/FML@ada52078c7 Merge pull request #216 from agaricusb/add-srgname
2013-04-15 19:06:41 -04:00
LexManos 4bd7d4f3d9 Merge pull request #521 from ProgrammerHero/master
Fixed a bug that prevented proper lava generation near bedrock
2013-04-15 10:17:01 -07:00
ProgrammerHero add399284b fixed a bug that prevented proper lava generation near bedrock 2013-04-15 10:14:16 -03:00
LexManos 560931a14a Fix AIOOB in crash report stack trimming. 2013-04-14 21:42:13 -07:00
LexManos 5cdc45b6da Merge pull request #515 from pahimar/master
Fixes parsing faces for faces that do not have texture coordinate data
2013-04-12 14:10:06 -07:00
pahimar 46eeadf3a2 Missed a bit 2013-04-12 16:05:56 -04:00
pahimar 6bb839e13c Fix a derp in that we provision the various arrays for a face, even if we are not going to parse data into it. Solves NPEs for when obj models that don't have texture coordinates attempt to render. 2013-04-12 15:57:59 -04:00
LexManos 3818ffdf56 Cave and Ravine gen will now take into account the Biomes top and foller block, allowing them to break the surface in modded biomes. Beaches, MushroomIslands and Deserts are exempt from this check to preserve vanilla world gen functionality. Closes #491 2013-04-11 11:39:23 -07:00
Christian a09c5ad484 Fix offset in AdvancedModelLoader. *doh* 2013-04-10 20:27:29 -04:00
LexManos cb67c72cd7 Added a small method in the Block.java to specify the amount of enchanting power it can supply to an enchanting table. Closes #508 2013-04-10 16:56:31 -07:00
LexManos b66d3b6b0f Added NBT data to liquid stacks. Closes #501 2013-04-10 16:44:31 -07:00
LexManos 969cd4e762 Add Item 'swing' callback for use when playing the arm swing animation. Closes #505 2013-04-10 16:33:16 -07:00
LexManos 395c537f2c Item callback for EntityItem update tick. Closes #426 2013-04-10 16:06:07 -07:00
Christian 02a0824716 Delete sneaky extra file 2013-04-10 18:39:47 -04:00
Christian 1ae7fa0080 Add in a generic factory interface, allowing for additional model support
to be added at runtime.
2013-04-10 18:30:25 -04:00
pahimar d4b71ef964 More interface work 2013-04-10 18:30:25 -04:00
pahimar 091c4ab6ac Adding interface for other custom model format importers to implement 2013-04-10 18:30:25 -04:00
pahimar 09fee09a01 Switch out String.matches in favour of Pattern/Matcher usage, and a tad more documentation.
Fixed a bug in texture coordinate parsing (can have 2-3 values per entry, instead of the 3-4 I had before)
2013-04-10 18:30:25 -04:00
pahimar 46e53fb461 Wavefront object importer. Imports Wavefront object and offers some simple render methods for rendering the models in game. Modders have complete access to all the data in the model to write their own rendering related code as well. 2013-04-10 18:30:25 -04:00
Christian 7c6468a9ea Update MCP names to recent published names
Updated FML:
MinecraftForge/FML@1774e2bf30 MCP names update
2013-04-10 18:30:25 -04:00
LexManos 77f6d9eeab Re-add and mark deprecated the old signature for ForgeHooksClient.getArmorTexture. 2013-04-10 18:30:25 -04:00
Christian 1490479bd6 Deprecate preloadTexture, make it a no-op. Should stop derpiness with new
texturing system performance tweaks.
2013-04-10 18:30:25 -04:00
LexManos 460eefab49 Updated FML: MinecraftForge/FML@4836b3272a Re-worked the Texture patches, optifine helper function, and re-added support fo
r dynamically rotating the texture for mod authors who do things horribly wrong.
2013-04-10 18:30:25 -04:00
Christian dd720bbb5c Updated FML:
MinecraftForge/FML@a31607ae7d Fix compilation derp, and clean up rotation helper.
2013-04-10 18:30:25 -04:00
Christian cefcd8aee6 Fix performance of texture uploads
Updated FML:
MinecraftForge/FML@00c7883088 Very significant improvement in performance by using glSubImage to upload data. Inspired by frequent complaints about performance of hires texture packs. They probably still need a beefy system but should work. Hopefully I can figure out why the subImage GL side copy isn't working properly for an even more significant speed boost. But this gets things started.
MinecraftForge/FML@57ad221cc6 And add the patches *sigh*
2013-04-10 18:30:25 -04:00
LexManos f755fb2ebb Optimize Texture loops a bit for non-rotated textures. Should help the FPS loss on higher resolution texture packs. If it becomes a major issue we may have to look into a more optimized animation system.
https://mojang.atlassian.net/browse/MC-13206
2013-04-10 18:30:24 -04:00
LexManos dc047fcb7a Small bugfix in Stitcher that was preventing ti from fully filling the possible texture space. Should lower the amount of empty space in textures. 2013-04-10 18:30:24 -04:00
LexManos 2de6f297e1 Small optimization for usages of Minecraft.getGLMaximumTextureSize(), only need to calculate it once. 2013-04-10 18:30:24 -04:00
LexManos 9e35cdfa33 Fix scoreboard saving bug caused by our fix of vanilla map saves. 2013-04-10 18:30:24 -04:00
LexManos f05b27c27d Deprecate long dead interface that moved to FML. remvoe next MC version. 2013-04-10 18:30:24 -04:00
LexManos f80ed1553d Updated FML: MinecraftForge/FML@1de89525cc Fixed issue with instalation when java/javac commands had quotes. 2013-04-10 18:30:24 -04:00
LexManos be80a794ac Updated FML: MinecraftForge/FML@704a70902f Sanitize input to isRemappedClass to use '/' as a package seperator like the srg files. 2013-04-10 18:30:24 -04:00
LexManos 2ee07bb250 New hook to allow Items to provide there own armor models. Closes #487 2013-04-10 18:30:24 -04:00
ChildWalrus 0034a0c6c2 This allows the result of the explosion to take into account metadata,
tile entities, or even to cancel it altogether.

Allowed block exploding to take into account tile entity and metadata
2013-04-10 18:30:24 -04:00
LexManos 5f44333b8f Untag NBTTagList.removeTag as client side only, allowing simple removal ont he server side. Closes #477 2013-04-10 18:30:24 -04:00
LexManos 02d0e5e9ed Fix item deletion in creative menu for items that are the same id/meta but differnet NBT's. Closes #479 2013-04-10 18:30:24 -04:00
LexManos 829a60722c Allow items to provide there own FontRenderer for there tooltips. Added for #463 2013-04-10 18:30:24 -04:00
Tarion 9b58fb9384 Clarify Factory call and Event Functionality 2013-04-10 18:30:24 -04:00
Tarion aa202878e2 Added maxCanSpawnInChunk event to allow overriding of creature chunk spawn cap 2013-04-10 18:30:24 -04:00
LexManos a44bd6dadf Add function to remove categories from a configuration, indavidual properties can be removed using ConfigCategory.remove() Closes #462 2013-04-04 18:09:01 -07:00
LexManos 814123a973 Pulled Biome Tag System by Emasher, Closes #433
An issue with biome adding mods which is becoming increasingly annoying for players, is that many mod authors that add biome specific world generation or mobs in their mods, for the most part, hard code them to work with vanilla biomes only. This becomes a huge problem when it's difficult to even find a vanilla biome, let alone a specific one, when biome mods are installed.

A simple solution to this problem is a tag system for biomes that allows mod authors to set up their world generators, or mobs to generate or spawn in biomes that have been registered with a specific tag such as "FOREST", or "FROZEN". I wrote such a system a few months ago, which I've been using with my own mods, and have made available to anyone who wants to use it. Since then, I've had requests from mod authors and players alike to try and get it, or at least similar functionality, into Forge, where other mod authors will be more comfortable using it.

Aside from the tags, it also includes a rule based system to classify biomes that have not already been registered with it when information is requested on them (You can opt out of this by registering a biome as type "NULL"). And additionally, the ability to register IWorldGenerators for specific biomes, or biome types (tags) to speed up chunk generation a little bit.
2013-04-04 17:55:35 -07:00
LexManos 6b0d1bb319 Deprecate IArmorTextureProvider, moved to Item. And exposed more information to the function. Closes #365 2013-04-04 17:28:50 -07:00
LexManos 488322baa2 Add checking for 'ENUM$VALUES' in EnumHelper. Eclipse uses it's own internal compiler which does not follow the java standard of making the values field names $VALUES and private. Instead its public and ENUM$VALUES. Closes #502 2013-04-04 16:04:04 -07:00
LexManos b3a814785c Updated FML: MinecraftForge/FML@570faeb790 Added the ability to save transformed classes to disc for debugging. 2013-04-04 16:02:00 -07:00
LexManos bbe0c3c4bb Revert MinecraftForge/MinecraftForge@f594109b30 If concurancy issues arise we will reassess. The provided solution caused entities to be removed incorrectly and cause 'invisible' entities client side. 2013-04-03 04:07:01 -07:00
LexManos 0b16831ce9 Fix EntityPlayer passed to Bonemeal event. 2013-04-03 02:27:07 -07:00
LexManos 42875b70d9 Removed index bounds checking in some chunk functions, if you error blame Grum. 2013-04-03 02:07:51 -07:00
LexManos 6df717db5a Fix off-by-one in rotated textures. 2013-04-03 01:32:33 -07:00
LexManos 39ccc2e150 Fix vanilla texture bug causing rotated textures to be placed wrong. 2013-04-02 23:51:53 -07:00
Christian 5b03eb9792 Updated FML:
MinecraftForge/FML@8b8837c9ff Fix NPE when branding isn't present
2013-03-31 10:02:14 -04:00
cpw 0b50c01fa5 Merge pull request #496 from Krapht/master
Remove a SideOnly that crashes server
2013-03-31 06:50:24 -07:00
Krapht 1ec2810bac Remove unneeded SideOnly. ref: Buildcraft/Buildcraft#710 2013-03-31 09:04:49 +02:00
Christian 727e27e191 Removed obsolete patches
Updated FML:
MinecraftForge/FML@26ccb9106e Change snooper/crash report brand handling. fmlbranding now loads another string!
MinecraftForge/FML@eff464cf0e And the core patches for that
2013-03-30 12:18:10 -04:00
Christian 5ad133c664 Sanity check the item ID for loaded liquid stacks better. 2013-03-29 21:43:59 -04:00
Christian 8a4a62ab4e Add in persistence code for LiquidTank. Using it should protect against liquids that get removed f.e. Closes #395 2013-03-29 16:21:17 -04:00
Christian b1e7248a67 Make liquidstacks immutable in their type data. Sorry about this, but it makes things a lot easier. 2013-03-29 15:40:45 -04:00
Christian fc976c7714 Fix up liquidstack so it knows about the texture sheet for it's icon 2013-03-29 12:42:55 -04:00
Christian 6b1c46cc4a Fix AT file 2013-03-28 17:41:18 -04:00
Christian b4116f1f31 Fix possible NPE in ChunkManager. Closes #478 in reality 2013-03-28 08:19:24 -04:00
Christian a7108bc2ff Fix up some liquid logic 2013-03-28 08:07:09 -04:00
Flow86 41ed59f424 fix bug #489 from #429 2013-03-28 08:07:09 -04:00
Krapht 6fe6912456 made BlockFluid.theIcon protected 2013-03-28 08:07:09 -04:00
Christian 5ac0e3a621 Updated FML:
MinecraftForge/FML@0d84487412 Fix up derp in access transformer
2013-03-27 19:27:37 -04:00
Christian 7cfb28fecb Fix hashCode 2013-03-27 19:27:00 -04:00
Christian 91cecec28a Use the liquid name in liquid stack persistence. Closes #429 2013-03-27 19:09:57 -04:00
Christian e5315714a9 Updated FML:
MinecraftForge/FML@2bc6a0666f Attempt to make any "default package" class public. This might fix problems with certain modloader mods that ship changes to vanilla classes.
2013-03-27 16:56:01 -04:00
LexManos 2d08490a27 Bump version number for 1.5.1 Note: We really need to do this more... 2013-03-26 20:49:44 -07:00
LexManos dc05f210f5 Fix NPEs when modders stupidly register null texture names. 2013-03-26 11:11:31 -07:00
LexManos 9bb558078b Fixed issue with Event.hasAnnotation ignoring it's parameter. And cached its values for potential performance gain. Closes #482 2013-03-26 10:38:55 -07:00
Christian 891527883e Damn you python and your tab obsession! 2013-03-23 23:25:08 -04:00
Christian 626ae3a725 Changelog fixup 2013-03-23 23:18:24 -04:00
Christian 93a629dd95 Re-enable changelog? Hopefully... 2013-03-23 22:31:28 -04:00
Christian ada4bff990 Merge branch 'mithionchanges' 2013-03-23 22:03:18 -04:00
Christian 177b5123c9 Update patches! 2013-03-23 22:02:58 -04:00
Christian 8e1c8f25f3 Merge branch 'mithionchanges' 2013-03-23 16:57:03 -04:00
Christian 300f471c57 Merge branch 'mithionchanges' of github.com:Mithion/MinecraftForge into mithionchanges
Fix up code for minecraftforge style. Clean up patches.

Conflicts:
	common/forge_at.cfg
	patches/minecraft/net/minecraft/block/Block.java.patch
2013-03-23 16:56:01 -04:00
Christian f483adf8bb Updated FML:
MinecraftForge/FML@82bc9f1b35 Add some information, and a log message letting you know it worked
2013-03-23 16:01:49 -04:00
Christian d8a1cb87ca Updated FML:
MinecraftForge/FML@ede93d438f Validate supplied stack size
MinecraftForge/FML@d73ac867df Add a mechanism to dump the registry- useful for mod developers.
2013-03-23 15:40:05 -04:00
Christian 541425309b Updated FML:
MinecraftForge/FML@5e1949eb0e Clone the itemstack, and allow for passing in a stacksize
2013-03-23 14:58:56 -04:00
Christian 23f4c8d817 Updated FML:
MinecraftForge/FML@2d368c4c2e Itemstacks in the GameRegistry (manual registration by mods)
2013-03-23 14:49:33 -04:00
Mithion b8856e9ed9 quick bugfix in entityenderman
reversed boolean check on event result
2013-03-23 14:15:20 -04:00
Mithion e13dff305e Ender Teleport Changes
Renamed Ender Teleport Event and added it in to ender pearls.
2013-03-23 14:12:42 -04:00
Mithion 81ff5d7896 Enderman attackEntityFrom changed
Changed so that if the teleport fails upon being attacked, Endermen will
take damage as normal.
2013-03-23 13:40:13 -04:00
Mithion 4de9793ec9 Enderman Teleport Event
New event when an enderman teleports that allows the teleport location
to either be modified or completely cancelled.
2013-03-23 12:59:06 -04:00
Mithion 833e9f0c88 Access Transformer Changes
AT changes and corresponding class changes.
Additions (all made public):
EntityLiving.targetTasks
PotionHelper.potionRequirements
PotionHelper.potionAmplifiers
PotionEffect.duration
Potion.setIconIndex
Item.setPotionEffect
Block.blockHardness
Block.blockResistance
2013-03-23 12:58:24 -04:00
Christian 4de9140a34 Add in block rotation support. It supports most vanilla blocks (hopefully), logs should be added soon. 2013-03-23 11:56:58 -04:00
Christian 88d3723e4e Fix itemframe render bug 2013-03-23 10:23:26 -04:00
Christian baf43da9a0 Fix AT config for texturemap 2013-03-22 16:54:42 -04:00
Mithion ee6dce2390 Player Flyable Fall Event
Adds an event to EntityPlayer that is posted on player fall when the
player has flight capabilities.
2013-03-22 15:05:58 -04:00
Mithion fa2cbe2671 Brewing Stand Changes
Added an event on potion ingredient applied.  Event contains the item
stacks of each of the potions being brewed as well as any remaining
ingredients.

Changed TileEntityBrewingStand and SlotBrewingStandPotion to look for
instanceof ItemPotion rather than potion.itemID
2013-03-22 15:05:23 -04:00
Mithion 2a76f7740e Entity Extended Properties Changes
Adds IExtendedEntityProperties interface, which specifies three methods
that are needed:  Init, Save, and Load.

Adds the EntityConstructing event, which is called during the
constructor of Entity.  It is needed there so that the reference is in
place during the ReadNBT call.

Adds hooks into Entity that allow registration of
IExtendedEntityProperties classes, as well as saving and loading to NBT.
2013-03-22 15:04:00 -04:00
Christian 734f434f45 Allow itemstack sensitive damage computation for attacks. Should allow
storing data in the nbt :)
2013-03-22 14:05:56 -04:00
Christian f6a2bf28fe Allow items to decide if they can or cannot have book enchantments applied 2013-03-22 12:34:19 -04:00
Christian d6b70f7b66 Updated FML:
MinecraftForge/FML@d9db27275e Fix mismatch screen a bit. Should render more correctly now and at least not be blank in a lot of circumstances..
2013-03-22 10:21:34 -04:00
Christian c38467c577 Updated FML:
MinecraftForge/FML@d1ff1967b5 Fixed FMLRelaunchLog's Newline Handling
MinecraftForge/FML@591a25722b Merge pull request #208 from jrtc27/patch-1
2013-03-22 09:29:09 -04:00
Christian a754724f7f Updated FML:
MinecraftForge/FML@f709ce7579 Fix missing block world rendering
MinecraftForge/FML@748eece456 Merge pull request #206 from mDiyo/patch-1
MinecraftForge/FML@012a755bb9 Fix up patch properly. Also, fix md5s for the jars.
2013-03-22 01:51:23 -04:00
LexManos 411696f6b8 Merge MC 1.5.1 branch to master. 2013-03-21 04:24:44 -07:00
LexManos 727c042a0e Updated FML:
MinecraftForge/FML@625da6492d Fix install.py --mcp-dir option. Fixes #204.
MinecraftForge/FML@687d3c059d Merge pull request #204 from agaricusb/fix-mcpdir
2013-03-20 18:49:36 -07:00
LexManos 342a33c142 MinecraftForge/FML@aaf02ea2ac Updated for new PR client jar. 2013-03-20 09:05:58 -07:00
LexManos 3d9629013b Update to 1.5.1 Pre-Release:
MinecraftForge/FML@9565529baf Updated to latest MCP and Minecraft 1.5.1 Pre-release.
MinecraftForge/FML@a573faf92d Someone derped up this function bad, revert name.
2013-03-19 18:09:48 -07:00
LexManos 8aca6b4193 Updated FML:
MinecraftForge/FML@3c346247e1 Fix NPE with CoreMods who do not have the new MCVersion annotation.
2013-03-19 13:49:31 -07:00
LexManos f30f7cb4ab Change placement of ChunkDataEvent.Save call to apply before sending to worker thread. 2013-03-18 14:24:07 -07:00
Christian 8ab1e918f6 Updated FML:
MinecraftForge/FML@5cc90f060c Fix the logger to treat newlines better, hopefully. Closes #199
MinecraftForge/FML@5e3af8ac0e Use the relaunch log, for class circularity safety.
MinecraftForge/FML@ce949e6099 Support simple mc version test in coremods, only effective through jar loading. Also, log some more data about the environment.
2013-03-18 08:04:05 -04:00
LexManos 2395699afd New TextureStitchEvents called before and after a TextureMap gathers and stitches textures together.
Also added a config option to diable the writing of resulting stitched textures to disc. Default disables the writing.
2013-03-17 20:07:30 -07:00
LexManos a964725d46 Updated FML:
MinecraftForge/FML@24022ab6ba Added comments to note FML-only methods
MinecraftForge/FML@8905237306 Merge pull request #200 from bspkrs/patch-2
MinecraftForge/FML@577b19c1cf Fix potential NPE in class loading and add extra debug information.
2013-03-17 12:01:41 -07:00
LexManos 458a79611b Fix placing of certian items on Redstone Blocks. 2013-03-16 23:06:58 -07:00
LexManos 71127d1cc0 Fix equipment slots for items when right clicked, and dispensed using a dispensor. 2013-03-16 22:11:55 -07:00
LexManos a30584cb64 Fix logic inversion that allowed SnowMen to create snow on hoppers. 2013-03-16 12:50:57 -07:00
LexManos 7588bec62e Prevent pistons from generating snowballs. 2013-03-16 12:50:30 -07:00
LexManos 6636a2913e Merge pull request #460 from LepkoQQ/master
Shaped Ore Recipe mirroring issue
2013-03-16 11:27:22 -07:00
Christian d52160919d Fix multipass item rendering so that it uses the right spritesheet for the item. 2013-03-16 13:44:32 -04:00
LepkoQQ f1b32126c5 Fix ShapedOreRecipe checking mirrored recipes 2013-03-16 11:57:11 +01:00
LexManos 304421a4c9 Merge pull request #459 from ChildWalrus/sleep
Made some sleep-related fields public to allow fixing of sleeping bug in new dimensions
2013-03-15 21:32:30 -07:00
LexManos 90698d64b6 Fix Activator rails activating TNT carts, closes #458 2013-03-15 21:20:29 -07:00
LexManos 66a2081d2e Merge pull request #455 from Corax/patch-1
Update ForgeDummyContainer.java
2013-03-15 20:28:02 -07:00
ChildWalrus 3e6ca3a740 Made WorldServer.allPlayersSleeping public
Made EntityPlayer.sleepTimer public

Sleep changes
2013-03-15 21:54:06 +00:00
Christian ed8d51b021 Updated FML:
MinecraftForge/FML@c5d5f4e516 Fix AllPublic access transformer not affecting methods. Should fix modloader compatibility
2013-03-14 16:00:40 -04:00
Corax de0910b4fb Update ForgeDummyContainer.java 2013-03-14 10:02:17 +01:00
LexManos 8f5f4f7385 Updated FML:
MinecraftForge/FML@4762d4d8ef Allocate more ram {typically 256 is defailt} to fermflower, should fix decomplication issues on OSX
MinecraftForge/FML@6370c242f0 OS X's python 2.6.1 has a bug in zipfile.extractall that makes it unzip directories as regular files. So switch to extract
2013-03-13 13:15:39 -07:00
LexManos df1e32d7db Remove the block if TE errors. 2013-03-13 12:40:45 -07:00
LexManos 62cb053d5f Add config toggle to atempt to remove TileEntities and Entities that error during there update without fully crashing the server, use at your own risk. Closes #424 2013-03-13 12:20:57 -07:00
Christian 981310c5a3 Updated FML:
MinecraftForge/FML@8f2dbf7046 Fix up stupid derp in IMC code: actually reset the IMC list after each delivery. Fixes a bunch of mods. Sorry everyone.
2013-03-13 15:11:07 -04:00
LexManos 95a7ec3f08 Merge pull request #449 from iChun/patch-5
[Bugfix] One should not assume an item would use the item spritesheet.
2013-03-13 11:53:50 -07:00
LexManos 58ad89ca90 Fix for nether quartz not generating in the nether, Closes #454 2013-03-13 11:51:36 -07:00
LexManos 81c00a89c5 Fix RedstoneBlock power issues, Closes #452 2013-03-13 11:49:10 -07:00
LexManos 3b40687f55 Fix bug with rendering one too many passes for ItemEntities Closes #450 2013-03-13 11:48:39 -07:00
LexManos c471a9a557 Deprecation Sweep in DungeonHooks and fixed wildcard in ChestGenHooks remove function. 2013-03-13 10:55:08 -07:00
iChun 44e690b8de [Bugfix] One should not assume an item would use the item spritesheet.
Item class has a func to return an int to use terrain.png or items.png. This makes forge take account of it.
2013-03-13 20:36:32 +08:00
LexManos ff0340f5b4 Fix missed wildcard change in OreDictionary closes #448 2013-03-12 19:44:47 -07:00
LexManos 3e1949fc1c Add call to EntityLiving when counting entities for Spawning Cap. Closes #447 2013-03-12 19:41:51 -07:00
LexManos 2cd9382bfc Move the RenderWorldLastEvent back to before renderHand like it was in 1.4 Closes #444 2013-03-12 19:14:41 -07:00
LexManos 48e95f3d44 Fix RenderItem to work with items that use the terrain texture map that aren't in the block ID range. Close #443 2013-03-12 19:02:18 -07:00
LexManos 31b908473d Fix crash when EnumHelper can't find $VALUES field, log info, and return gracefully. 2013-03-12 18:42:43 -07:00
Christian 40e7798d1e Updated FML:
MinecraftForge/FML@23ea835fa7 Pass obfuscation status to coremods
2013-03-12 21:07:25 -04:00
Christian 546ceaa9d8 Updated FML:
MinecraftForge/FML@d88db6c0cf Fix up deep tree deobfuscation
2013-03-12 21:06:07 -04:00
Christian 83d4be5a05 Some tweaks to the liquid dictionary, to allow for canonical liquid stacks for things like rendering 2013-03-12 20:33:50 -04:00
LexManos ce2ebc1d04 Updated FML:
MinecraftForge/FML@7b722bfcd6 Update MCP for latest PR silent update.
MinecraftForge/FML@c6dab815f4 Missed joined.exc, must fix scripts.
2013-03-12 15:21:49 -07:00
LexManos ee1460d8c4 Removed get/setTextureFile from Block, nolonger used. 2013-03-12 14:47:05 -07:00
LexManos dfdef18d35 Updated FML:
MinecraftForge/FML@a90504315e Readjust size of mods button when Minecraft Realms button is enabled.
2013-03-11 16:28:19 -07:00
Christian 529062d73f Fix the oredictionary for the new recipe wildcard value of Short.MAX_VALUE. 2013-03-11 17:43:23 -04:00
Christian 4d6c135182 Updated FML:
MinecraftForge/FML@3765ceb02d Update MCP, fixes the "broken texture packs" problem.
2013-03-11 16:37:53 -04:00
Christian 94a0203882 Updated FML:
MinecraftForge/FML@dab22f5b74 Fix "0 mods" display when installed in forge.
2013-03-10 12:14:40 -04:00
Christian 811c53e518 Updated FML:
MinecraftForge/FML@179c504746 Simplify logic in tick start/end
MinecraftForge/FML@29edd242cd Fix coremods without a manifest crashing the game. Closes #181
MinecraftForge/FML@ac16845fc4 Fix demo mode crash. Closes #187
MinecraftForge/FML@984291cee9 Fix supertype parsing to handle null superclass (Hi Object!). Closes #160
MinecraftForge/FML@f647929993 Merge branch 'master' of github.com:Uristqwerty/FML
MinecraftForge/FML@b301e8e4c1 Change type of connection queue to a concurrent linked queue. Much more efficient, hopefully. Closes #189
2013-03-10 01:34:45 -05:00
Christian 4175d2f306 Updated FML:
MinecraftForge/FML@591e65fa1a Revert "Use the reobfuscation maps in the reflection helper for field lookups: should help some reflection cases with the deobf."
MinecraftForge/FML@2a779ec328 Try a different way of remapping the fields. Should work because it's userspace, not relauncher space
MinecraftForge/FML@ca2d8bd834 Fix reflection helper: it needs to unmap the classname to find the field maps.
2013-03-09 17:59:21 -05:00
Christian d5edaea88f Updated FML:
MinecraftForge/FML@485db6be2e Use the reobfuscation maps in the reflection helper for field lookups: should help some reflection cases with the deobf.
2013-03-09 17:21:13 -05:00
Christian c9f6412392 Updated FML:
MinecraftForge/FML@25f3fcad46 Fix up some relauncher stuff: the vanilla applet works now, as do other applets. Deobf data is resolveable for them too.
2013-03-09 15:30:32 -05:00
LexManos 4a0393f613 Updated FML:
MinecraftForge/FML@6bf7c9878c Fixed srg name of minecraftDir for runtime deobf.
2013-03-09 11:57:13 -08:00
Christian d12554a3e2 Updated FML:
MinecraftForge/FML@95d0ff18cd Fix runtime deobfuscation for remapped inner classes
2013-03-09 14:15:14 -05:00
Christian 170d22e5ac Refresh patch 2013-03-09 13:39:12 -05:00
LexManos 3d8b247884 Updated FML:
MinecraftForge/FML@86a9c7d359 Fixup reobfusication of server code if present.
MinecraftForge/FML@8e7956397d Just enable server side compile, and warn not to complain tous.
MinecraftForge/FML@889efc1c0a Fixes GameRegistry.registerBlock
MinecraftForge/FML@fe1623a36a Merge pull request #195 from RainWarrior/snapshot15
MinecraftForge/FML@62f5adf8e2 Revert "Fix modlist to use the new texture binding functions, i think"
MinecraftForge/FML@58ee06ea8e Some fixes for the snapshot
MinecraftForge/FML@368a2245ef Merge branch 'snapshot15'
MinecraftForge/FML@1eba1dfdc0 Fix accidental commands.patch overwrite
MinecraftForge/FML@ebdb166ec8 Merge branch 'snapshot15'
MinecraftForge/FML@450dd8313c Fix up some small things, merging into mainline
MinecraftForge/FML@1642bad402 Fix Multi-part entity children ID issue, mobs with custom spawning must deal with child ids themselves.
2013-03-09 10:10:22 -08:00
LexManos 14c362196e Merge remote-tracking branch 'origin/snapshot15' 2013-03-09 09:53:43 -08:00
LexManos 4945bd9d0f Fix reobf call. 2013-03-09 01:00:52 -08:00
LexManos 9a72d50dec Early define CrashReport classes to combat invalid crash details. 2013-03-08 20:31:37 -08:00
LexManos 025d4f8f25 Updated FML:
MinecraftForge/FML@f1c6bdd57d Support the MCP format of partial reobfuscation for portability. Ensure modloader-like compatibility
MinecraftForge/FML@0419b9d975 Update MCP info for latest
2013-03-08 20:16:35 -08:00
LexManos a91a50cd9d Deprecated Forge's ISidedInventroy, there is a vanilla solution. Added temporary config option to legacy furnace slot orientation. 2013-03-08 19:16:48 -08:00
LexManos 9f8a07f7d8 Fix typos. 2013-03-08 18:57:00 -08:00
LexManos 2488ad2826 Updated to 1.5 Pre-release
Updated FML:
MinecraftForge/FML@2d98835db8 Scala support! It's still primitive, I hope that people will like it. I do :)
MinecraftForge/FML@5bfaf7c170 Global object registry, also, support the new itemblockwithmetadata constructor
MinecraftForge/FML@80a40c03e6 Update to MCP 1.5 and minecraft 1.5.
MinecraftForge/FML@b3e854a15d Update for new MCP with srg reobf.
2013-03-08 18:48:52 -08:00
Christian 667fda257a Updated FML:
MinecraftForge/FML@e9ff699c2d Refresh the renderengine after modloading is complete. Should fix issues with out-of-place texture registration by mods.
MinecraftForge/FML@a723aa6860 Refresh copyright notices on everything
MinecraftForge/FML@c42a210140 Strip deprecated code
MinecraftForge/FML@6eeae8c49f Fix up state transition derp when the server crashes with an error- it shouldn't double-derp
MinecraftForge/FML@81c6421f84 Tweak license text- any osi licensed project can use the asm transformer code
2013-03-07 19:45:32 -05:00
Christian 88c7b12ba3 Clean up Access Transformer mapping data 2013-03-07 19:44:26 -05:00
LexManos e7f7c6417f Make release quit on compile error. 2013-03-06 20:45:40 -08:00
LexManos 2c07b18e1a Fix compile error, forget to flush to disc. 2013-03-06 19:26:29 -08:00
LexManos 6b5a086be3 Readd second render pass to TileEntities and Entities, patches were missed when merging in master branch. As note, CB can DIAF. 2013-03-06 19:18:26 -08:00
Christian e5913fb29f Add an Icon to the LiquidStack, for rendering the liquid in various ways 2013-03-06 20:54:24 -05:00
Christian b0e42ebcea Updated FML:
MinecraftForge/FML@abe4f73a9a FIX massive performance issue with FML. Thanks to @sfPlayer1 for finding this epic derp on my part!
2013-03-06 14:07:06 -05:00
Christian f5ba66068a let's do it right this time. Hmmm 2013-03-06 13:32:34 -05:00
Christian 101ae36f57 Call stitcher for non-existent textures as well. Probably allows
for generated textures. Hmmm
2013-03-06 10:29:25 -05:00
LexManos 5ff9983772 Updated FML:
MinecraftForge/FML@debbdc00be Capture Minecraft logs into FML logging
MinecraftForge/FML@74fffc6fdc Update next render to 40
2013-03-05 15:46:26 -08:00
LexManos c2b610d335 Fix ItemSeedFood respecting custom soils. 2013-03-05 15:44:31 -08:00
LexManos 43a1bf1425 Removed erroring imports and update build function to die on errors. 2013-03-04 20:57:42 -08:00
LexManos 20db933cee New world event for controlling potential entity spawnlists. For #430 2013-03-04 20:29:05 -08:00
LexManos ebdc10eb1d Add callback on TextureStitched to control texture loading. 2013-03-04 19:36:19 -08:00
LexManos 2e947b364c Add helper functions for deling with custom TextureStitched 2013-03-04 18:55:15 -08:00
LexManos 88e44f0761 Fix animation location for textures with domains 2013-03-04 18:54:21 -08:00
LexManos 432e08b5d6 Updated FML:
MinecraftForge/FML@aed2cc446a Force file name encoding to UTF-8, caused different zips on different systems.
2013-03-04 18:29:23 -08:00
LexManos 493cb50583 Fixed new python changes. 2013-03-04 17:21:15 -08:00
LexManos 16475908be Rework configuration, configs should now use Config.hasChanged to deterne if thehould call save(), also re-worked the saving to not use String.format as much. 2013-03-04 16:33:52 -08:00
LexManos 1860885fee Copy over some needed files for debugging. 2013-03-04 16:33:02 -08:00
Christian b644696668 Update submodule 2013-03-03 22:45:09 -05:00
LexManos 8daafa79b6 Change FML module to read-only connection. 2013-03-03 19:41:13 -08:00
LexManos 00c596f5a3 Update python scripts to reflect that FML is now a submodule. Delete updateasmdata as it's in /fml/ now. Build should work once again. 2013-03-03 19:30:23 -08:00
LexManos f7d6c2384c Remove window helper batch files. 2013-03-03 18:51:39 -08:00
LexManos 95ba5f4e3a Removed GNUWin32 files and uneeded files seince FML is now a submodule. 2013-03-03 18:36:38 -08:00
LexManos d1479d1a77 Added submodule changelog ganerator:
Updated FML:
MinecraftForge/FML@e74087ee43 Ignore again, testing submodule.
2013-03-03 14:09:48 -08:00
LexManos d6a86916eb Testing selective commit of submodule. 2013-03-03 12:03:46 -08:00
Christian 59b8e5e93c Add in simple texture management for mods using the stitcher. Scope with "{domain}:{texture}" to
get textures that are not at /textures/<item|block>/{texture}.png but /mods/{domain}/textures/<item|block>/{texture}.png
instead
2013-03-03 14:11:31 -05:00
Christian 72e013fb66 Fix up patches for FML, also, add in FML as a submodule rather than a zip 2013-03-03 14:05:34 -05:00
LexManos 9bd8f2697c Updated Forge to s13w09c 2013-03-02 03:08:27 -08:00
LexManos ed55969932 Not supposed to have debug stuff... 2013-02-28 03:59:57 -08:00
LexManos a04e7912b0 Sync up with FML, Will not run nativly as you need deobfusication_data.zip in your libs folder.
We have not setup the download for that yet, to make it yourself just zip joined.srg name it deobfusication_data.zip and put it in lib
2013-02-28 03:53:42 -08:00
Christian 082ee1a5ea Merge branch 'master' into snapshot15
Conflicts:
	fml-src-1.4.7-4.7.22.539-master.zip
	fml-src-1.4.7-4.7.35.556-master.zip
	fml-src-13w02b-4.99.16.541-snapshot15.zip
2013-02-27 23:19:11 -05:00
LexManos a766603b38 Merge commit '695b080197bd577cc34fe6dbc72b74f4a74b2d5c' into snapshot15
Testing cherry picking.
2013-02-27 00:57:35 -08:00
LexManos a520e128d7 Fix TESR culling for beacons, and implement a good enough measure for Chests. 2013-02-24 22:55:48 -08:00
LexManos a0bc6a3ed0 Bump version to 6.6.2, declaring Forge for MC 1.4.7 feature complete, as 1.5 is on the horizon, only bug fixes from this point on. Unless something major happens on Mojang's end. 2013-02-23 14:20:49 -08:00
LexManos 0f696c3739 Add water and lava to liquid dictionary by default, closes #419 2013-02-23 13:53:05 -08:00
LexManos f0ea9c9106 Store the glMultiTexCoord lightmap for later use with glDrawArrays closes #406 2013-02-23 13:50:12 -08:00
LexManos 3530e0d861 Added unload event for client worlds Closes #405 2013-02-23 13:41:43 -08:00
LexManos a7cdcc1f33 WorldGen*Trees shoud not respect custom soils. Closes #355 2013-02-23 13:07:00 -08:00
LexManos 0396ba2252 ItemStack sensitive versions of Item.getPotionEffect and Item.isPotionIngredient Closes #321 2013-02-23 12:02:36 -08:00
LexManos f703dbb230 clarify what the size is measured in for the dormant chunk cache. -.- 2013-02-23 11:51:16 -08:00
LexManos b754d6f301 Fix movement speed check, closes #420 2013-02-23 11:30:56 -08:00
LexManos d9ebd3fb53 Change usage of ketSet/get to entrySet in OreDictionary, closes #422 2013-02-23 11:22:01 -08:00
LexManos 3945819851 Fixed entity colision above max world height, and below 0. Closes #400 2013-02-23 10:59:44 -08:00
LexManos d50f150c56 Disable automatic equiti of pcke dup items for players, and fixed index issues in Player.setCurrentItemOrArmor. 2013-02-23 10:42:33 -08:00
LexManos feca047114 Update FML to 556:
b6d6f235 Fix sprite map issue.
1158aa46 Fix Language Registry, closes #FML 163
50ce6fb3 Option to disable renaming for srgnames.
2013-02-22 15:01:45 -08:00
LexManos 53aac39d90 Jenkins needs this script, *pokes Overmind* -.- 2013-02-15 05:11:55 -08:00
LexManos 307dd48229 Fix profiler issue with RenderGlobal patch. Closes #414 2013-02-15 04:56:55 -08:00
LexManos 183b3e6316 Fix EventTransformer throwing an NPE when transforming a class that doesn't exist. Closes #413 2013-02-15 04:53:56 -08:00
LexManos e11feec55f Fix fortune modifier always passed as 0 to idDropped closes #412 2013-02-15 04:49:33 -08:00
LexManos dcdd7c6c0e Fixes comparison for items in creative inventory, closes #411 2013-02-15 04:43:20 -08:00
LexManos ace8c29085 Added a hook into SlotArmor so Items can control if they are classified as a Armor type. Closes #408 2013-02-15 04:25:08 -08:00
LexManos 1c57f03722 Add item frame transformations to the EntityItem render helper Closes #407 2013-02-15 04:10:49 -08:00
LexManos 0a2e78d0c6 Made LiquidStack.isLiquidEqual(ItemStack) properly check the contained liquid, in addition to obvious id/meta closes #399 and closes #403 2013-02-15 04:00:46 -08:00
LexManos 6e302a1350 Kill .sh wrappers until someone writes more robust versions, closes #392 and closes #402 2013-02-15 03:38:46 -08:00
LexManos 57b77ce17e Actually use the line parameter in ServerChatEvent, closes #401 2013-02-15 03:22:59 -08:00
LexManos f1987359c9 Kill generated timestamp in config files, if you want to retreive this information, usethe file's modified time. Closes #404 2013-02-15 03:18:36 -08:00
Christian 6673844c54 Fix ServerBrand retriever- forge is now forge,fml!
Update FML: cd96718
cd96718 Fix HD mob skins, FINALLY!!! Stupid eyes are stupid.
2013-02-06 20:28:54 -05:00
Christian afea4fce1d Remove the single use interface ITickingArmor, and apply to Item directly. 2013-02-04 17:53:47 -05:00
Christian 40a3660c93 Fix possible null case for collision bounding box. 2013-02-04 13:58:55 -05:00
Christian 7e5a9076f0 Fix TESR rendering for double chests 2013-02-04 11:19:39 -05:00
Christian c5bb9fc78f Merge branch 'TESRculling' 2013-02-04 11:13:29 -05:00
Christian fbf9527be3 Add in "armor ticking"- implement the interface and the armor piece will tick.
Update FML:22dbe41
22dbe41 Fix up mistake that broke all modloading. Nice.
2013-02-04 11:07:53 -05:00
Christian 3a0634b5d1 Update FML:549b6fd
549b6fd IMC tweaks: runtimeMessages now work (thanks for all that testing for this much requested feature!) and IMCEvent will no longer rem
9fafdc1 More logging tweaks. You can probably configure individual mod log files if you wish now
f169f7c A log of logging cleanup. FML will now read logging.properties to configure logging channels a couple of times during startup. You
3ac891f Try and handle "death on startup" a bit cleaner
2dc0189 Deprecate the old GUI ticktype. They're dead and have been for some time.
dd98784 Tweak a method signature
1c9a510 Add parameters to FML install to enable/disable certian aspects. Applying patches, running transformer/merger, and decompiling serv
1bd6847 Fix up packages.csv ordering for easier diffing
2013-01-31 13:51:56 -05:00
Christian fb46c7a01f Fix small derp in TE 2013-01-31 13:46:29 -05:00
Christian 0f3bd780e1 Merge branch 'master' into TESRculling 2013-01-29 10:01:00 -05:00
LexManos 1dc9ef9b08 Fix initalization issue with the clamping threshold config value. And remove vanilla console spam related to it. 2013-01-29 03:11:59 -08:00
LexManos 4299aa22ff Change WorldServer.allPlayersSleeping to public, and remove the SideOnly annotation on EntityPlayer.getSleepTimer() Closes #393 2013-01-28 18:12:29 -08:00
LexManos 40392216b3 Change access of upper and lower chest fields of InventoryLargeChest to public. Closes #387 2013-01-28 18:08:38 -08:00
LexManos 6d6405973c Added catch to TileEntityChestRenderer for potential crash when modders do bad things -.- Closes #389 2013-01-28 18:05:38 -08:00
LexManos 704f879320 Rework canSilkHarvest hook to try and honor vanilla overrides, should close #391 2013-01-28 17:51:48 -08:00
LexManos fb87773c3a Added input getters for Ore recipies, and javadoc warning for modders, #390 2013-01-28 17:33:53 -08:00
LexManos c58433692c Add DimensionManager.unregisterProviderType for PR #388 2013-01-28 17:26:02 -08:00
LexManos fbe86287b4 Fixup a resource leak warning. 2013-01-28 17:06:45 -08:00
LexManos 89e695cee9 Forge Additions: Exposed ChunkCache.worldObj to public PR #383 2013-01-28 17:02:31 -08:00
LexManos 30db577389 Moved warning logic down, so that no more tickets are isues if the mod is over it's alotment. Fixes #378 2013-01-28 16:36:03 -08:00
Christian f06e0be5e5 We try and log a message if we detect a world leak: it's probably not infallible, but it should
help mod developers- if you see this when testing your mod with, say, mystcraft, you're probably
keeping a hold of an invalid handle to the World (either directly, or indirectly via Entity or TileEntity)
and you should look to refactor to wrap those handles in WeakReferences
2013-01-27 10:43:35 -05:00
Christian b386565881 Add in a mechanism for explicit subclassing of WeightedRandomChestItem to allow for
generational style chest content generation rather than static. Cleans up some old code nicely
2013-01-26 14:12:46 -05:00
Christian c483f68b26 Bump the revision number for the TESR and renderpass changes 2013-01-26 12:35:01 -05:00
Christian b164f9b21e Merge branch 'renderpass' of https://github.com/Chicken-Bones/MinecraftForge into TESRculling
Conflicts:
	patches/minecraft/net/minecraft/client/renderer/RenderGlobal.java.patch
	patches/minecraft/net/minecraft/entity/Entity.java.patch
	patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch
2013-01-26 12:12:21 -05:00
Christian 70ca0eeb74 Add in TESR culling, and a new TileEntity method to allow for differential sizing of the
TESR view culling vs the TE collision bounding box (the former defaults to the latter)
Checked into a branch because it's likely to break expanded TileEntities.
2013-01-26 11:11:20 -05:00
Christian 695b080197 Fix NPE causing issue with the cache. Derpy derp. 2013-01-26 10:24:48 -05:00
Christian ae7e328228 Fix a potential problem with "Entity already added" when using the dormant
chunk cache capability. The entities in the dormant chunk cache will get new
IDs prior to the cached chunk returning.
2013-01-25 21:21:20 -05:00
Christian f20ea649c6 Attempt to fix a possible NPE in the face of ChickenBones' hackery. ChickenBones. stop it! 2013-01-23 23:36:59 -05:00
Christian 78e192e28e Merge remote-tracking branch 'origin/master' into snapshot15 and fix patches
Conflicts:
	fml-src-1.4.7-4.7.22.539-master.zip
	fml-src-1.4.7-4.7.4.520-master.zip
	fml-src-13w02b-4.99.16.541-snapshot15.zip
	patches/minecraft/net/minecraft/client/renderer/entity/RenderItem.java.patch
	patches/minecraft/net/minecraft/entity/item/EntityItem.java.patch
	patches/minecraft/net/minecraft/entity/item/EntityMinecart.java.patch
	patches/minecraft/net/minecraft/entity/player/EntityPlayerMP.java.patch
	patches/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch
	patches/minecraft/net/minecraft/server/gui/GuiStatsComponent.java.patch
	patches/minecraft/net/minecraft/server/management/PlayerInstance.java.patch
	patches/minecraft/net/minecraft/server/management/ServerConfigurationManager.java.patch
	patches/minecraft/net/minecraft/world/World.java.patch
	patches/minecraft/net/minecraft/world/gen/feature/WorldGenDungeons.java.patch
	patches/minecraft/net/minecraft/world/gen/structure/ComponentMineshaftCorridor.java.patch
	patches/minecraft/net/minecraft/world/gen/structure/ComponentScatteredFeatureDesertPyramid.java.patch
2013-01-22 17:28:28 -05:00
Christian 94eb5cc29b Fix a couple of forge patches
Update FML: d075daf
d075daf Merge branch 'master' into snapshot15 Fix up compilation and patching errors
1bd6847 Fix up packages.csv ordering for easier diffing
dd832f2 Update for MCP7.30c - fixes redstone rendering issues
aebf6eb Add in a registry method to allow for alternative TileEntity names- they will be used to support loading maps containing the older definiti
8921cfe Remember to add the new patches!
cd67596 The "ServerStarting" event should now properly crash the server if it fails, so the client will properly exit. Also, added in a "pre-server
e1c6630 Javadoc cleanup
5ce4e31 Fix breaking change
a99c488 Merge branch 'patch-1' of https://github.com/bspkrs/FML into gh-updates
94282c5 Merge branch 'FMLLogFormatter' of https://github.com/donington/FML into gh-updates
7ad8529 Update MCP to MCP7.26a and refresh MCP names
15534ed Update address of the FML repository to the new location in all the files
aa822e3 Fix logical error in comment text
a14ab91 Update license text to make clear that FML is not a way to sidestep MCP licensing.
0165742 Fix mcp conf md5 signatures for the snapshot
26a5b31 FMLLogFormatter: dynamic log level name
2013-01-22 17:03:33 -05:00
Christian c77cb8ba53 Update FML:aebf6eb
aebf6eb Add in a registry method to allow for alternative TileEntity names- they will be used to support loading maps containing the older definiti
2013-01-22 13:53:46 -05:00
Chicken Bones 323517e88b Gave entities and tile entities access to the second render pass for translucency. 2013-01-23 03:07:00 +10:00
Christian a5325cf0a8 Change DimensionManager.getCurrentSaveRootDirectory() to try and work even for the new server about to start event
Update FML:8921cfe
8921cfe Remember to add the new patches!
cd67596 The "ServerStarting" event should now properly crash the server if it fails, so the client will properly exit. A
2013-01-22 10:07:41 -05:00
Christian c40c81924a Some javadoc fixes 2013-01-21 21:57:48 -05:00
Christian a1e57c068e Add in patch to change how playerinstance sends TE chunk updates. It should always send just the TEs
that changed now, and not "ALL" TEs. Also, added configuration value to change the 64 threshold to a
configurable number
2013-01-20 18:47:04 -05:00
Christian bdcaa0024a Update FML: 5ce4e31
5ce4e31 Fix breaking change
2013-01-20 18:46:28 -05:00
Christian 8f6963fabf Merge branch 'worldtype_customize' of https://github.com/ExtrabiomesXL/forge into gh-updates 2013-01-20 15:24:10 -05:00
Christian a004673567 Merge branch 'master' of https://github.com/CovertJaguar/MinecraftForge into gh-updates 2013-01-20 12:05:11 -05:00
Christian 5ea2d49915 Merge part of PR #375 related to ChunkEvent.Load for the client side 2013-01-20 12:03:42 -05:00
Christian 2e1ea20952 Update FML: a99c488
a99c488 Merge branch 'patch-1' of https://github.com/bspkrs/FML into gh-updates
94282c5 Merge branch 'FMLLogFormatter' of https://github.com/donington/FML into gh-updates
aa822e3 Fix logical error in comment text
26a5b31 FMLLogFormatter: dynamic log level name
2013-01-20 11:42:08 -05:00
Christian fe2d3244d7 Update licencing information to make clear that forge is allowed to redistribute and automatically
download parts of MCP, but this permission is not transitive to people distributing MinecraftForge
source independently of the MinecraftForge project.

Update MCP to 7.26a and FML: 7ad8529
7ad8529 Update MCP to MCP7.26a and refresh MCP names
15534ed Update address of the FML repository to the new location in all the files
a14ab91 Update license text to make clear that FML is not a way to sidestep MCP licensing.
2013-01-20 10:58:07 -05:00
CovertJaguar 78a3d1a656 Fixed render passes for EntityItems
Should be < instead of <=
2013-01-18 12:06:29 -08:00
LexManos 875709931c Bump major and minor version numbers to mark 1.5, it's gunna break everything. Should be a compileable 1.5 build. 2013-01-12 20:44:31 -08:00
LexManos 1155235d92 Fix check in getItem() to allow lowest item ID #361 2013-01-12 16:30:08 -08:00
LexManos 2c974a55ac Update FML:
New scripts for signing jars, and repackging source folders.
Fix LanguageRegistry loading files in UTF-8 format. loadLocalization should work for non-xml in all languages now (assumes UTF-8)
Fix incorrect end length calculation. Closes #161 Thanks BStramke!
2013-01-12 16:29:48 -08:00
LexManos 8bc11fbb27 Merge pull request #370 from CovertJaguar/snapshot15
MCL Update
2013-01-12 15:30:53 -08:00
CovertJaguar 46394174c5 MCL Update 2013-01-12 11:10:39 -08:00
LexManos ea57a46227 Removed some dead code, We don't bind custom tessellators 2013-01-12 05:24:16 -08:00
LexManos 4ea34fe6af First patches updae to 1.5, Many rendeirng related changes, most notibly removed Item/Block's getTextureFile() functions. 2013-01-12 05:12:10 -08:00
LexManos c229018c9e Updated FML and at config for 1.5 snapshot 2013-01-12 00:06:37 -08:00
LexManos 3fc95b71e2 Update patche for jad-style names. 2013-01-11 23:46:08 -08:00
LexManos 3a9c7b4532 Added event hooks to control to allow mod control of mob spawning. PR: #337
Deprecated LivingSpecialSpawnEvent in favor of new LivingSpawnEvent.SpecialSpawn
2013-01-01 22:20:30 -08:00
LexManos 3e484deafc Fixed incorrect lighting in some cases. Closes issue #349 2013-01-01 21:54:25 -08:00
LexManos c523592522 Added getter for Metadata smelting list, because, why not.. PR: #352 2013-01-01 21:53:41 -08:00
LexManos 170585960b Some small code cleanups. 2013-01-01 20:57:45 -08:00
LexManos c96b923e1c Fixed issue where ChunkPriderEvent.InitNoiseField used the wrong sizeY value. 2013-01-01 20:55:37 -08:00
LexManos 9fe0b4dfba Fix issue where dungeon loot table had wrong values. 2013-01-01 20:54:55 -08:00
Christian 53c579b8d2 Update FML:6f1b762
6f1b762 Move server stopped *after* the server has actually stopped. *sigh*
2012-12-31 11:21:36 -05:00
Christian 5e4315415d Update FML:d9bfb29
d9bfb29 Add in a "server stopped" event
2012-12-31 00:03:09 -05:00
Christian f594109b30 Attempt to resolve the entity concurrency issue, by simply deferring unload
to the next tick
2012-12-30 23:26:04 -05:00
Christian 937c84090f Update FML:6fc7bc4
6fc7bc4 Add in some classloader debugging information: use fml.debugClassLoading=true as a system property to track down prob
2012-12-30 22:56:04 -05:00
Christian e2dc263f12 Fix noisy exception logging 2012-12-30 21:30:48 -05:00
Christian e4a1693495 Fix a missed patch and cleaned up other patches
Rollback a method name change that breaks a lot of mods
Update FML: fb701cd
fb701cd Revert MCP name change for canConnectRedstone - it conflicts with a forge method of the same name and breaks 1
2012-12-29 00:29:15 -05:00
Christian 19347c5322 Update for MC 1.4.7
Update FML: f7cc50b
2012-12-28 12:06:56 -05:00
LexManos 0c5563fbf5 Attempt a fix for the new chunk compression changes. 2012-12-27 22:13:46 -08:00
Christian 2ad434fda4 Update FML:1a232cf
1a232cf Fix multiple GUI containers for ML containers. Sorry ultimatechest that this fix took so long, a bug report at
853f54b Log if there's a problem reading the class bytes
2012-12-27 23:19:12 -05:00
LexManos 46440588fe Fix mobs spawning on inverted slabs/stairs. 2012-12-27 13:50:13 -08:00
Scott Killen 16543840a4 Add ability to WorldTypes to display the 'Customize' button and react to it 2012-12-26 11:35:49 -05:00
LexManos 081ec4b70a Fixed order <.< you saw nothing. 2012-12-25 22:28:16 -08:00
LexManos a042453690 Use nanoTime instead of currentTimeMillis for potential performance increase. 2012-12-25 22:23:23 -08:00
LexManos 91c8ca5379 Fixed typo in dungeon loot 2012-12-25 22:03:11 -08:00
LexManos 1a54bcd3dc Fixed EntityMinecard missed patch, Issue #338 2012-12-25 22:02:57 -08:00
LexManos 263e919384 Fixed issue with Efficancy enchatment when connected to vanilla servers. 2012-12-25 22:02:30 -08:00
Christian da1679a061 Merge branch 'Uristqwerty-master' 2012-12-25 22:11:42 -05:00
Christian 5fef1d5e9b Merge branch 'master' of https://github.com/Uristqwerty/MinecraftForge into Uristqwerty-master 2012-12-25 22:11:26 -05:00
Christian 7553f98367 Protect deflation with a simple semaphore. Should close #336 2012-12-25 22:06:20 -05:00
LexManos 58dc621fb7 Update FML: Fix NPE in fingerprint loading, and pass expectged fingerprint to FMLFingerprintViolationEvent 2012-12-25 16:15:35 -08:00
Uristqwerty 09ab39a238 Force parent ListenerListInsts to rebuild.
Without this change, it is possible (and, in fact, nearly guaranteed) for lists to rebuild endlessly if a parent list is marked as needing a rebuild but never actually read. This change forces the parent list(s) to rebuild as well, resulting in a significant performance increase and smoother framerate due to greatly reduced GC activity.
2012-12-24 20:40:09 -05:00
Christian 81f0de81ea Update FML: 7e6456d
7e6456d Fix a message delivery issue in IMC
664ebda Some tweaks for signing and ID matching
2012-12-24 10:03:11 -05:00
LexManos 6834cf2649 Fixes a vanilla bug where the player view would dip when stepping between certain blocks
https://mojang.atlassian.net/browse/MC-1594
Issue #318, let me know if you notice any issue.
2012-12-24 01:55:37 -08:00
LexManos e34e3a44fe Fixed parameter ordering u.u 2012-12-24 01:39:08 -08:00
LexManos e78b825875 Re-write/Deprecated DungeonHooks loot tables, now uses ChestGenHooks like the rest of the world gen. Also fixes issue #330 by adding in enchanted books.
Should be API compatible.
2012-12-24 01:29:33 -08:00
LexManos dedc02fa22 Move chunk compression to the network thread in Packet 51 and 56
This will reduce the server load considerably by doing the chunk data compression in writePacketData, which will be run from the network thread.

The chunk compression can easily use 1/4th of the overall server thread CPU time if someone is exploring much, especially when moving quickly (e.g. with quantum leggings).

Player, this is how it's properly done.
2012-12-23 23:31:13 -08:00
LexManos 0562fd85b9 Explicitly check if useItem is not denied, allows for denying the item without denying the block 2012-12-23 23:15:53 -08:00
LexManos 1c225a8d0d Fix missed patch in EntityMinecart, #334 2012-12-23 23:04:11 -08:00
LexManos 878d230189 Delete unneeded patch. 2012-12-23 21:49:16 -08:00
Christian 3ee114c9b4 Some access transformations to allow mystcraft to work again. Closes #331 2012-12-23 15:32:25 -05:00
Christian ca881a8153 Fix Fireworks to always work in SMP 2012-12-22 07:09:21 -05:00
Christian 51c19dd5f1 Fix up enchantment at the enchanting table vs via a book. Adds in a method
that previously exists under a new name: canApplyAtEnchantingTable()
to determine enchantments that can apply at the enchanting table (a smaller
subset of all possible enchantments for an item, now). Also, add your
enchantments to the anvil book application list, if neccessary.
2012-12-21 15:44:41 -05:00
Christian ced432f31d Tweak packet56 to see if this resolves the apparent worldgen derpiness 2012-12-21 09:24:13 -05:00
Christian 3d5197ea33 Server side only item callback: allow a held item to decide if it wants to pass sneak-clicks through
to a block, or not. Defaults false- the same as the new vanilla behaviour (sneak clicks with an item
in hand don't activateBlock anymore).
2012-12-21 03:15:12 -05:00
Christian 708516e060 Move another patch up a bit - should actually close #329 2012-12-21 01:49:43 -05:00
Christian b82cb25eea Add IPlantable to itemseedfood. Potato and carrot support! 2012-12-20 21:40:36 -05:00
LexManos dd8893a65c Fixed cpw's derp in the PlayerInteractEvent logic. 2012-12-20 15:02:06 -08:00
LexManos 4cfffe784e Updated NetClientHandler for onConnectionClosed placement fix. 2012-12-20 15:00:35 -08:00
LexManos 662bb5f363 Update FML:
Fixed issue with users who don't have the JDK installed in there path
MCP will now output bfusicated files with windows reserved names to _name.class and FML will prioritize those names.
Fixed placement of onConnectionClosed callback
2012-12-20 15:00:16 -08:00
Christian c9d9fe8e3a Fix ItemInWorldManager so that itemUseFirst works, and the playerinteractevent works. Minor patching mis hit. Apologies. 2012-12-20 10:52:08 -05:00
Christian 71fc299ac7 OK. AT the right thing, and add in a call to always get the right thing. Clean up patch fuzz too. 2012-12-20 08:48:14 -05:00
Christian a085a9c95e Access Transform a couple of methods 2012-12-20 08:25:39 -05:00
LexManos 211800e390 Merge remote-tracking branch 'origin/master' 2012-12-19 13:42:47 -08:00
LexManos 09505c636c Fixe BiomeDecorator AT entry. 2012-12-19 13:42:22 -08:00
Christian aed532636a Drop the item in onBlockHarvested, not breakBlock 2012-12-18 22:17:02 -05:00
Christian aca35c7571 Fix up block drops for skulls and cocoa 2012-12-18 22:10:15 -05:00
Christian d8dda4c2fd And fix up the other equals 2012-12-18 18:12:22 -05:00
Christian c976aae00c Fix comparing ItemStack tags for equality 2012-12-18 18:02:41 -05:00
Christian f5e800d288 Update FML: 40e57a2
40e57a2 Update MCP to newer version Fix fingerprint fire
2012-12-18 17:08:29 -05:00
Christian 0b9727305e Fix accidentally removed not-deprecated methods.
Update FML: d604e44
d604e44 InterModComms now supports a runtime polling based model for inter-mod comms at runtime. Deprecate method that shouldn't be used. COPY it's content to your mod. Don't CALL it.
8b7778c Don't be as alarming about item overwrites.
2012-12-18 14:17:56 -05:00
Christian 18f77fb10f Fix binding the texture for multiple render passes. Thanks mdiyo! Closes #320 2012-12-18 13:32:48 -05:00
Christian de15192bb8 Allow RenderItem to be easily overridden for things that need to render entityitems. IronChest, BuildCraft, RP2, whatever... 2012-12-18 10:57:04 -05:00
LexManos d6c4f37eb5 Fixed items dieing improperly due to new EntityItem sync changes, also made items render offset when rendered in 3d. 2012-12-18 06:56:28 -08:00
Christian efee38095b Fix RenderItem so that forge textures load for it 2012-12-18 09:19:05 -05:00
LexManos 3d7bb9c472 Updated FML:
Fixes startclient/startserver

Added configuration file which allows modids to ignore ID validation checking. IT WILL CRASH YOUR GAME in 99.999% of cases.

Immibis is a whingy ass. And TinyTimRob too. Now STFU and GTFO. closes fml/#510 for ever.
2012-12-18 05:28:53 -08:00
LexManos 9833c5652c Removed all functions marked as deperacted for the new MC version 2012-12-18 05:28:09 -08:00
LexManos ce5479a166 Try and print error while signing jar 2012-12-18 00:21:24 -08:00
LexManos 9bab1ddaa1 Added jar signing to forge, we sign cpw/* and net/minecraftforge/* 2012-12-17 23:53:33 -08:00
LexManos a2f4a0d2dd Inital update to 1.4.6, Version bumped to 6.5 2012-12-17 22:33:28 -08:00
Christian 420e04f1b9 Update FML: e98c311
e98c311 Fix up handling null names. *sigh*
2012-12-17 10:54:14 -05:00
Christian ffbee734e7 Update FML: 293edb3
293edb3 Some tweaks to item identification. The GameRegistry methods are deprecated to encourage you to use the new named ones instead. These will force a name on the item/block, allowing for stronger matching t
9266ff3 Updated MCP download mirriors upon Searge's request.
31695d5 Fix var name messup
bfb3020 Update released eclipse project to link BouncyCastle
22a88ea Change ID management slightly. IDs are tracked by block type for itemblock items now. This means servers will need to update. Also, ordinal rearrangements within a mod will no longer trigger server disco
2012-12-16 23:07:49 -05:00
LexManos 2bdcc3a23a Remove erronious double call to PlayerDestroyItemEvent 2012-12-16 18:02:45 -08:00
LexManos be6667f733 Make PlaySoundAtEntityEvent fire for players as well 2012-12-16 18:02:11 -08:00
LexManos 8fe14a8b99 Update FML to fix a typo 2012-12-13 00:31:54 -08:00
LexManos d6d20503d3 Update FML: Fixed the eclipse workspace to reference BouncyCastle library. 2012-12-12 23:48:44 -08:00
LexManos a4c790c969 Update AT for repackage 2012-12-12 23:46:01 -08:00
LexManos ad42901b7e Update patches for repackage. 2012-12-12 23:45:35 -08:00
LexManos 45a3f771bd Updated python scripts for removal of common folder 2012-12-12 23:38:51 -08:00
LexManos 1daa45c7f4 Update FML:
Minecraft is now decompiled into sane package names.
Got rid of the src/common folder as the only folder that exists is src/mincraft, because the client and server codebase is merged.
ID Map generation/validation fixes
2012-12-12 23:31:17 -08:00
LexManos e7008ae750 Manual import fixes 2012-12-12 23:27:57 -08:00
LexManos c1f0302f9d Fixup workspace for BC replacement 2012-12-12 23:01:05 -08:00
LexManos 061ab81041 Automatically resolved imports. 2012-12-12 21:58:35 -08:00
LexManos 52e87dd165 Bump version to 6.4.2 to mark the merge of TerrainGen branch. 2012-12-12 18:34:16 -08:00
Christian 3ed793bce5 Merge branch 'terraingen' 2012-12-12 21:13:20 -05:00
LexManos ff30c11bb5 Derp, imported the repackaged names not old names. 2012-12-12 17:18:36 -08:00
LexManos 05be21b3f1 Update FML:
2f34290e: Fix possible escape leakage..
83deece6: Change ID management slightly. IDs are tracked by block type for ItemBlock items now. This means servers will need to update.

Also, ordinal rearrangements within a mod will no longer trigger server disconnection, though a warning will still be logged.
2012-12-12 17:06:02 -08:00
LexManos d7f1923d7d Update readme to reflect the fact that we now download MCP. 2012-12-12 14:28:36 -08:00
LexManos 910f9e852f Make BlockButton.sensible protected and non-final 2012-12-12 02:48:30 -08:00
LexManos 0433190b01 Expose BiomeDecorator fields for custom Biome information, Issue: #239 2012-12-12 02:42:13 -08:00
LexManos d4a5b7e3a5 Fix shouldRiderSit() to properly determine if rider is sitting. 2012-12-12 02:24:47 -08:00
LexManos 76d6bc3cfa Fixes crash when mods add TreeMaps to the Configuration map, thanks AtomicStryker, PR: #282 2012-12-12 02:20:46 -08:00
LexManos c68dfae100 Fix type in ForgeChunkManager.ticketCountAvaILableFor, thanks iChun PR: #285 2012-12-12 02:16:23 -08:00
LexManos 0e82a3952d Creative GUI will now remember what tab page you were on, thanks Matchlighter PR #290 2012-12-12 02:11:27 -08:00
LexManos dfd9844c13 Pistons now respect world height a little better, for PR #286, will review Rotation event later. 2012-12-12 01:58:24 -08:00
LexManos 599591e883 New TileEntity function to determine if the TE should be destroied when Block/Meta changes, For Issue #300 2012-12-12 01:55:12 -08:00
LexManos ee0763fb4a Add CloudRenderer for PR #304 2012-12-12 01:35:18 -08:00
LexManos 9381fd07be Add .DS_Store to the gitignore for mac users 2012-12-12 01:24:19 -08:00
LexManos c48a15357b Moved check if map cursor should 'spin' and which world a player respawns in to WorldProvider for PR #308 2012-12-12 01:22:43 -08:00
LexManos 17637de863 Made BlockButton.func_82535_o overrideable for issue #311 2012-12-12 01:05:18 -08:00
LexManos 33901fb968 Made GuiContainer.drawSlotInventory overrideable for issue #312 2012-12-12 01:03:00 -08:00
LexManos 9c8fb046be Fix ForgeDirection.ROTATION_MATRIX for issue #313 2012-12-12 01:02:24 -08:00
LexManos b73c85c82c Fix for FML Fixes eclipse workspace, now sets execution bits on astyle-osx, and mcp .sh files. Also now kills install if astyle is not found. 2012-12-11 21:40:03 -08:00
LexManos 03f1418924 Updated FML to 486:
02b54ca8: Add a modid on the mods list, should make it easier to do things like forge chunkloading config
70670f2f: Fix build eclipse extractor task
b9fa3fc9: Add in storage, detection and validation of the ItemID array between client and server
5e5d8206: Fixing id map generation - should validate correctly now
f9fc06a8: Remade python dist as 32-bit.
93d47a1c: Reenabled replacement of the eclipse folder.
2012-12-10 15:53:30 -08:00
LexManos 9ab56779f9 Fixed install --mcp-dir 2012-12-10 15:43:40 -08:00
LexManos f105e52a21 Fixed release -skipchangelog 2012-12-10 15:43:19 -08:00
LexManos 2761b5deab And finally, fix up the release install script to have a parameter to specity the MCP directory. 2012-12-09 18:58:01 -08:00
LexManos 5792c7fb76 Fix Forge install script to use python shipped with FML. 2012-12-09 18:44:43 -08:00
LexManos 56e4849c02 Push didn't get all of eclipse.... 2012-12-09 14:11:59 -08:00
LexManos 719db6eabc Cleaned up eclipse workspace and moved it to a zip file.
Setup will extract it if it doesn't already exist.
2012-12-09 14:09:11 -08:00
Christian 3909cdb3ec Fix RenderBlocks patch, touch branch 2012-12-07 16:43:15 -05:00
Scott Killen 768484d393 For @XCompWiz, added a hook to allow mods to dynamically change the color that water is rendered. 2012-12-07 16:43:15 -05:00
Scott Killen 079db5d854 Readded unchanged version 2012-12-07 16:43:15 -05:00
Scott Killen f747a97b85 Removed unchanged file 2012-12-07 16:43:15 -05:00
Scott Killen 69ac1fa3a5 Added terrain gen events
Added biome color events for @XCompWiz
2012-12-07 16:43:15 -05:00
Christian fa6769dbcf Fix release script for new forge job name. Add in skip changelog option for local builds 2012-12-07 16:42:32 -05:00
LexManos ece6628b50 Remove MCP from released src distro.. whops. 2012-12-07 11:25:19 -08:00
Christian 6bc367f005 Fix static method, closes #271
Don't spam the log if a mod requests a ticket beyond their maximum. A single message is fine.
2012-12-06 16:14:15 -05:00
Chicken Bones f1e3481c0a Add Chunk Watch and UnWatch events. 2012-12-06 09:11:20 -05:00
Abrar Syed 5cb03bc07d fix List configs 2012-12-06 09:09:34 -05:00
GuntherDW 021ec72f11 Fix typo in chunkmanager config 2012-12-06 09:31:06 +01:00
Christian 538755dad7 Tweak release.py script: HEAD==master in general
Update FML: 26a2ef5
26a2ef5 Add a modid on the mods list, should make it easier to do things like fo
b4e3490 Fix build eclipse extractor task
828341f Fix typo
7a8dae5 Try and make branch non-derpy
d3c0e1f Try defaulting branch differently
9c77d3f Remove old eclipse workspace and ship/extract as a zip file (use ant set
6371e9b Assume Forge is the parent directory when checking for AT configs.
516954e Name both zips the same format
1151d5c Last part of branch name only please
25f1dda Try and get a valid branch name on jenkins
39a146f Clean up build.xml script- support outputting a branched jar file
037dcae Small derp in install.py
01d6da3 Try marking python as binary.
8b26659 FML will now attempt to download MCP as part of the install process Now
42b3e6a Windows Python distrabution created using py2exe, thanks Fesh0r for the
e709ab8 Marked more spots in gui/items bitmask as being free.
2012-12-05 22:09:01 -05:00
LexManos 742e93caec Fix issue with DimensionManager.shouldLoadSpawn 2012-12-04 02:01:01 -08:00
LexManos 51159de108 Update python files to add support for specifying MCP directory and FML downloading MCP on the fly. 2012-12-03 18:15:38 -08:00
LexManos d124a56844 Update FML, now includes python, and will download MCP for you 2012-12-03 18:14:50 -08:00
LexManos 76ee9440a9 Add wget and unzip from GnuWin32 for use in the setup scripts. 2012-12-03 18:12:05 -08:00
Christian e3dfb1e3b7 Fix #289 2012-12-02 22:00:12 -05:00
Christian 784ad96194 Add in some additional ticket loading callbacks for ChickenBones. Closes #284
Add in a call to determine if there are possible chunktickets for a world. This should let
Mystcraft and other dynamic world generating mods check if they should immediately load
a world based on existing chunk tickets.
2012-12-02 00:56:53 -05:00
LexManos 0243df1c4a Fix issue where non-BlockContainer TEs would not be removed properly. 2012-11-30 20:22:50 -08:00
LexManos e65c0a3d88 Fix issue where worlds were potentially unloaded improperly on server shutdown. 2012-11-29 04:05:00 -08:00
LexManos fdb2933ceb Fix logic issue in ForgeChunkManager.ticketCountAvaliableFor(username) PR 2012-11-29 04:04:03 -08:00
LexManos 096989d4eb Small change to fix loading configs. 2012-11-27 22:43:23 -08:00
LexManos e5231f306b Added section of the EntityData NBT that will be persisted for players across respawning. 2012-11-27 16:52:08 -08:00
LexManos 4a748beb69 Fix potential NPE in EntityJoin handler and print warning. 2012-11-27 16:12:54 -08:00
LexManos cbe52abe42 Exposed some ChunkLoader information for PR #278 2012-11-27 15:28:59 -08:00
LexManos 7b6d65ce85 Small tweak to config to use Treemap 2012-11-27 14:53:43 -08:00
LexManos 820aa195bd Merge pull request #269 from XCompWiz/chunkcon
Adds a more intelligent chunk constructor
2012-11-27 14:53:12 -08:00
LexManos 530c19293b Fixed AIOOB issue with new sanity check in getBlock 2012-11-27 12:24:52 -08:00
LexManos 50426ea0fe Fix potential NPE in saving a property that didn't define a type. 2012-11-27 02:14:20 -08:00
LexManos 81b5db6f37 Added new functions to the Config class to allow for specification of comments when getting properties.
Added new getTerrainBlock whihc will limit the resuling ID to < 256, useful for world gen.
Calls to getBlock with IDs less then 256 will be assigned values above 256 {Thus freeing up terrain gen slots}
Made ConfigCategory implement Map<String, Propertery> should fix compatibility with most mods that broke two builds ago.
2012-11-27 02:06:29 -08:00
LexManos adc2d61feb Merge pull request #277 from Xhamolk/patch-1
OreDictionary addition: getOreID(ItemStack)
2012-11-27 00:28:29 -08:00
LexManos 88f9fa75c9 New nested configuration category support, for PR #258 2012-11-26 23:46:01 -08:00
LexManos 07a6e4ed5f Fixed random chest items not generating to there max stack sizes. 2012-11-26 20:25:35 -08:00
LexManos 4bf2dbaeb7 Fixed issue with abandoned chunks. 2012-11-26 20:06:23 -08:00
Xhamolk_ c0276a63f7 OreDictionary addition: getOreID(ItemStack)
Allow getting the oreID from a ItemStack, as an alternative from getOreID(String).

Now is easier to exchange items for their equivalencies through the OreDictionary.
2012-11-26 21:22:11 -06:00
cpw 26159e3ed9 Merge pull request #274 from iChun/patch-2
Add check that Entity saves to disk before saving entity to saved chunkloading data.
2012-11-24 11:14:21 -08:00
iChun 1e8c2a9acf Add check that Entity saves to disk before saving entity to saved chunkloading data.
Returning false to addEntityID prevents the entity from being saved (cred to LexManos)
Entities which do not save to disk but are chunkloaders causes errors the next time the world loads. This ought to fix it.
2012-11-24 16:27:17 +08:00
LexManos 9a1c12c492 Updated FML, proper free-sprite list for /gui/items.png, and fixed MCP version. 2012-11-21 16:07:20 -08:00
Zach Laster 17151718aa Fixes ordering for z & x loops (proper array increment order)
The ordering before would skip about in the ids and metadata arrays.  This runs linearly and should improve performance.
Done live on github
2012-11-21 14:56:17 +02:00
XCompWiz e8aaf81627 Fixes some weird formatting 2012-11-21 05:15:20 +02:00
XCompWiz 0eba8eeaab Adds a more intelligent chunk constructor
Adds a chunk constructor with full block id range, that's metadata
sensitive, has intelligent coord ordering, and which allows for
generation at greater heights than 127.
2012-11-21 05:05:51 +02:00
Christian 957afc4d62 Move server specific patch back to common from minecraft.
Update FML: 1f5c58b
1f5c58b Fix up MCP version
61e4db2 Merge joined.exc add update howto
5efc1eb Revert "Fix MC-2497 - derpy torch flames. Moved from forge. Everyone sho
3b3600d Modified merger to just consider all server classes as common. And moved
edcc5ca Forgot mcp.cfg
ca79dfe Updated to 1.4.5b
5945279 Fix python error
57bf643 Modified decompile so that we do not have to decompile the server, saves
d9d0a46 Cleaned up some tabs
2fac644 Change usage of ZipFile, fixes issues with Mac's default instation of py
2012-11-20 09:09:06 -05:00
LexManos 2e2751e5c0 Fix TE Issue 2012-11-19 20:05:16 -08:00
LexManos 5bc4d22bdd Updated to MC 1.4.5b 2012-11-19 16:03:52 -08:00
LexManos ee266cd325 Removed GnuWin32 programs, should no longer be needed as we've moved to python. 2012-11-19 13:31:11 -08:00
Christian f30daebbcb Update FML: 570592b
570592b Attempt to fix a possible comodification risk
2012-11-18 21:22:38 -05:00
Christian 913f3adade Stupid eclipse resetting preferences. Spaces, not tabs!!! 2012-11-18 19:33:15 -05:00
Christian ed252ad8ed Add in events when forcing and unforcing chunks. Hope this works for you ChickenBones! 2012-11-18 19:28:02 -05:00
Christian 7916c0dd77 Update FML: fde9414
fde9414 Change texturebinding to use the textureId directly rather than iconInde
2012-11-18 11:12:34 -05:00
LexManos 24f8d6be02 Fixed custom soil checks for NetherStalk and Reeds 2012-11-18 01:36:21 -08:00
LexManos 8bbe281de9 Fixed issue with default implementation of Beach plant type check 2012-11-18 01:35:48 -08:00
LexManos 6dafa3d0c2 Release script will now include the Minecraft version in the arcive names. 2012-11-17 22:58:34 -08:00
Christian 6a8a8a78c4 Update FML: f348496
f348496 Fix mod display list. Shouldn't be derpy anymore.
a5c31b5 Fix World patch- workaround no longer required and leftovers are bad.
2dc3f0d Cleaned up the AT config updater, should work for any setup of the MCP w
2012-11-18 00:17:21 -05:00
LexManos 5b324861a0 Fixed beds not working properly when respawning. 2012-11-17 17:52:37 -08:00
Christian ba65c08f19 Remove EntityFX patch - moved to FML. Patch SuspiciousClasses to add "forge"
Update FML: fa56701
fa56701 Fix MC-2497 - derpy torch flames. Moved from forge. Everyone should benefit.
96935bb Fix an NPE in TileEntity trying to generate a crash report. Make suspicious classes just return the obvious. Fix NPE for FML crash report on server. Clean up dead pa
2012-11-16 23:06:37 -05:00
Christian f13200e16a Fix the derpy torch flames properly. Closes MC-2497 properly ;) 2012-11-16 19:07:36 -05:00
Christian 7306c0c1f3 Update to MC 1.4.5
Update FML: 43d3042
43d3042 Clean up a patch
fec221f Update FML for MC 1.4.5
b0f0635 Fix for ModLoader static overrides not displaying.
23a2513 Fix up derpy file name handling: closes #127 Fix up duping childmods: cl
a6eaa2b Fix spelling issue.
c6a0741 FML setup should now download and verify all the minecraft files needed
5a1930e Small fix to some MCP metadata for pre2
418deba Update to MC 1.4.4
4ff2cff Fix bug when a modloader mod is run on a dedicated server and has a conn
2012-11-16 17:06:12 -05:00
Christian ca16b4b1bd Some liquid events. Non-API breaking. Add them at your leisure. This helps liquids know
what's happening to them. In case they're volatile or something ;)
2012-11-16 01:28:29 -05:00
Christian da00985e5f Another difference 2012-11-15 21:54:19 -05:00
Christian 5a72d49359 Fix fillLiquidContainer - return null, not the empty container for
previous API compatibility
2012-11-15 21:46:38 -05:00
LexManos f55329bb97 Merge remote-tracking branch 'origin/master' 2012-11-15 14:21:54 -08:00
LexManos a5b5c0f483 Update FML to fix ModLoader/addOverride functionality. 2012-11-15 14:20:22 -08:00
Christian 8a1f589db2 Merge branch 'KingLemming-master' 2012-11-15 06:44:43 -05:00
Christian 0f7811624b Change name to LiquidContainerRegistry. Fix up missing API. This better be it now! 2012-11-15 06:43:16 -05:00
King Lemming 213fb9bd1a Fixed oversights in liquid registry, added functionality for instant checks as requested by CJ.
Liquid list return is now secure.

Signed-off-by: King Lemming <[email protected]>
2012-11-15 02:43:35 -05:00
Christian a3a6f281e0 Merge branch 'KingLemming-master' 2012-11-14 21:23:47 -05:00
Christian 223aca8a28 Rename some liquid stuff for more sensible naming. Tweak API slightly. 2012-11-14 21:22:44 -05:00
King Lemming 73a2a5d78a Liquid Manager Rewrite - slightly more memory usage, loads more efficient at runtime.
Added default Lava and Water registrations to Liquid Manager.
Removed method which relied on flawed assumption that a given liquid only had a single type of container.

Signed-off-by: King Lemming <[email protected]>
2012-11-14 20:27:47 -05:00
Christian a759353afa Add in the basic IBlockLiquid interface. The actual block implementation
will follow.
2012-11-13 21:54:57 -05:00
Christian 5f2d1d1fc0 Add an ItemStack sensitive version of getIconForRenderPass, defers to
existing by default. Should allow NBT data to affect multipass icon rendering.
2012-11-13 16:01:57 -05:00
Christian 2fb5ea1008 Change getLeft to getRotation, around any axis. 2012-11-13 15:05:49 -05:00
Christian 1072a8f0ae Some new stuff on the liquid API for better RP2 interaction. Coming soon: blocks! 2012-11-13 14:27:31 -05:00
Christian 52ac3c1af8 Tweak liquidcontainer API for sidedness capability 2012-11-12 21:41:46 -05:00
LexManos 95ec601569 Fix breaking despite cancel in creative mode for PlayerInteractEvent OR #247 2012-11-12 17:34:26 -08:00
LexManos 2087b2b44e Allow for modders to decide whether or not players are positioned on ridingEntities similarly to pigs PR #244 2012-11-12 17:33:12 -08:00
LexManos 369f8ce38f Fix issue where players would spawn in the ground. 2012-11-12 17:29:14 -08:00
LexManos 5b82c5c20e Mods can use custom textures for Slot background overlay, instead of only items.png PR #245 and #246 2012-11-12 17:26:49 -08:00
LexManos 9803c9e83e Added saplings and leaves to the ore dict. PR: #242 2012-11-12 17:07:33 -08:00
LexManos 3c355f0129 Updated FML, Fixed spelling issues in logs, and file name issues. 2012-11-12 17:05:22 -08:00
Christian 58fc306bf2 As agreed, liquid API from BuildCraft has been migrated to minecraft forge. There will be cleanups to follow,
including sided handling and client rendering tweaks. Stay tuned!
Tweak forgedirection for a couple of naming constants
2012-11-10 21:27:08 -05:00
Christian 477e9bfc2b Add toLeft rotational data to ForgeDirection 2012-11-09 22:51:37 -05:00
LexManos ba55660dc8 New field in ForgeDirection to hold just the valid directions. And made getOrientation a bit more efficient. 2012-11-09 18:00:03 -08:00
LexManos 770585e731 Fix crops not droping seeds properly. 2012-11-09 16:21:41 -08:00
LexManos ba6c4dd7df Fix entity items rendering on the ground. 2012-11-09 16:21:23 -08:00
LexManos c8753aa104 Bumped version number for 1.4.4 2012-11-08 20:44:17 -08:00
LexManos e73cbd088f Update to 1.4.4 2012-11-08 20:19:12 -08:00
LexManos 955683349d Ore Dictionary Improvements, replaces vanilla recipes with OreDict recipes for some vanilla items. Thanks Covert. 2012-11-05 16:15:43 -08:00
LexManos 207843e279 Made Item constructor public, and made setTextureFile chainable, requires mods to recompile, but as this is for 1.4.3 i'm not concerned. 2012-11-04 15:42:04 -08:00
Christian b63009fd7d Merge branch 'mc143pre'
Update to minecraft 1.4.3 prerelease
2012-11-03 01:32:03 -04:00
LexManos 2f0dcebbf9 Readdaed teleporter sensitive versions of the teleport function
Added per-world list of custom teleporters, Modders, use World.Load to populate this list.
Changed the definition of our version schemes.
2012-11-02 22:16:32 -07:00
Christian 0f3b030a1d Temporary update for 1.4.3
Update FML: bd2123c
bd2123c Clean up some patch fuzz
c2a603c Update joined.exc file from latest conf
db12af4 Update to 1.4.3
2012-11-02 18:40:43 -04:00
Christian 25ea7e7023 Update FML: 8356fe9
8356fe9 FUUUUUU! Stupid ticking. STOP REGISTERING TICK HANDLERS IN YOUR CONSTRUC
6edce8b Patch a file handle leak in RegionFileCache handling when under memory p
ca2bbe0 Update MCP mapings again, yay bad syncs.
c8941a7 Updated MCP mapings.
5e20c03 StartServer is now useable in merged code base.
2012-11-02 14:48:00 -04:00
LexManos c19ae55885 Update FML: Updated MCP mapings, and fixed StartServer 2012-10-31 10:16:46 -07:00
Christian f6b3865454 Update FML: b19e882
b19e882 Remove some debug, closes #123
9d7d32a Fix up tick management outside of mod loading phases for ModLoader mods.
d512539 Negatively cache failed class lookups, should help with @SideOnly performance issues.
2012-10-30 21:57:30 -04:00
Christian 418a47976a This update fixes some world corrupting vanilla error handling, mostly caused by
mods doing something derpy. Hopefully, your world saves will thank me.
Note that if the mod does derp, it's data is lost. It's not FML or Minecraft Forge's
responsibility if "DirtChest 2000 Mk5" can't write their TileEntity method correctly
and you lose your 100000 diamonds.

Update FML: a3a93f3
a3a93f3 Fix some whitespace issues, handle possibly bugged entities as well
a7eb5dc Vanilla/mod bug fixes: CME on entity processing, TileEntity resetting chunk on save/load.
2012-10-30 09:27:34 -04:00
LexManos 64354382d4 Cleanup some debug in the script, and fix version number for the current build. 2012-10-28 23:42:41 -07:00
LexManos d7adac4508 Fix a vanilla bug related to certian seeds and stronholds. 2012-10-28 23:42:19 -07:00
LexManos f9ea207cdc Fix cast issue when mods attempt to make fake worlds. 2012-10-28 23:41:43 -07:00
LexManos 6c803ea1de Change logs should now be bundled with downloads, as well as avalible on files.minecraftforge.net 2012-10-28 22:04:47 -07:00
Christian 56013719e8 Update FML:b23081d
b23081d Support for ModLoader 1.4.2. Good job Risu!
66db4ec Add in an exclusion list tag for @Mod. The backend code isn't yet implemented, but shows the basic idea.
2012-10-29 00:52:18 -04:00
LexManos 25941fd58c Fix compile issue. 2012-10-28 15:37:11 -07:00
LexManos bcc8dcd30c Merge pull request #232 from CovertJaguar/patch-7
Added vanilla wood + dye to the Ore Dict
2012-10-28 07:45:48 -07:00
LexManos 820d61d56d Added Stonghold, Village, and Spawn biome management helpers for PR 207 2012-10-28 07:38:38 -07:00
CovertJaguar 9bb6726d31 Added vanilla wood + dye to the Ore Dict
Should help simplify interaction between mods that add similar items.
2012-10-28 07:24:01 -07:00
LexManos 31638a0697 New hook to allow for custom beacon support blocks. 2012-10-28 06:47:53 -07:00
LexManos f72f6ab7b0 Exposed functions for adding superflat presets. 2012-10-28 06:38:44 -07:00
LexManos 705509054a Added metadata sensitve experience to furnace recipies and added Item callback to determine experience gain. 2012-10-28 06:37:54 -07:00
LexManos 9aca08557d Fix issue where scroll bar would not render when switching tab pages. 2012-10-28 05:57:56 -07:00
LexManos 1a7e580f01 New hook to allow items to be on multiple creative tabs PR 176 2012-10-28 05:57:23 -07:00
LexManos d7de1e8be2 Remove some debug code 2012-10-28 05:42:55 -07:00
LexManos f6a7ea063b Changeable name tag render distance for PR: 174 2012-10-28 05:33:32 -07:00
LexManos 887b083782 EntityLiving.experianceValue private->public for Issue #225 2012-10-28 05:21:58 -07:00
MinecraftForge eb96aa9d04 Merge pull request #231 from ShadwDrgn/master
ServerChatEvent
2012-10-28 04:53:10 -07:00
ShadwDrgn 24cec145ca Add event to cancel or change chat messages sent from server 2012-10-28 07:50:57 -04:00
ShadwDrgn 77bd22d3c1 Add event to cancel or change chat messages sent from server 2012-10-28 07:31:53 -04:00
LexManos 5650ae7ee9 Added system to place all configs that use Forge's Configuration function into a single file on disc. Optional config to enable this. Blame MattaBase for this idea.. 2012-10-28 04:18:12 -07:00
LexManos dc7db59f74 Pickblock will new compare NBT data, should allow mods to refine there result better. 2012-10-28 04:15:53 -07:00
LexManos b52f397a6f Fix ItemSeed placement to take into account the IPlantable interface. 2012-10-27 00:56:13 -07:00
LexManos c689a982b5 Added a per-world MapStorage feature that provides a method to store data files associated with a specific world, as well as fixes the issue with villagers loosing there village. {Where villagers wouldn't go inside at night} 2012-10-26 22:37:41 -07:00
Christian efcda1a946 Fix the accessor and type on World.getPersistentChunksFor()
Update FML: 8bd98c3
8bd98c3 Fix a small problem with the new MCP container- it can cause NPEs. Nice.
34cc42d Fix up some javadoc complaints
2012-10-26 21:13:56 -04:00
cpw 40368aec68 Merge pull request #228 from pahimar/master
SlotCrafting fix for damageable container items
2012-10-26 08:59:28 -07:00
pahimar 322c79f022 Update patches/common/net/minecraft/src/SlotCrafting.java.patch 2012-10-26 12:26:16 -03:00
Christian ce90f7e7f6 MCP information is now included in Minecraft Forge. They deserve the credit :)
Update FML: 09eade4
09eade4 Update build - include MCP information in the source pack
9bfe7df MCP deserves lots of credit. So here it is.
2012-10-25 10:27:58 -04:00
Christian 2b3ddc31db Update FML: 8006b77
8006b77 Fix instantiation bug
7cc91cf Simple InterMod comms. Send a message using FMLInterModComms.sendMessage(). Receive messages through an @IMCCallback
24d7285 Update for MC 1.4.2
cedf3d5 Duplicate Mod display screen.
2012-10-24 22:15:41 -04:00
LexManos b8674bb327 Downgrade to FML 415, issue with new IMC system. 2012-10-24 15:17:26 -07:00
LexManos 0cb74abe8b Update to 1.4.2, obf stayed the same, so only small revision. 2012-10-24 13:55:04 -07:00
LexManos 6dac04b954 Update World patch to fix map provider issue. 2012-10-24 03:54:39 -07:00
Christian 8489ca051d Add an access transform for Block.setBlockBounds - should help a lot of code that uses this.
Update FML: d915f39
d915f39 Fix typo in access transformer
346691c Fix the merge for forge
6dadc1d Fix up references to minecraftDir in obf code
8a55f68 Update FML for Minecraft 1.4.1
5645fa5 First update to 1.4.1, patches need updating.
ff0f00f Add some null checks, and throw descriptive exception when SideTransformer prevents a class from loading.
2012-10-23 21:53:45 -04:00
LexManos 043f570ff9 Update to MC 1.4.1 and Forge 6.0.0 2012-10-23 16:04:58 -07:00
LexManos 717b80781b Fix color issues with Dyed Leather armor. 2012-10-23 05:24:36 -07:00
LexManos 5ca845f069 Fix up the setHandeled/setHandled for events, it is now a generalized setResult, the meaning of which is defined by each event. 2012-10-22 00:29:28 -07:00
LexManos ad51183584 Cleanup mirrored things in ShapedOreRecipe to address issue 208 and issue 210 2012-10-21 23:19:11 -07:00
LexManos a09ea82fc7 Remove deprecated code. 2012-10-21 23:18:09 -07:00
LexManos dc9b1d90bd Fix NPE issue when mods add null EntityFX's to be rendererd. 2012-10-21 22:59:57 -07:00
Christian 9e86399aae Update FML: 7a34246
7a34246 Ship a client only class so the merge works both sides.
2012-10-21 23:09:04 -04:00
Christian 4ee6852d4d Fix install.py so it can be installed properly from src distribution 2012-10-21 21:21:19 -04:00
Christian b32aedacce Update FML (entire change log since last by me): 62a6b52
62a6b52 Fix RenderRegistry render ID - now at 36 Fix SpriteMaps - they're running out fast! Switch to forge if you can! RenderBiped now has an armo
b845cde Fix up FML python script for forge
2c36dfb Update to MCP pre 3. Fixes some weirdnesses with explosions.
acd880d Merge branch '1.4'
e6f57e5 Update for MCP release
b1de0fc Remove fuzz from patches for INetworkManager change
ad44619 Fix for new names INetworkManager and ITexturePack. I also provide refactoring scripts for both, for your use...
3a94211 Add a script to ignore git complaining about the eclipse workspace changing - run when you first open the eclipse workspace
9386e23 Update gitignore - ignore the files that will change or be deleted
10b318c Add in "starter" image for eclipse workspace
995d5b7 Eclipse workspace fixup 2?
bbb12c8 Clean up eclipse workspace- part 1
b50058e Clean up a bit of patch fuzz
4a0bfa9 Fix CommonHandler for rename of the server thread class
4d1ec66 Update with RC2 MCP. Use the joined.exc file directly since MCP now provides it.
b52e3d0 Fix exception for CodecMus
a1011c9 Fix some compilation issues. Requires resolving the worldclient abstract method
0ebd4f3 Inital patch update to 1.4
89c68c4 Moved into EntityVillager
e4702cb Fix line ending detection during checkout.
6e64fd7 We don't need logging here...
014b3f4 remove useless -Server projects
7628c67 Updated the AT config and Marker config for 1.4 obf
54a322c Updae build to copy files that may decompile differently but are actually the same, and updated for 1.4 values.
aadf396 Update MCP Merge config.
81e1855 Pull in MCP's 1.4 conf files.
5686fd4 Fix error in merging of exec's
2012-10-21 20:56:56 -04:00
LexManos 1f1a7edebb Update release script for mcp changes, releases now build. 2012-10-21 10:39:05 -07:00
LexManos 2e4a43e875 Updated Forge version to 5.0.0, for 1.4 2012-10-21 10:27:07 -07:00
LexManos 158c2f1feb Updated World patch, there are a lot of new things happening int he constructor, xcomp should probably vet this. 2012-10-21 10:26:07 -07:00
LexManos 07a4a9f41f Teleporting has a new function (func_82448_a), made it so that you can supply your own teleporter to that function, and so it works with dimension movement factors. 2012-10-21 10:25:27 -07:00
LexManos a705a12cdf Removed Forge's TileEntity.getRenderDistance, now a vanilla feature: TileEntity.func_82115_m 2012-10-21 10:23:46 -07:00
LexManos 3f03cc8c87 BlockCrops is now the parent class of multiple types of crops, Wheat, Potatoes, and Carrots, updated getBlockDropped patch to reflect. 2012-10-21 10:22:56 -07:00
LexManos 067458bdc0 Patches removing forge spawn protection, now a vanilla feature. 2012-10-21 10:21:39 -07:00
LexManos 1ee857e779 Entities have a new function to determine explosion strength that they create, and implemented Item frame pickblock. 2012-10-21 10:20:39 -07:00
LexManos 6ffaa94994 BlockSnow now pretty much just passes harvestBlock to it's super. 2012-10-21 10:19:54 -07:00
LexManos c81f696cd7 Updated Render patches, Bipeds now have the ability to have helmets, of either blocks, or the new 'heads' 2012-10-21 10:19:17 -07:00
LexManos fd1f09a34e Patches that applied with little to no functional changes. 2012-10-21 10:16:55 -07:00
LexManos 01722c6c3c Forge spawn protection removed, now a vanilla feature. 2012-10-21 10:05:50 -07:00
LexManos 9eeda7b4db No longer needed, getRenderDistance removed because Vanilla has it now, TileEntity.func_82115_m 2012-10-21 10:05:02 -07:00
LexManos 305a1ef66b Moved to common where it should be 2012-10-21 10:02:23 -07:00
LexManos 6127c113b8 Remove final from 'villageCollectionObj' to allow for delayed setup of Map source objects. 2012-10-21 10:00:43 -07:00
LexManos 4a4166fe7e Update for new names in 1.4 2012-10-21 10:00:02 -07:00
LexManos bf14aefd28 Update Forge's AT for 1.4 names. 2012-10-21 05:46:23 -07:00
LexManos ae28513c98 Fix recompile call for 1.4 MCP change 2012-10-21 05:46:10 -07:00
LexManos ad1d1da435 FML Update for 1.4 2012-10-21 05:45:53 -07:00
LexManos 8ce75c4ab5 Bump version to 4.3, final for 1.3.2 2012-10-19 18:57:24 -07:00
LexManos 1d1251d92a Remove some test code. 2012-10-19 18:56:56 -07:00
LexManos 34ebfcd978 Added ability for mods to cleanly define and display new creative tabs. 2012-10-19 08:46:39 -07:00
Christian f3443d3e02 Fix classloading issue preventing JRockit from running forge 2012-10-19 09:30:31 -04:00
Christian 2687a67e73 Forge build change: the universal jar, if installed alongside a server jar file, can be executed to load forge. No server side merging required!
Update FML: 989ab3e
989ab3e Update build.xml - add a classpath to the manifest. This means the universal jar is now a server side launche
88f1dc9 Typos!
2012-10-18 21:31:39 -04:00
Christian c440c4b0c1 Update FML: 470a185
470a185 Try and avoid an NPE in crash reports
0029518 Fix logging problems- log death messages and re-route the server through FML logs properly.
fe7a832 Fix the test mod
a2bc30b Coremods can be specified via the command line: fml.coreMod.load=<listofcommaseparatedclasses> This will help with developing coremods
bae1f74 Fix classpath for server
887aa27 Add in the ability for a client to throw a custom exception that displays a custom gui instead of the default error message.
e17f267 Update FML internal classpath. Helpful for coremod devs
3b9972a Don't use File to separate the last element of the path. It's a URL, they're always separated by '/'
5c96afe Changed RelauchLibraryManager so that files with different paths on the same baseURL can be implemented in one ILibrarySet.
1bca393 FML as a whole is now subject to transformers.
27cf731 Bonus extra character. thanks randomitter!
94c84cd Merge pull request #116 from Vazkii/patch-1
c2d3195 Add Null check to FMLClientHandler.sendPacket
2012-10-18 20:17:23 -04:00
LexManos 30f74ac44c Make Item.createEntity only call when its specifically a EntityItem, not a subclass of it. 2012-10-18 16:55:35 -07:00
LexManos 192fb0f10e Dll files are binary as well. 2012-10-15 15:32:25 -07:00
LexManos f10073dc45 Ship forgeversion.properties with release zips. Same format as fmlversion.properties. 2012-10-15 15:32:12 -07:00
LexManos 006a27dcd6 New Block hook to determine if it can be destroied by the ender dragon, for PR 199 2012-10-14 20:17:07 -07:00
LexManos 91e88afdbe Allow hook into GuiSlot for background rendering for PR #203 2012-10-14 20:00:30 -07:00
LexManos 2a749bee2c Change the Crafting damage check to be the same as the usage damage check. (>= -> >) 2012-10-14 19:59:50 -07:00
LexManos 731107a865 Fill out the .gitattributes to help with line endings how they should be. 2012-10-14 19:59:07 -07:00
Christian 8d5b8a81fe Reorganize the forced chunks a bit- offload the cost of immutable map building to the mods, rather than the chunk tick 2012-10-14 12:30:33 -04:00
Christian b89467d101 Remove @SideOnly from removePotionEffect. Hi RichardG! 2012-10-12 14:01:16 +01:00
LexManos 5514bd39c9 Add some accessors to teh ChunkLoader tickets. 2012-10-11 18:27:51 -07:00
LexManos cd01c30ae2 Merge pull request #198 from iChun/patch-1
Fix not passing right render pass to Item class.
2012-10-07 18:10:58 -07:00
Christian 2c8517f4d7 Fix bounds checking on chunkcache. Should fix a bunch of rp2 and maybe other extended tile entity code 2012-10-07 00:28:42 -04:00
Christian 8e92472409 Use weak references to the worlds in our maps. WorldClient would otherwise
leak all over the show.
2012-10-06 21:32:41 -04:00
Christian 72c19f335b Expose RenderGlobal.field_72738_E (breakingBlocks) and fire OnBreak for items broken in itemUseFirst on the server. Both for Elo 2012-10-04 18:05:58 -04:00
Christian 641a7b033f Fix problem with spawning custom entities in hotloaded dimensions. 2012-10-04 17:35:22 -04:00
iChun 528a295401 Fix not passing right render pass to Item class. 2012-10-05 03:57:52 +08:00
Christian b82a462f64 Fix a problem with re-entering worlds too quickly- the worlds will now *always* save before the menu re-appears. 2012-10-04 00:07:59 -04:00
Christian c5f74a8ba0 Update forge to 4.2 2012-10-03 02:00:19 -04:00
Christian 518264eff9 Merge branch 'master' of git://github.com/Chicken-Bones/MinecraftForge into Chicken-Bones-master 2012-10-03 01:57:56 -04:00
Christian 0162519347 Remove dead WorldInfo patch. Tweak dimension code a bit for better naming, and use the new FML world loading facilities
Update FML: d0e7c9e
d0e7c9e Update patches *sigh*
f3e1cac Add in a savehandler strategy for reading and writing data to the world save. This service is only available to coremods via the WorldAccessConta
51fb513 Add in some bukkit supporting code. Most of this is unimplemented until the bukkit coremod is complete.
65c9fdd New stuff on the ModLoader! Risu has been busy. Closes #114
c1d4458 Mods can now declare a range of minecraft versions they will run against
2012-10-03 01:54:40 -04:00
Christian b7febbbff7 Merge branch 'XCompWiz-mystcraft'
Merge in mystcraft base edits for a base clean mystcraft. Adds in a lot of extra capabilities
2012-10-02 20:13:52 -04:00
XCompWiz a50abc514f Server player concurrency fix
Fixes an issue where the server can move a player while the player is
moving, process the player's last move (putting the player back where
they were before the teleport), and then complain about the player
moving too fast when the client catches up to it's new position.  Also
fixes this issue while riding an entity.  Only affects player
client/server movement sync.
2012-10-03 02:45:36 +03:00
XCompWiz e53595f1f5 Lighting Time fix
score_under's lighting fix that limits and fairly distributes the amount
of time spent on recalculating lighting
2012-10-03 02:42:40 +03:00
XCompWiz babc12d2b5 MapStorage Fix
Fixes setting and timing of map storage object to allow for the
WorldProvider to use it during initialization
Forces single instance of map storage object (per side)
Moves setting of spawn to after provider setup
2012-10-03 02:41:32 +03:00
XCompWiz bbc5673ad8 Adds world unloading and hotloading calls
Adds world unloaded message to MinecraftServer on save.
Adds world unloading calls to chunk provider/manager when all chunks are
unloaded.
Adds call in MinecraftServer getWorld to hotload world if it isn't
loaded.
2012-10-03 02:37:27 +03:00
XCompWiz 32ca2b4fb0 Improves DimensionManager
Adds handling for unloading and hotloading of worlds, fixes some typos,
allows for dimensions to be unregistered (allowing save specific
dimension registrations), general changes to match these features.
2012-10-03 02:34:50 +03:00
LexManos 154124acd8 Fix issue where mushrooms would not check the proper soil block. 2012-10-01 18:51:35 -07:00
LexManos eda74ffac2 Fix issue where light would not properly recalculate. 2012-10-01 18:51:11 -07:00
Chicken Bones 7208c2c059 Add some of the model subsystem to the server. The part that doesn't require openGL. This allows for systems that dual models as collision/selection boxes etc. 2012-10-01 11:10:09 +10:00
LexManos 92923a3521 Expanded DungeonHooks to allow for adding of custom DungeonLoot values directly, allowing for better control over the generated items. 2012-09-30 01:01:00 -07:00
LexManos 33a6ec9a70 Made PlayerEvent.BreakSpeed fire when a player cannot harvest the block. Issues #191 and #188 2012-09-30 00:48:22 -07:00
Christian 27d6841579 Update FML: ca1ca4f
ca1ca4f Fix maps supporting greater than byte() dimension sizing
15ee8bf Fix language registry additions, closes #113
a08b5b1 Merge pull request #112 from pahimar/master
8dac58f Added ability to query the Language Registry by key and language for specific localized text, as well as loading in localization text f
2012-09-29 00:35:26 -04:00
Christian b227d7ce73 Dormant chunk cache might actually work now, and not mix chunks across worlds 2012-09-28 17:04:26 -04:00
LexManos b41626cf78 Forgot comment, you see nothing... 2012-09-28 00:02:21 -07:00
LexManos d373632275 Fix vanilla bug where the player would load chunks outside its range that would be 'abandoned' and never unloaded. 2012-09-27 23:58:40 -07:00
LexManos 49f263eb63 Fix buckets, need to rethink for bukkit compatibility. 2012-09-27 23:56:39 -07:00
Christian fbae118a2f A few requested features of ForgeChunkManager. Mods can specify a
chunkloading config directly in the config file, including chunk
loading overrides if they wish (and the config allows them).
Also added "player" tied tickets that bind to the player and not the
mod's quota.
2012-09-27 23:38:27 -04:00
LexManos 520550dab9 Location aware version og Block.lightOpacity for PR #169 2012-09-26 22:12:47 -07:00
LexManos 6ec887b34f Missing updates from last commit 2012-09-26 22:12:01 -07:00
LexManos 0e5c0be23e Added preliminarty Player Interact event heavily based on the bukkit event. 2012-09-26 21:18:18 -07:00
LexManos a421e51805 Fix bug in last commit that caused block to not break. 2012-09-26 21:17:26 -07:00
LexManos 63aa706dcf Add PlayerEvent.HarvestCheck and PlayerEvent.BreakSpeed for dealing with things related to a player harvesting a block. 2012-09-26 17:54:15 -07:00
LexManos 44e3843edb Fix bug where breaking texture would not apply to top/bottom of beds. 2012-09-26 12:19:16 -07:00
Christian 5fb999fa22 Add in an "EntityEvent.EnteringChunk" event. Useful for your entity chunkloading stuff. 2012-09-26 08:52:40 -04:00
LexManos 1df9b144cd Merge remote-tracking branch 'origin/master' 2012-09-26 01:45:26 -07:00
LexManos 34ac4f5cec Support for no BOM. 2012-09-26 01:30:22 -07:00
Christian 60b260b40c Update FML: f083707
f083707 Extreme headless mode is back!
2012-09-25 23:04:15 -04:00
Christian 384f795d52 Some more tweaks to the chunkloading code. The world.load event fires slightly later- once the entity watcher is
set up, so entities can actually load into the server world. Also, tickets actually save and load properly
and null entities don't break the server
2012-09-25 19:12:10 -04:00
Christian 4dd3d2cfd7 Update FML: dd39ae5
dd7502a Fix parent child counts showing properly. Closes #107 thanks scott!
b36d447 It's useMetadata, not usesMetadata. thanks myrathi and psx. closes #110
efb1066 Fix random shuffling when manipulating biomes by using a LinkedHashSet to preserve iteration order. Closes #111
2012-09-25 19:10:15 -04:00
LexManos 5285e1d918 > != >= 2012-09-25 06:33:01 -07:00
LexManos 5d3371ab3b Fix Configuration.getItem to return pre-shifted values suitible to pass into Item constructors. 2012-09-25 05:04:56 -07:00
LexManos c20b71eb20 Fire off PlayerDestroyItemEvent for crafting contianer items that get damaged to much. PR #183 2012-09-24 22:44:42 -07:00
LexManos 27e4c3c3d5 Changed Configuration to use overloaded methods, and changed the order of arguments to be Category, Key, Value instead of Key, Category, Value to hopefully help cleanup some peopels code.
Added function to get a free Item id. Will only accept values that are not in the block space. Needs testing.
Marked all the old getOrCreate* functions as deprecated.
2012-09-24 22:33:56 -07:00
LexManos 1804f22182 Configuration will now attempt to detect the encoding of the file using the Byte Order Mark. 2012-09-24 20:56:52 -07:00
Christian 8c74d81103 Fix up some config file handling to be even more resilient. 2012-09-24 23:15:36 -04:00
Christian 93e7ac7b55 Support quoting in property and category names for almost all possible characters allowed 2012-09-24 23:15:22 -04:00
Christian 76f3b26aa3 Fix some errors if the config is unparseable. It should log an exception and carry on with defaults. 2012-09-24 23:03:31 -04:00
Christian a776afe1bf More modifications to the ticket callback handling system. There are up to two callbacks during world loading now. One to allow
selective preference for ticket types. The other to actually allow the mod to force chunks.
2012-09-24 22:07:39 -04:00
Christian 595d3e9e79 Some changes to the ForgeChunkManager.
Null modData is allowed now.
The entity id is actually properly persisted in the ticket now.
There is a new "orderedLoadingCallback" that allows you to provide a preferred ticket loading order in case of "excess tickets". Also, tickets
that are not in the returned list are now unregistered.
There is a way to resort the chunks in the forced chunklist on a ticket now.
Log the dormant cache configuration
2012-09-24 17:38:41 -04:00
Christian 021bbad2b5 Update FML: dd39ae5
dd39ae5 Try and fix the newline capture so consoles show on the server on windows again
b39f808 Readd ancient searge name so dan200 and computercraft can run again. REMOVE THAT CODE DAN.
2012-09-24 17:30:40 -04:00
Christian 0610af28cd Update FML: a2c059e
a2c059e Fix missing import. Thanks ichun :(
19316a0 Version file searching should work for directories too
fbc7a5c Fix bug causing NPE if non-whitelisted player joins an FML server without FML installed
e9cfd10 Merge pull request #103 from iChun/patch-2
1424883 Fixed ModTextureAnimation not updating and not binding to correct image.
2012-09-23 23:08:39 -04:00
Christian 0fd2b137ac Some more fixes for chunkloading code. Works very reliably now. 2012-09-23 23:08:38 -04:00
Christian 3022d556a8 Delete some debug code 2012-09-23 23:08:38 -04:00
Christian 56a87604f6 Simple chunk caching capability for the chunkloader. This will store "dormant" chunks in a
configurable cache, potentially saving the cost of reloading them from disk.
2012-09-23 23:08:38 -04:00
Christian 0b68cf93ff And a concurrentmodificationexception in the same code 2012-09-23 23:08:38 -04:00
Christian 0ac8d6ad3e Fix NPE in ForgeChunkManager 2012-09-23 23:08:38 -04:00
Christian 4c61f1d202 Remove @SideOnly flag for function now required on the server 2012-09-23 23:08:38 -04:00
Christian 9640c5dcf9 A lot of tweaks to the chunkloading for entity behaviour. Entities are now bound by a new
persistent id they *all* have, on the server side.
2012-09-23 23:08:38 -04:00
Christian c684360f51 Working cross dimensional implementation of chunkloading for Forge. 2012-09-23 23:08:38 -04:00
Christian d21e3ae218 Simple chunkloading implementation 2012-09-23 23:08:38 -04:00
LexManos a9e3a4dbb9 Fix patch errors in merge of last PR -.- 2012-09-23 16:53:20 -07:00
LexManos 0d0ba4b2d5 Merge pull request #181 from micdoodle8/patch-1
Fixed WorldProvider.setDimension() setting the wrong variable.
2012-09-23 16:33:36 -07:00
micdoodle8 d00f6f52bb Update patches/common/net/minecraft/src/WorldProvider.java.patch
Fixed WorldProvider.setDimension() setting the wrong variable.
2012-09-23 03:07:48 -03:00
LexManos b06829e26a Fix accedental doubling of shift, Fixes saplings/flowers planting a space above where they should 2012-09-21 05:35:46 -07:00
LexManos 28d2460611 New Plant API that allows for custom plants/soils. 2012-09-20 19:53:43 -07:00
LexManos c3f9fed484 Added new hooks for modifying the items generated in chests during world gen. 2012-09-20 18:45:33 -07:00
LexManos cf3bc6a9d9 Redirect a lot of functions through WorldProvider for Mystcraft, allowing them to be overriden by the provider. 2012-09-18 21:31:17 -07:00
LexManos 6b78512a48 Merge pull request #173 from CovertJaguar/patch-5
Fixed Entity Item render helper
2012-09-18 19:50:36 -07:00
LexManos 8c76914ef2 Merge pull request #175 from iChun/patch-2
Fix pick block key giving invalid spawn eggs
2012-09-18 19:47:15 -07:00
LexManos c2d53e7651 Added side sensitivity to standard EntityDiggingFX, added Block functions to override spawning of digging and breaking effects. 2012-09-18 19:23:36 -07:00
iChun cbf88adc98 Logic derp (again) 2012-09-18 22:55:11 +08:00
iChun 3188218a37 Logic derped 2012-09-18 22:53:28 +08:00
iChun 8940b13512 Fix pick block key giving invalid spawn eggs 2012-09-18 21:37:48 +08:00
LexManos de24eea885 Fix potential NPE in Custom item entity span code caused by item id misconfigurations. 2012-09-17 04:56:26 -07:00
LexManos 61c21218e2 Fix recursion issue with new special item entity code. 2012-09-17 04:40:46 -07:00
CovertJaguar eb897fa9a9 Fixed Entity Item render helper 2012-09-17 00:25:26 -07:00
Christian e1c2a20e98 Update FML: 6c746ec
6c746ec Tidy code
aacbfeb Change version.properties search slightly, allow access to found file from the preinit event
1513b36 Add in the capability to read an internal version as <modid>.version from a file in the zip call versi
35852a6 Fix up reversed assignment for version fallback
2012-09-16 21:49:54 -04:00
LexManos 8948a00d60 Readd reverted EntityLiving patch 2012-09-15 19:40:58 -07:00
LexManos 04c149fa11 Merge remote-tracking branch 'origin/master' 2012-09-15 19:39:54 -07:00
LexManos 62700fa7a8 96537dc - Fixup Item in hand rendering of textures > 16x
e88ddc5 - Make the exception print for headless servers if the Downloader cant initalize.
f24ff07 - Remove a bunch of warning about javadoc, not a real fix, but no more warning.
3420ea7 - Update MCP Mapings
87104f0 - Makes GetModSrc check the common folder when attempting to extract source files
640446b - Tie parent/child containers together again. Should close #96
2cf4917 - Village mating produces added villagers, and the egg should place added villagers too. Closes #97.
6394ee8 - Clean up stale references to the Player stored in the NetworkRegistry, closes #100
7299e05 - Merge pull request #99 from CovertJaguar/patch-1
c4bd040 - More readable init logs
2012-09-15 19:36:08 -07:00
LexManos bb2ac4c448 Package all of paulscode/ with the universal jar to help mac users who cant understand how to merge folders -.- 2012-09-12 14:58:46 -07:00
LexManos 12d4e39bdd Bump version to 4.1.2 to mark the end of todays changes. 2012-09-11 19:16:54 -07:00
LexManos a44181a192 Move spawn fuzz to WorldProvider/WorldType, useful for VoidWorld types. 2012-09-11 18:30:09 -07:00
LexManos af6b8820d4 Allow for respawning in different dimensions. 2012-09-11 18:28:55 -07:00
LexManos 72bba82150 Read/Write config files as UTF-8 instead of ANSII, should fix issue with Turkish people. 2012-09-11 18:00:51 -07:00
LexManos de47895e02 Fix potential issue with custom events where the constructor is not visible from the EventBus class, Should never arise but meh. 2012-09-11 17:49:21 -07:00
LexManos aeebb6e9f9 Add ability for Items to create custom Entities for themselves when added to the world, PR: #151 2012-09-11 17:35:53 -07:00
LexManos 96be8c4f19 Move Forge init message to MinecraftForge.initalize 2012-09-11 17:34:58 -07:00
LexManos 65ddfd49af Make EntityJoinWorldEvent Cancelable properly 2012-09-11 17:34:37 -07:00
LexManos 96c13d9049 Merge pull request #146 from dries007/Fly
Allow flight permissions to be player sensitive
2012-09-11 16:09:49 -07:00
LexManos 769f18ee61 Implemented isBlockFoliage for pull #141 2012-09-11 15:52:04 -07:00
LexManos 4524435e25 Fix a few patch fuzzes 2012-09-11 15:51:26 -07:00
LexManos 03d1e51764 New EntityItem related events
Fixed player death event in SMP
Added Player specific drops event
Added generic EntityJoinWorldEvent
2012-09-11 15:27:34 -07:00
LexManos da501613ac Clean up some javadoc warnings. 2012-09-11 13:11:17 -07:00
LexManos 848837bd5c EntityLiving variation of drawBlockDamageTexture to allow for Non-player viewports. 2012-09-11 12:46:40 -07:00
LexManos 8882388902 Fix FillBucketEvent to work with stacked buckets. New change in 1.3 2012-09-11 12:45:29 -07:00
Christian 2b9a80bfdd Update FML: 89b8236
89b8236 Fix onConnectionClosed not being called on the client side of a connection
2012-09-09 13:34:20 -04:00
Christian 66b60bc85e Remove all references to ModLoader 2012-09-09 10:02:21 -04:00
LexManos 03b3017e51 Bump version to 4.1.1 2012-09-08 21:47:14 -07:00
Christian 98e17b10b2 Update FML: 70f55c5
70f55c5 Add in exclusion list for IFMLLoadingPlugin.
1c1716d Remove debug cruft
d567f79 To properly align with packet9respawn, make packet1login's dimension an int as well
ecd4e46 Attempt to build some protocol negotiation, and fix packet1login so that the dimension is a short, matching packet9respawn
16fe495 Compatibility level is now passed from server to client - and the client tracks it. This means certain packet changes can be made without b
4f70d23 Fix dependency checking: you can depend on specific versions of FML
2012-09-08 21:17:05 -04:00
Christian 400cb07626 Update FML: 290a3c9
290a3c9 Merge pull request #94 from iChun/patch-1
9485dc5 Fix handleTinyPacket using short instead of int.
2012-09-07 11:37:56 -04:00
Christian 6b65fe9747 Update FML: e6abb69
e6abb69 Fix up tiny packet handler to actually work
e862052 Allow javax to be shipped by mods. Should allow some more modloader mods to work unaltered
4071ad1 Add in a little bit of protocol cleanup. Start work on allowing multiple protocol versions
6061964 Give a way to build the packet131mapdata packet correctly populated
b818769 Capture and leverage Packet131MapData
2012-09-06 23:04:55 -04:00
LexManos 437d83e9b3 Fix placing torches and the like on inverted woden slabs. 2012-09-05 22:06:32 -07:00
Christian c4852b02c3 Update FML: 12bc4ba
12bc4ba Make console logging pass through a single logging thread to avoid concurrency problems with launchers and stuff
8fccfa2 Overlooked chat message support *sigh*. Fixes wierd mods that communicate through custom chat messages rather than
a697d04 Rescan mod packages where there was a possible mod identified to try and make sure we load it. Fixes Matmos r16
2012-09-04 19:24:48 -04:00
Christian 793579f4f2 Update FML: 9d812f1
9d812f1 And handle the other way to globally register an entity
869cf78 Fix up mods trying to register entities outside of modloading. Now you'll get a big fat warning for doing such a de
186680c Fix CJB mod compatibilty for real. Gui container registration can now happen in the constructor. YUK!
5aed6d9 Fix compatibility with ModLoader dispenser hook. Fixes a bug with IDispenseHandler too - though it means that inter
3d7a665 Fix headless operation, hopefully
2012-09-03 22:25:58 -04:00
Christian 7bc8024ae3 Update FML: 10a7169
10a7169 Fix up trying to re-add stuff to the classpath when it's already there
0eb7180 Fix out of range entity id handling for ModLoader mods a bit more. Thanks Herobrine mod!
b1b4c61 Expose GuiMerchantButton
359cfb5 Log a big fat warning for the developer in the case the network version is not acceptable to the mod itself. (This can happen because of a bad range specifier for example)
2012-09-02 13:09:47 -04:00
Christian 7828ff9ef9 Update FML: 8656fd5
8656fd5 Also, make missing entity not blow things up
25a4dcb Fix entity tracker "update" packet not computing correctly. Should work now..
2012-08-31 17:32:20 -04:00
Christian 955904e6b2 Update FML: c90a853
c90a853 Fix up addRenderer to catch exceptions from the basemod, also, addrenderer now supplies a list of the default renderers from MC for editing and will note the
18069d8 Change download location for FML libraries to files.minecraftforge.net, add an encoding param to the javac command line to force utf 8
a40f4a7 Add in random jar/zip files to the classpath. UGH this is so fucking ugly it's not funny.
5b6460b Use a null socket and try to prefer the result of getLocalHost in the broadcast data.
2012-08-31 12:37:15 -04:00
dries kennes 15a3e76fc1 Allow flight,player sensitive 2012-08-30 20:16:20 +02:00
Christian 1a9f9185f4 Update FML: c0d1348
c0d1348 Add in an ItemRenderer null check so FML can run render adding mods
482c163 Inverted boolean logic. Grrr.
221d113 ModLoader mob spawns use packet 24- build a bypass system so that they can still use it
f19f426 Remove debug statements
2012-08-29 15:40:59 -04:00
Christian 4bf6b35ee7 Update FML: 9dd9b6e
9dd9b6e Fix keybindings not loading properly from gamesettings file after restart
2012-08-28 22:36:23 -04:00
LexManos 895365d9b9 Fix silk touch on Ender Chests. 2012-08-28 16:36:19 -07:00
LexManos 18f3d41a5b Merge pull request #142 from ShetiPhian/movecheck_override
Server mods can now use noClip to push players through solid blocks without is being an invalid move and resetting the players position. Useful for creating semi-solid blocks like quicksand.
2012-08-28 00:06:37 -07:00
LexManos 1a2ce02a7f Fix Issue #140: Custom items not properly having texture applied for partical effects. 2012-08-27 23:55:14 -07:00
Christian e50050a175 Update FML: acb0b21
acb0b21 Fix so we always send received packets to handlers. Renders 250 filtering useless unless i can figure a way to intercept
2012-08-27 23:43:13 -04:00
Christian 29e41f6096 Update FML: b17dd3c
b17dd3c Some tests
fa66ffa Fix trying to load the client side packet handler, when on the server, hopefully?
b106420 Fix up network negotiation - now it will disconnect with a nice error screen if there are missing mods on the client vs se
2012-08-26 22:27:12 -04:00
Christian 0cba5a5c4a Update FML: c971adb
c971adb Fix missing addCommand call: thanks "spawnwolf test command"
d6326de Fix a couple of modloader mods. Thanks!
483667c Some functionality fixes for @Instance injection.
8bef512 Versions now have two flavours: the @Mod(version) which is the "programmatic version" and is used for all version relationship calculatio
501009c Always for ML mods into "public" class accessibility - we don't call from the default package like ML does.
d3d4308 Add in a convenience method for getting a class instance based on existence of another Mod. Useful for soft dependencies.
2012-08-26 13:29:21 -04:00
ShetiPhian 050ca0bde9 Update patches/common/net/minecraft/src/NetServerHandler.java.patch
Update patches/common/net/minecraft/src/NetServerHandler.java.patch

Server mods can now use noClip to push players through solid blocks without is being an invalid move and resetting the players position.

Useful for creating semi-solid blocks like quicksand.
2012-08-26 06:14:51 -03:00
Christian 350583c7f0 Update FML: 2d9b88b
2d9b88b And more mod sorting fixes.
93d5934 Actually *use* the sorted mod list
2012-08-25 09:11:46 -04:00
LexManos 58fc45619f Fix FillBucketEvent to actually fire. 2012-08-25 00:30:32 -07:00
LexManos 8fc05c399a Fix call to createTileEntity on blocks that extend BlockContainer. 2012-08-24 14:06:02 -07:00
Christian 0ae277b13e Update FML: 180a279
180a279 Merge pull request #82 from Chicken-Bones/master
cf38461 The access transformer will now handle classes in packages.
2c85539 Reverse the meaning of state in fml.modStates system property and fmlModState.properties - it was very derpy before. Now: true is enabled, false is disabled, as you would expect
d651189 Actually fix the corrupt JSON problem
f6a8cd5 Fix isModLoaded for "disabled" mods, and the toposort as well
3bde961 A bit more information for dependency handling
6396bea Fix up handing corrupt mcmod.info
6bc6def Fix a problem with network ids
7328610 Fix up version handling properly. Hopefully, and the error screen.
9fcc452 Only active mods should have dependencies checked, and be sorted
26302a6 Fix oddity with Screen, print a version out in the sorted list!
2012-08-23 19:52:01 -04:00
Christian e46b3de1ed Update FML: 62dbfb3
62dbfb3 Fix metadata
2012-08-23 14:09:42 -04:00
Christian c3df53f222 Update FML: b91cbe9
b91cbe9 Fix up versioned dependencies so they work a lot better, also add in a missing mods screen
2012-08-23 13:53:46 -04:00
Christian 2da95d3f96 Update FML: 93b8ba9
93b8ba9 Fix missing serverSendPacket
23fdbbd Trading support for ModLoader - thanks Herblore!
d7a74d8 Close the jar, for cleanliness sake
58e6dd9 Fix authors - it'll read both "authors" and "authorList" from the json now
907cf2d More ML compatibility - fix up dragon mounts, thanks!
ee48a36 Fix up loading mods that are grandchildren of BaseMod
c6f362b Fix entity handling for ModLoader mods, thanks parachute mod!
2012-08-23 09:20:31 -04:00
LexManos 7b8914b24f Fix lighting issue for air related to 4096 fix. 2012-08-22 18:34:53 -07:00
LexManos 3a604ac0fa Merge remote-tracking branch 'origin/master' 2012-08-22 18:04:06 -07:00
LexManos 6f89cf54b8 Removed deprecated ISpawnHandler, that never worked in 1.3.2 so noone should be using it. See FML's replacement. 2012-08-22 18:03:10 -07:00
LexManos 0b1997a9e6 Made helper hooks for EntityLiving and EntityRenderer hooks for Optifine 2012-08-22 18:02:14 -07:00
Christian 25aef3543b Update FML: 6e01c59
6e01c59 Merge ChickenBones pull into FML - adds player trackers
a0cbd37 More precise error handling when an invalid class is present
12323e2 Fix textures not applying properly
789a4a3 Fix up entity spawning - hopefully they won't warp anymore.
a87d045 Add in a helper on the server start event for adding commands to the server.
82e9309 Move villager trading hook up a bit. thanks sengir.
8deaa37 Fix LAN to try hard to find a real network interface, not just localhost most of the time
b5363e3 Update build to not bother building client jar. Universal is everything now.
2012-08-22 18:13:11 -04:00
LexManos 0680e211fc Pickblock now replaces the currently selected item if it could not find a empty space. 2012-08-22 13:46:01 -07:00
LexManos a8191d0dae Merge pull request #135 from dvrabel/minecart-drag
Use original minecart drag co-efficients for regular carts.
2012-08-22 13:41:05 -07:00
Christian 8e1a4cd6e0 Update FML: 28a10ac
28a10ac Null protection for ticks() -- probably should uses EnumSet.noneOf() but you can also use null now to stop ticking. closes #77
c349d51 Automatic mod entity registration into the global entity list. This might break entity code out there, sorry, but this way for most entities you no longer need to manage the global mod entity stuff at all. just remove it. FML will take care of the rest (note, worlds won't load the old entities)
ef01745 Add in a utility function that *might* tell you the context you're running in on either client or server: FMLCommonHandler.getEffectiveSide
c97d6a6 Try and stop sendPacketToAllAround from being crashy
2062273 Mods can add mod specific crash information to the crash report now Forge needs to implement MinecraftForge.getCrashCallable
6e6436e Fix up dispenser handling, add in new params for the dispenser: breaks IDispenseHandler, sorry
38f4a22 Fix up MLProp handling for null info
3a8b047 GUIs working in FML for ML mods
52483ee Support gui opening for Shelf mod
dce1cbc Updated MCPMerger to annotate unique classes with there sides, and SideTransformer to null out any class that is loaded on the wrong side.
2012-08-22 10:51:11 -04:00
LexManos dd5543b90d Update FML to 304:
Client side only classes are properly annotated, and denied loading on server side
Added missing client side only ModLoader.getContainerGUI function
Guis work for FML mods now.
Fixed MLProp handeling of null info
Fix up dispenser handling, add in new params for the dispenser: breaks IDispenseHandler, sorry
2012-08-21 12:46:35 -07:00
David Vrabel 6ffe25eed6 Use original minecart drag co-efficients for regular carts.
Since the amount of speed lost is 1 - co-eff, rounding 0.997 to 0.99
makes a big difference to the distance a minecart will travel (less
than half of the distance in vanilla 1.25).
2012-08-21 00:46:09 +01:00
LexManos d5610afdff Updated onItemUseFirst call to include the new hit vector information, and updated readme. 2012-08-19 21:06:32 -07:00
LexManos d3300cabb0 Added missing server side onBlockStartBreak hook, fixes Sheers. 2012-08-19 20:43:32 -07:00
LexManos 3a726c6e68 Fixed Forge's 4096 block filler initalization. 2012-08-19 17:59:06 -07:00
LexManos f341fdfd61 Fix IndexOutOfBounds exception, Major derp. 2012-08-19 17:41:21 -07:00
Christian bea2d8599f Update FML: 46c563a
46c563a Expose more of the village construction parts for building village piece
1380c2e Allow access to the type "ComponentVillage"
71a3818 Documentation and registration for villager stuff
e3a343c Fix javadoc derp
195b1a0 Villager trading, manipulation and village enhancement. Still WIP but sh
69e66c3 Fix exception based logging to actually log the exception!
2012-08-19 11:35:22 -04:00
Christian 6a166944c6 Update FML:
885637c Fix up keyboard events for modloader
90a7c8f Pickup notification
2012-08-19 02:19:10 -04:00
LexManos 87e0fced25 Changed order in which EntityItemPickupEvent is called, it will no longer be called if the 'delay' on the item is still active. Also EntityItems that are in the world with invalid item stacks will now kill themselves. 2012-08-18 21:07:29 -07:00
LexManos 9d7a6bbb2e Merge pull request #129 from heldplayer/skyRenderer
Re: Adds a SkyProvider class that can handle the rendering of the sky
2012-08-18 18:02:09 -07:00
Christian ed34de1a76 Move and add a few AT for forge: rail and leaves stuff mostly
Update FML (reorg some AT for FML vs forge):
2171c0c Update fml_at with new transforms
924a6f9 Fix derp where client sided packet handler would be created on a dedi server env
ad4cffb Add in support for "dummy" keybindings- ones that are added to the list but never do anything so the mod can handle it all themselves.
cf77ffb Don't complain about minecraft source code being in "net.minecraft.src". Derp.
b2fdcd7 Fix ModLoader add XP Smelting
094ce2a Actually register client/server packetspecs as their correct sides! fixes #71
2012-08-18 20:25:08 -04:00
heldplayer 59c77d7ca4 Adds a SkyProvider class that can handle the rendering of the sky 2012-08-18 21:05:21 +02:00
LexManos 7f40671ad8 Fix MC packet bugs for remote servers that use blocks with ids > 256 2012-08-18 02:16:17 -07:00
LexManos a6d703edca Fixed bug in EntityMinecart that would cause them to fall through the ground at the bottom of slopes. 2012-08-17 23:50:25 -07:00
Christian 72c494923b Update FML:
e8cb2c1 Error if channel name is invalid - either too short, or too long
9c6c56c Add a connect and read timeout for downloading libraries. This should really stop the "waiting forever" at startup screen.
0d5affe GIANT FAT WARNINGS if you use any code in net.minecraft.src or any subpackage thereof. Get it out of there, now!
13f210f Fix up ML GUI ticking. Thanks sharose!
2012-08-17 17:07:10 -04:00
LexManos e30fef15d8 Update WorldProvider.path diff. 2012-08-17 13:32:38 -07:00
LexManos 21b4525643 Added timeout to MC's download of sound resouces. 2012-08-17 13:32:20 -07:00
LexManos 20e38dca99 Fix EntityItemPickupEvent 'pop' sound spamming. 2012-08-17 13:31:47 -07:00
LexManos 912072535d Fixed EntityEvent.CanUpdate 2012-08-17 13:31:04 -07:00
Christian 1b73a8da79 Update fml:
c61ad51 Organize ALL the imports
c0842b0 Expose the server in serverstart event
2851079 Fix up directory injection of log file locations
5197524 Refer to FMLLog, not FMLRelaunchLog
78efd1a Tidy up server launch - reflection not required anymore
eee0a99 Also, log what the directory discoverer finds for mcmod.info
10c96c3 And log the exception if it has a problem reading the jar file
07cc3fb Fix jar loader failing to inject any metadata at all if mcmod.info is not found.
e31f143 Change install.cmd to install.bat, why, cuz people are .... Updated readme to mention needing server and client.
2012-08-17 09:40:33 -04:00
Christian 4297a348db Update FML to include some ML compatibility fixes. Minimap should run, assuming he
recompiles against standard ML interfaces.
This updates to official MCP 7.2, so you'll need to rebuild your workspace (some
small but important patches to MCP went in)
2012-08-16 14:30:14 -04:00
LexManos e31b6c0be4 Allow white space in the property name. 2012-08-16 09:11:04 -07:00
Christian e4a9cf4993 Update FML, make the .sh scripts executable 2012-08-16 08:46:52 -04:00
LexManos 4682cc2753 Update FML to 285 2012-08-16 03:13:52 -07:00
LexManos db6ac47689 Merge pull request #121 from Draake/master-pr1
Added additional sound events to allow for low level information.
2012-08-15 16:03:01 -07:00
Draake bd78b40bcd Removed SoundSetListenerEvent implementation. 2012-08-15 14:46:35 -07:00
LexManos 7ad090b5f1 Whops 2012-08-15 04:38:10 -07:00
LexManos bed6c410b6 Fix potential index exception in ForgeDirection 2012-08-15 04:37:45 -07:00
LexManos fc430243d1 Rename Orientation to ForgeDirection {Damn MCP naming a class Direction already} 2012-08-15 04:28:09 -07:00
LexManos 035328496c Update FML again for mod screen blending fix. 2012-08-15 03:15:41 -07:00
LexManos 06aaa9e9a4 Add render distance property to TileEntity. 2012-08-15 02:18:23 -07:00
LexManos 4967683c9c Fix issue with default getContainerItemStack 2012-08-15 02:09:21 -07:00
LexManos d9423a4f25 New Command event. 2012-08-15 02:01:38 -07:00
LexManos 60a9655602 Seperated block placmenet logic in ItemBlock as immibis requested: https://github.com/MinecraftForge/MinecraftForge/pull/110 2012-08-15 01:48:34 -07:00
LexManos 57441b8678 Fix ItemBlock placement, should fix RP Deployers placing blocks 1 tile down. 2012-08-15 01:32:05 -07:00
LexManos e6b61cb33d Updated Orientation with new helper functionality. 2012-08-15 01:31:02 -07:00
LexManos 50e6b39a29 Updated FML, should fix the new included eclipse workspace. 2012-08-15 00:55:01 -07:00
LexManos 393852920c Fixed bug in DimensionManager that would cause Index error for custom dimensions, also made WorldProviders aware of what dimension they are. 2012-08-14 23:59:15 -07:00
LexManos 57dcfc5dd0 Updated patches to 1.3.2 2012-08-14 23:58:32 -07:00
LexManos 9aa5d69679 Cleaned up forge scripts, and updated AT config for 1.3.2, deleted any reference to server specific code. 2012-08-14 23:57:16 -07:00
LexManos 77fd7add11 Update FML to 278, MC 1.3.2 2012-08-14 23:55:24 -07:00
LexManos 41333e001f Cleanup repo, delete old code 2012-08-14 23:19:36 -07:00
LexManos 3b18bfae40 Readded patch to allow for use of custom teleporter for transfering dimensions. 2012-08-14 15:03:40 -07:00
LexManos 111c5021de Update FML with entity spawning fixes 2012-08-14 05:37:54 -07:00
LexManos c34a732133 Updated FML, should fix 'derp?' RuntimeError 2012-08-14 01:28:13 -07:00
LexManos de43520870 Fix PickBlock 'ghost item' bug when picking with a item selected. 2012-08-13 23:05:39 -07:00
LexManos 2a8a917fdd Update release script to create universal binary distro. 2012-08-13 22:28:23 -07:00
LexManos 75a0bf2c09 Update debug settings to use Client's internal MinecraftServer.main to debug dedi-server env. 2012-08-13 22:28:07 -07:00
LexManos de7c3b2cab Delete Forge server projects 2012-08-13 22:27:31 -07:00
LexManos 1d325c0325 Update FML, Tons of bug fixes and proper merging of client and server. 2012-08-13 22:27:10 -07:00
Draake ddd406bad3 Added additional sound events to allow manipulation of a sound source at its creation. 2012-08-13 18:36:55 -07:00
LexManos e762b58bbf Merge pull request #116 from bloodandiron/bonemeal-fix
Bonemeal handler fix
2012-08-13 13:15:25 -07:00
Jonathan Marini 66bd2868cb Fix bug where default bonemeal behavior wouldn't trigger. Only return if the event was canceled. 2012-08-13 15:42:19 -04:00
LexManos ede1e54c5e Update FML, new AT features, and error info. 2012-08-12 21:55:56 -07:00
LexManos 6f38691efc Update AT config to expose some block functions and a few extras. 2012-08-12 20:40:57 -07:00
LexManos 1c7d20ad36 Delete dead IGuiHandler 2012-08-12 20:40:35 -07:00
LexManos 0451ea7618 Updated FML 2012-08-12 20:40:26 -07:00
LexManos 83f7a57199 Fixed ItemRenderer not grabbing custom texture files properly for block items 2012-08-12 20:40:04 -07:00
LexManos bef0090af0 Should fix commands.py patching not working properly first run. 2012-08-12 14:32:01 -07:00
LexManos a024be74e6 Updated FML, Should fix a lot of installing issues for MCP.
Made patches error and not apply if the target file is not found.
Updated Event Transformer to add a default constructor...
Fixed 4096 setup code in MinecraftForge.initalize()
2012-08-12 05:14:32 -07:00
LexManos da426653a8 Fix issue in install script for users with spaces in there paths. 2012-08-11 16:15:03 -07:00
LexManos 6b4288d00f Updated FML, fixed custom tool hooks, and spawn protection/player reach hooks. 2012-08-11 14:45:48 -07:00
LexManos 97aae96754 Update FML, server should run now. Still issue with NPE with no mods installed. 2012-08-11 11:16:37 -07:00
LexManos ba55320462 Fixed Diemsnion API related NPEs, and updated FML to 231. 2012-08-11 03:08:09 -07:00
LexManos 55636eabab Updated FML, updated patches 2012-08-10 20:30:59 -07:00
LexManos f374723610 Update fml, impelemnted Diemsnion API stuff. 2012-08-10 18:15:10 -07:00
LexManos 3aa13d8640 Include Forge's AT config into redist zips. 2012-08-10 02:25:48 -07:00
LexManos acdcfd0a56 Added new pick block hook for blocks and entites to allow for better grained control of the result. 2012-08-10 02:09:11 -07:00
LexManos d14b1b4e1f Fix oreientation bug causing levers not being able to place. 2012-08-10 02:08:26 -07:00
LexManos 44e6fd90c9 Moved over Configuration 2012-08-10 00:31:39 -07:00
LexManos f36d410cc4 Update fml 2012-08-09 19:13:12 -07:00
LexManos 69e9c31aef Copy forge files over in install. 2012-08-09 18:48:20 -07:00
LexManos a759939e13 Delete conf, server compile, update fml, and fix install script. 2012-08-09 18:37:52 -07:00
LexManos f31b8a98a9 Cleaned up some more, fixed infinite loop with cancelable annotation, Client now compiles and enters world just fine. 2012-08-09 16:47:35 -07:00
LexManos ba9e3a251c Nope, unneeded patch 2012-08-09 03:11:40 -07:00
LexManos dae4a07c60 Updated Client side patches for the new Merged MCP workspace. 2012-08-09 03:06:41 -07:00
LexManos 1bd8cdcd3e Removed a lot of old files 2012-08-07 18:31:25 -07:00
LexManos 316bf8d448 Finished World and EntityMinecart patches. 2012-08-07 16:54:14 -07:00
LexManos 41f1a60f32 More conversions, added all the entity living events. 2012-08-07 01:24:06 -07:00
LexManos 4e91293271 More work, moved over packet stuff, need to change everything to use new NetworkMod system 2012-08-06 20:45:37 -07:00
LexManos 8db1584730 Moved some files. 2012-08-06 17:52:48 -07:00
LexManos e58129ddd2 A bulk of more patches converted, updated fml 2012-08-06 17:52:23 -07:00
LexManos 31a908b754 More patches converted.
Refactored some of the events to be a better hiarachy.
2012-08-06 15:07:53 -07:00
LexManos 80ad4be5b1 Some more patch migration before bed. 2012-08-06 03:54:57 -07:00
LexManos d286154997 More progress on converting patches from 1.2.5 2012-08-06 03:35:57 -07:00
LexManos 545b905f11 Implemeneted adding grass seeds, as well as IShearable for BlockTallGrass 2012-08-05 19:41:18 -07:00
LexManos cc74f7d7d0 Implemented BonemealEvent (IBonemealHandler replacement), and bonemeal making grass. 2012-08-05 19:15:13 -07:00
LexManos 2d7deacead Renamed MinecraftForge.eventBus to EVENT_BUS as it's constant. 2012-08-05 19:14:02 -07:00
LexManos bb0f84925e Moved in OreDictionary stuff to new system. IOreHandler is replaced by OreDictionary.OreRegisterEvent 2012-08-05 17:59:53 -07:00
LexManos bd93dd58d0 Missed a file 2012-08-05 03:23:38 -07:00
LexManos 1fb042621c First push of some small patches and introduction of basic events. As well as the first cases for Forge's Access Transformer 2012-08-05 03:20:07 -07:00
LexManos 5672b783da Moved paulscode to new client folder 2012-08-04 22:53:48 -07:00
LexManos 247ff9b737 Updated update_patches.py, and made first patch! 2012-08-04 22:50:54 -07:00
LexManos 0d8940899c Moved logo to new client folder
Added blank Access Transformer config for Forge
Implemented version storage
Added basic dummy FML mod container to remove the need for mod metadata file
Added beggining work on Forge event system
Updated and moved EnumHelper
2012-08-04 22:45:31 -07:00
LexManos b76adcea8c Update FML 2012-08-04 22:42:50 -07:00
LexManos b1a51f3bc1 Updated build.py 2012-08-04 22:42:17 -07:00
LexManos bc757191a5 Remove eclipse files from old eclipse projects 2012-08-04 22:41:31 -07:00
LexManos 188d40b89a Added merging fields/methods/param csv files. And updated FML to 197 2012-08-04 19:29:54 -07:00
LexManos 06bd2d9d44 Helper function grab all unique searge names that are shared client and server 2012-08-04 03:17:57 -07:00
LexManos d52d58525b Add newids to that list 2012-08-04 02:40:21 -07:00
LexManos cd4efe616f Add the direct copied files from MCP conf 2012-08-04 02:35:34 -07:00
LexManos 53cf27f632 Committing inital work on generating sanitized MCP conf data. 2012-08-04 02:33:46 -07:00
LexManos 72f1f3fb0d New Start.java which allows the user to login using a legit account for testing on servers. 2012-08-04 02:32:43 -07:00
LexManos f6010fd077 Dump old mcp config 2012-08-04 02:29:24 -07:00
LexManos e59bb6679e inital push of updated setup script and cleaned up forge.py 2012-08-04 00:55:17 -07:00
LexManos a4d6d7028d Added a better eclipse workspace for deving Forge 2012-08-04 00:53:35 -07:00
LexManos c2d851cf20 Get rid of all old patches 2012-08-04 00:00:31 -07:00
LexManos 25e422d583 Bumped version to 3.4.9, final commit for 1.2.5. 2012-08-03 16:56:32 -07:00
LexManos 6eb4353b95 Rebase 2012-08-01 17:41:34 -07:00
LexManos b9d3497b60 Merge pull request #114 from cpw/master
Line endings
2012-08-01 17:04:16 -07:00
Christian c21dca182c Normalize the repo 2012-08-01 21:21:29 -02:30
LexManos 3a0a329c77 Merge pull request #113 from someh4x0r/master
Fix BlockTrapDoor.disableValidation on server
2012-08-01 02:40:11 -07:00
Robert Ou 008972e448 Fix BlockTrapDoor.disableValidation on server 2012-08-01 16:36:27 +08:00
LexManos 9083be320b Should fix NPE on older ISoundHandlers EXA: http://minecraftforge.net/forum/index.php/topic,759.html 2012-07-10 17:02:13 -07:00
LexManos a628765419 Merge pull request #104 from cpw/master
Update to fml 176 - fixes a subtle tick bug
2012-07-09 21:36:57 -07:00
Christian dbfe9c020b Update fml with recent tick fix 2012-07-10 00:32:56 -04:00
LexManos 45f0c521a3 Merge pull request #102 from TrueBrain/EntityTracker
-Add: sync serverPos[XYZ] on spawning of entity
2012-07-09 16:03:10 -07:00
TrueBrain 9f6ed73b6c -Codechange: applied LexManos' request 2012-07-10 00:33:50 +02:00
TrueBrain f76827e253 -Fix: check for null where needed 2012-07-10 00:29:18 +02:00
LexManos d7ccc8619f Made WorldGenMinable metadata sensitive. 2012-07-09 13:43:39 -07:00
LexManos bf155beaad Fixed a improper rounding in EntityMinecart 2012-07-09 13:43:24 -07:00
TrueBrain 7dff7fd62d -Add: sync serverPos[XYZ] on spawning of entity
This fixes the issue that, up to 400 ticks from getting in range,
entities have a wrong offset (because server and client don't agree on
the position to calculate relative updates from)
2012-07-09 14:00:47 +02:00
LexManos 1012531538 Merge pull request #98 from cpw/master
Update to fml 175
2012-07-03 22:10:52 -07:00
Christian e934a57f6b Update fml to 175- fixes some weird ticking behaviours for ML mods, adds in new ticking behaviours for smart mods 2012-07-04 00:29:15 -04:00
LexManos a82498a083 Updated some remaining scripts to call there python versions. 2012-07-02 20:05:42 -07:00
LexManos b70f3820f0 Removed symlink files, shouldn't be in the repo. 2012-07-02 20:04:15 -07:00
LexManos eed01c4afc Moved licenses and credits into install folder. 2012-07-02 19:59:40 -07:00
LexManos 9e6c49d9d9 Fix furnaces not smelting the proper number of results after the first one. Damn you tahg, fix this! Keeps falling through my cracks. 2012-07-01 06:52:38 -07:00
LexManos 74d5cdcb9d Merge pull request #94 from cpw/hastileentitybugfix
Fix server check "blockHasTileEntity" used to determine if getDescriptionPacket
2012-06-29 14:02:34 -07:00
Christian 9100172867 Fix server check "blockHasTileEntity" used to determine if getDescriptionPacket
is sent for the block to be metadata sensitive. Thanks iChun!
2012-06-29 09:47:10 -04:00
LexManos dd5d3256d4 Merge pull request #93 from cpw/fixghost4096
Fix ghost players who appear if they don't have the 4096 fix installed
2012-06-28 12:45:01 -07:00
Christian 59a783e8b9 Fix ghost players who appear if they don't have the 4096 fix installed 2012-06-28 13:44:07 -04:00
LexManos 7f832b4504 Fix container creative to not add Blocks above 256 unless it's told to. 2012-06-27 17:20:25 -07:00
LexManos 0e6e8b87aa Merge pull request #91 from cpw/multiversefix
Fix world provider behaviour: WorldProvider.byDimension should always return a new instance- otherwise you can end up with worlds overwriting one another
2012-06-27 14:37:01 -07:00
Christian 43e4ed7872 Fix world provider behaviour: WorldProvider.byDimension should always return
a new instance- otherwise you can end up with worlds overwriting one another
2012-06-27 17:21:41 -04:00
LexManos f174cb3948 Merge remote-tracking branch 'origin/master' 2012-06-26 12:10:57 -07:00
LexManos 9efdca3aab Fixed isBlockReplaceable and placing ItemBlocks' 2012-06-26 12:10:42 -07:00
LexManos 84613d5a92 Fucking spelling nazis 2012-06-24 14:48:09 -07:00
LexManos 61e8b92a78 Updated FML to build 153 2012-06-22 18:49:30 -07:00
LexManos 62078cdd46 Fix bitmask bug related to 4096 in multi-block change. 2012-06-22 18:49:05 -07:00
LexManos 3d48b69d4f Added configuration option to disable the darkroom mechanic. For servers who wish to not risk destruction at one broken pipe. 2012-06-22 17:44:04 -07:00
LexManos f0f7e0e139 Add option to randomize potential spawn locations to have a more randomly dispersed spawn patern, useful for games like FTB vs. 2012-06-22 17:13:32 -07:00
LexManos 53fc30d29d Fix NPE related to server/client not having block ids synced properly. 2012-06-22 17:12:27 -07:00
LexManos caebbafabd FML 150, more tick related work. 2012-06-21 15:28:44 -07:00
LexManos e9c66f63fd Close inputstream 2012-06-21 06:11:17 -07:00
LexManos d7817aef39 More bugfixes related to portal generation. Should be all now. 2012-06-21 05:09:25 -07:00
LexManos 6547556280 Fix Vanilla bug where nether portals would not work above 127 2012-06-21 04:06:44 -07:00
LexManos 2d434dd84f Updated to FML 149, should fix all ticking issues with ModLoader mods 2012-06-21 04:06:15 -07:00
LexManos acf70e1047 Some 4096 I missed in custom renderers. 2012-06-21 04:05:50 -07:00
LexManos c74c5ba2d2 Updated to FML build #142, fixed FML compilation issue causing missing files when reobfing. 2012-06-20 02:24:11 -07:00
LexManos 969518c475 Updated release script to automatically inject version info into .info file. 2012-06-19 21:32:19 -07:00
LexManos 09762da617 Updated to FML 141, should fix ticking issues with certian mods, and crash issue with TropiCraft 2012-06-19 20:46:28 -07:00
LexManos 52647e0607 Bumped version number for new IEntityLiving interface. 2012-06-19 14:30:01 -07:00
LexManos af8d8ef4e6 Merge pull request #88 from pahimar/master
Fixes typo in the new EntityLivingHandler code
2012-06-19 13:51:16 -07:00
pahimar 8986458c82 Typo in the new EntityLivingHandler code 2012-06-19 10:44:29 -04:00
LexManos a7ea760097 Implemented enchanced EntityLiving events. Thanks Atomic for parts of it. 2012-06-18 20:16:48 -07:00
LexManos 86d7b7b7b8 Made setFailsafeFieldValue public for Rob 2012-06-18 20:15:33 -07:00
LexManos 8f861c24d8 Few more cases for 4096, thanks TrueBrain 2012-06-16 13:27:00 -07:00
LexManos 76bdabbfc4 Forgot Configuration in 4096 change. 2012-06-16 01:27:10 -07:00
LexManos c3bdc6e583 Initial 4096 fix based of mDiyo's work. 2012-06-15 21:10:37 -07:00
LexManos 7aaf3e98d2 Configurable kick message when you don't have forge. 2012-06-15 14:03:47 -07:00
LexManos 5a0f73436e Fixed bug in new entity sound hook. 2012-06-13 23:08:16 -07:00
LexManos 7d9084ddd9 Bumped version number to 3.3.7 for full release. 2012-06-13 21:51:40 -07:00
LexManos 7711505b92 New onChunkUnload event for TileEntities, for psxlover. 2012-06-13 21:19:08 -07:00
LexManos d56f0d0d55 Added new ISoundHandler.onPlaySoundAtEntity hook. Should be backwards compatible with any older ISoundHandler implementations. 2012-06-13 21:09:00 -07:00
LexManos 320d1360b8 Updated to FML #135 {Fixed ModList rendering issue, and incorrect arument on crafting hook} 2012-06-13 20:26:38 -07:00
LexManos 9bf3436be4 Fixed concurent modification exception in the ore registry. 2012-06-12 15:32:26 -07:00
LexManos 76bf4c602b Fix for potential concurancy modification exceptions 2012-06-11 15:36:15 -07:00
LexManos 1328c8c9e7 Fixed possible NPE when blocks havent fully initalized yet. 2012-06-11 14:42:30 -07:00
LexManos de85112535 Updated FML to 132, TextureFX fix, and bumped revision to 6. 2012-06-11 14:10:55 -07:00
LexManos 986c6722b6 Added bouncer functions for functions we removed. Makes MagicLauncher shut up about missing functions {not actually missing}, and therefor makes users stop thinking its a life or death error. 2012-06-10 01:28:34 -07:00
LexManos 32100207e8 New Ore Dictionary recipies. Allows for simpler Ore Dictionary integration with recipies. IOreHandler should no longer be used. 2012-06-09 23:18:58 -07:00
LexManos 5127e56029 Added hackish workaround for Tessellator.textureID to provent crashing while we wait for Optifine to update. 2012-06-09 17:16:46 -07:00
LexManos f22e065187 Updated to FML 130 2012-06-09 17:16:04 -07:00
LexManos 7ce7dbb374 Server side of ITextureProvider for Block/Item for compilations sake. 2012-06-06 10:08:35 -07:00
LexManos ced95c5cf3 Backwards compatibility fix for ITextureProvider 2012-06-06 09:08:08 -07:00
LexManos 1d99ff301d Updated FML to 121 to fix world tick issues. 2012-06-06 08:11:53 -07:00
LexManos 79b0f93488 Tag each Tessellator with it's associated texture ID. 2012-06-06 07:06:43 -07:00
LexManos 1d40d87f0c All Items and Blocks now implement ITextureProvider, and have a setTextureFile(String) function, to support cleaner code in Mods and in Forge. 2012-06-06 06:49:15 -07:00
LexManos fde49241fa Updated MCP mapings. Moved the bulk of custom logic from RenderItem to ForgeHooksClient. 2012-06-06 06:00:08 -07:00
LexManos 37191a3ac8 Merge remote-tracking branch 'origin/master' 2012-06-06 01:56:58 -07:00
LexManos 50f11c0baf Added kick info to disconnect event, updated to FML 120, keybindings, better image rendering in ModList ui. 2012-06-06 01:56:25 -07:00
LexManos 22a15ee85a Fix bug in cart functions where would always return null. 2012-06-05 00:22:20 -07:00
LexManos fc5132b583 Fixed some inverted logic causing tress to not gen correctly. 2012-06-03 11:40:12 -07:00
LexManos 2d3cd792c9 Update FML to 117 2012-06-03 01:02:17 -07:00
LexManos d0aefcbde9 Also, new hook in last commit for blocks to determine if they are able to be replaced by ores, for any mod that adds new world gen. Bumped revision up. 2012-06-03 00:33:46 -07:00
LexManos 3b523d57a9 New Hooks addedf for custom tree/leaves. And better interaction with trees growing and rerplacing certain blocks. Should allow for ExtraBiomes to behave nicer, and RedPower to make there blocks un-breakable by trees. 2012-06-03 00:32:37 -07:00
LexManos 63453137b3 Updated to FML 115, added Forge Logo to the client dist, and in-game ModInfo page. 2012-06-02 19:24:40 -07:00
LexManos 4642519f33 We now bundle CodexIBXM from PaulsCode. See http://paulscode.com http://www.paulscode.com/forum/index.php?topic=4.0 and the included license files for more info. 2012-06-02 19:19:32 -07:00
LexManos 0c0cb7d14d Updated to FML build 114 2012-06-02 17:00:52 -07:00
LexManos d27c3d7006 Included fmlversion.properties in the release zips. 2012-05-27 06:16:19 -07:00
LexManos cbab8188c2 Added FML ReadMe, Credits, and License to release zips 2012-05-27 05:47:58 -07:00
LexManos b65c1f01ec Updated to FML Build 95 2012-05-27 05:08:22 -07:00
LexManos c708b83425 Updated patches for FML, moved some extranious code to Forge classes instead of patches. 2012-05-27 04:27:15 -07:00
LexManos ce2a9f270a Updated MCP Mapings and patches. 2012-05-27 04:26:38 -07:00
LexManos cbf70c165a Added FML mod info file 2012-05-27 04:23:23 -07:00
LexManos 888e036c7d Cleaned up names for Minecraft Forge's text files so they dont clash with other mods. Fixed up the release script to include the license text, and executable permissions for install.sh. 2012-05-27 02:27:42 -07:00
LexManos d952a7be49 Added new source clean step to fix linux vs windows astyle issues. 2012-05-27 01:52:02 -07:00
LexManos 2898457766 Update FML to 92, this include full client side support, ModLoader nolonger needed. 2012-05-27 01:51:38 -07:00
LexManos eee81351d4 Bump version number for official release. 2012-05-26 20:28:24 -07:00
LexManos b27b365273 Fixed AudioMod compatibility with MultiMC style launchers. 2012-05-05 21:43:53 -07:00
LexManos fd2fa90bb2 Bit masked the entity ID to change the range from -127-127 to 0-255 2012-05-05 21:20:34 -07:00
LexManos 9f3ab1e601 Updated MCP Mapings 2012-05-02 11:12:45 -07:00
LexManos f32956fe58 Added forge identifier to statistics collection. 2012-05-02 10:37:52 -07:00
LexManos 7a60c7deb0 Fix for furnaces not smelting the final item in full stacks. 2012-05-01 17:21:55 -07:00
LexManos 0e97f1adaf Merge pull request #55 from CovertJaguar/patch-1
Added getters for version vars.
2012-04-29 03:09:41 -07:00
LexManos 7f01af7e1d Fixed Levers droping off the backs of stairs client side. 2012-04-29 03:09:28 -07:00
CovertJaguar 80a9bc9c6d static final vars are inlined during the compile step, making the version variables useless at runtime. 2012-04-29 00:26:29 -07:00
LexManos 7e06c9d13d New block hooks for creating custom beds. 2012-04-26 19:11:16 -07:00
LexManos 0d15f9b072 Merge pull request #54 from cpw/master
Update to fml 74- fix a problem with MLProp and primitives
2012-04-26 14:48:41 -07:00
Christian Weeks 54c3bfeae1 Update to FML 74: fixes an important issue with MLProp 2012-04-26 17:45:31 -04:00
LexManos 55ca4628a2 Bumped revision to 3 2012-04-25 01:38:39 -07:00
LexManos cbc9d73a9a Fixed Vinella mob spawning bug that prevented mobs from spawning on the top most chunk. Added new Block function to determine if a Mob can naturally spawn on the block. Add new hook to allow for special case handeling on natural entity spawn. 2012-04-25 01:37:06 -07:00
LexManos 33a3f67225 Fix for loading Minecart Entities in worlds that were last accessed before Forge was installed. 2012-04-23 19:14:08 -07:00
LexManos 4bdba7400b Moved MLMP compatibility functions to ModCompatibilityClient, and fixed issue where no vehicles would be spawned. 2012-04-23 10:17:14 -07:00
LexManos 796d4fea70 New ISoundHandler interface, useful for adding custom sounds and dealign with sound based events.
Includes basuic AudioMod compatibility.
2012-04-22 19:52:09 -07:00
LexManos d6b387f39b Fixed vinella bugs when trying to access chunk information with a y < 0 2012-04-20 12:07:45 -07:00
LexManos 3ea2e2582b Added MLMP hook invocation for vehicle spawn and opening GUI's to provide compatibility for clients that have both ModLoaderMP and forge installed. 2012-04-19 22:05:31 -07:00
LexManos cf9878d241 Updated to FML build #73 2012-04-19 22:04:10 -07:00
LexManos bb7eaf867f Exposed TileEntityData packet to TileEntities. And added helper sender function. 2012-04-19 15:41:11 -07:00
LexManos 722fe597b8 Added metadata sensitive Chunk constructor for Bioxx 2012-04-19 10:25:10 -07:00
LexManos 2f89f566cf Added MinecraftApplet.clas to the force output list because users cant understand the concept of only replacing files they are told to. And bumped version to 3.1.2 2012-04-18 21:18:18 -07:00
LexManos 86fd9e0b9c Implemented a 'small' packet system for those mods that need to send rapid, small data packets and who are concered about the overhead of the 250 payload packet. It uses packet 131. 2012-04-18 19:40:48 -07:00
LexManos f4fc50b3c5 Fixed shift-clicking issue with items that utilized the new ItemStack sensitive smelting system. 2012-04-18 19:34:08 -07:00
LexManos 23ffbb774f Added generic packet sending function to MinecraftForge class. 2012-04-18 19:17:04 -07:00
LexManos ddd4b6eb48 made the ID in PacketEntitySpawn unsigned. 2012-04-18 19:11:09 -07:00
LexManos 2eb63c07de Implemented RichardG's Paged Achivement list GUI modifications. 2012-04-17 11:46:07 -07:00
LexManos f13ed01532 Merge pull request #51 from ShetiPhian/patch-1
Edits enable use of EntityPlayer.canHarvestBlock (for PlayerAPI)
2012-04-17 10:26:55 -07:00
LexManos 75a40177ec Respawning in dimensions should now properly set the dimension ID for the new player instance. 2012-04-17 08:47:22 -07:00
LexManos e462ecb9b9 MAX_ENTITY_RADIUS Now works on the Y axis 2012-04-17 08:46:25 -07:00
ShetiPhian 8ffd66f27f Edits enable use of EntityPlayer.canHarvestBlock (for PlayerAPI) when the ToolClass has no rules for the block. 2012-04-16 23:01:40 -03:00
LexManos 36c7a35db9 Fix for vanilla crash for chunk generation with block ID's above 127. 2012-04-16 15:17:21 -07:00
LexManos 70623843cc Merge pull request #49 from cpw/master
Update to fml 68: fixes a ticking issue and soft vs hard dependencies
2012-04-15 08:36:06 -07:00
Christian Weeks 1a997219b4 Update fml to build 68: fixes a ticking issue and soft vs hard dependencies 2012-04-15 11:29:54 -04:00
LexManos cdf9361d07 Changed entity Forge spawning code works to be more in line with normal spawning:
(World, double, double double) constructor is nolonger called, normal (World) constructor, and setPositionAndRotation is called afterwords.
yaw, pitch, and yawHead is sent (if the entity isn't a EntityLiving yawHead isn't used)
The datawatcher data is also sent like a normal Entity.
2012-04-15 07:36:17 -07:00
LexManos bda94ce522 Added variable entity radius to World, to be used if a mod make really large entities. 2012-04-14 13:07:01 -07:00
LexManos ff54e8279a Fixed bug in BlockFire's old fields. 2012-04-14 13:06:04 -07:00
LexManos 9b66ce034a Fixed TileEntity bug that was causing Ghost tile entities. 2012-04-13 10:24:22 -07:00
LexManos 5898a6e18b Multi-pass item rendering now uese proper render pass number. 2012-04-13 09:54:01 -07:00
LexManos 8ac1fe53f6 Added slope velocity hook for Covert 2012-04-12 23:37:25 -07:00
LexManos d54857e4de Fixed bugs in the Dimension transfer code, Now displays proper join message, and respawning in dimensions other then 0 works. 2012-04-12 21:47:11 -07:00
LexManos 334a28d144 Try to fix jenkins build. 2012-04-12 00:45:52 -07:00
LexManos 849df24f80 Merge pull request #42 from CovertJaguar/patch-2
Added a function for checking block harvest levels.
2012-04-12 00:24:17 -07:00
CovertJaguar 1aa80ed1c6 Added a function for checking block harvest levels without having to resort to reflection. 2012-04-11 21:16:56 -07:00
LexManos 57b277c9d7 Added ItemStack sensitive burn time hook. 2012-04-10 01:04:00 -07:00
LexManos 0abb4e289a Added new Item function to allow for multiple rendering passes.
Fixed a vinella bug where item layters would not line up for EntityItem's
Added new IItemRendere helper flag for 3d block translations.
2012-04-10 00:43:21 -07:00
LexManos 20e264f9ee Rewrote IItemRenderer to be a more generic and expandable version, Breaks previous interfaces, but this should be the last time the interface changes.
Implemented the MapRender hook ChickenBones requested.
2012-04-09 22:57:52 -07:00
LexManos e400b2df4e Merge pull request #39 from cpw/master
Update to fml 62: adds in a couple of fixes
2012-04-09 21:04:04 -07:00
Christian Weeks e5911d9678 Update FML for new hooks: onPlayerLogout and onPlayerDimensionChanged 2012-04-09 10:45:53 -04:00
Christian Weeks 19ecdf1a87 Update fml to 62- provision a server console command and fix mod loading order 2012-04-08 10:14:50 -04:00
LexManos 83e5bac8f7 Merge pull request #36 from cpw/master
Update to fml 58, separate the "register" and "announce to mods" phases of login
2012-04-08 04:30:49 -07:00
Christian Weeks 2926a40715 FML 59: don't send a zero length register packet, add mod channels 2012-04-08 01:17:42 -04:00
Christian Weeks 96ff4ce8e3 Fix separated login/announce handler 2012-04-08 00:45:56 -04:00
LexManos bc3fa299ef Merge pull request #35 from cpw/master
Update to fml 57, fixes the fact FML wasn't calling it's onlogin hook
2012-04-07 21:12:26 -07:00
Christian Weeks 6f3c41cc6f Update to FML 57: fixes FML not calling it's login handler code 2012-04-07 22:49:29 -04:00
LexManos 6e31fc0185 Changed IGuiHandler's signature to be compatible with both sides. Took out ModLoaderMp reference in README. 2012-04-07 08:08:14 -07:00
LexManos ea41a93de3 Couple of output fixups and added script to be executed by Jenkins during the build. First test build. 2012-04-07 04:29:23 -07:00
LexManos 6e93f65ba1 Add server spawn protection config option as per someh4x0r's request. 2012-04-06 23:15:46 -07:00
LexManos 82ef183b5b Implemented ISaveEventHandler as ChickenBones's requested. 2012-04-06 23:02:43 -07:00
LexManos 9629d5b4f4 Updated patch for mapings 2012-04-06 23:02:00 -07:00
LexManos 421f31cce5 Added ChickenBones's request ITextureLoadHandler hook 2012-04-06 23:01:19 -07:00
LexManos 4e575f353f Rewrote the login code to delay full login untill forge fnishes negotiating network IDs. Should fix entities not having proper ID mapings. 2012-04-06 22:59:58 -07:00
LexManos f27a85c511 Merge pull request #33 from cpw/master
FML tweaks and a fix to release.py
2012-04-06 20:24:11 -07:00
Christian Weeks 1463e17385 Delete the old one too 2012-04-06 19:10:31 -04:00
Christian Weeks 8990b20a4d Add in recent fml with fixes 2012-04-06 19:01:39 -04:00
Christian Weeks b0d697c5bc Fix release script to import "inject_version" 2012-04-06 19:00:10 -04:00
Christian Weeks 1ad6fa9a73 Update patches for FML fix. 2012-04-06 12:02:15 -04:00
LexManos 35750681eb Finished up converting the source dist install scripts to python. Fixed a couple issues with the other scripts. 2012-04-06 07:16:14 -07:00
LexManos 9f327fd392 Updated repo scripts to python, allowing more flexability and less code duplication. 2012-04-06 06:10:11 -07:00
LexManos cf0ce3b086 Fixed update_patches.py to now delete old patch files that have no working src relation 2012-04-06 02:04:02 -07:00
LexManos b94ad38ec3 Deleted patches 2012-04-06 02:03:08 -07:00
LexManos ab927fce55 Initial patch update to FML and MC 1.2.5 2012-04-06 02:02:53 -07:00
LexManos 7c148ffa60 MCP Conf update for 1.2.5 2012-04-06 01:57:50 -07:00
LexManos f327dd5d7f Implemented a chat event handler system to allow for manipulating and handeling the various chat/command events. 2012-04-02 02:26:13 -07:00
LexManos 1a024e5656 Add IChunkLoadHandler.canEntityUpdate() function to allow entities to update while in custom loaded chunks. 2012-04-02 01:14:31 -07:00
LexManos 21afe2a2aa Some cleanups to update_patches, should run properly on any system now. 2012-04-02 01:09:00 -07:00
LexManos 719e436caa Fix some shadowing warnings. 2012-04-02 01:08:37 -07:00
LexManos 116e078db7 Fixed camelcasing in IConnectionHandler, ment to do during first upgrade. 2012-03-27 07:27:04 -07:00
LexManos 114c534db4 Changed update_patches script to use python for the bulk, Prevents making 1800 temporary useless files. 2012-03-27 07:26:39 -07:00
LexManos aa83f571c2 Fixed typo bug in MinecraftForge.getEntityTrackerInfo 2012-03-27 01:00:43 -07:00
LexManos 66b3c827cc Updated to MC: 1.2.4 MLMP: 1.2.4 v1
Removed all code that was marked as deprecated, IE: ICustomItemRenderer, and the functions in Configuration
2012-03-27 00:39:23 -07:00
LexManos 2230ca7c54 Reworked EntityPlayerMP.openGui to hopefully be more compatible with PlayerAPI 2012-03-26 04:27:34 -07:00
LexManos dd17ebd009 Cleanup the EffectRenderer patches, Allows custom food items to have the proper particals. Cleaned up special case class in favor of basic java generics. 2012-03-26 02:48:58 -07:00
LexManos 9153ded16f Added rider sit pull request. 2012-03-25 23:28:32 -07:00
LexManos 06eb9de126 Fixed a couple of bugs in the Configuration categories pull request.
Added helper functions to Property for standard int/boolean usage.
2012-03-25 23:26:01 -07:00
LexManos dec539f6f9 Merge pull request #22 from CovertJaguar/patch-5
Added the ability to define custom categories for config files.
2012-03-25 22:24:08 -07:00
LexManos 3f0232223d Updated MCP mapings 2012-03-25 22:02:13 -07:00
CovertJaguar 353885bc94 Removed createCategory() function and changed it to create categories as they are encountered. 2012-03-23 11:41:16 -07:00
CovertJaguar 1067a66c06 Added the ability to define custom categories for config files. 2012-03-23 09:43:48 -07:00
LexManos 65b3742636 Added MinecraftForge.isClient() function that returns true if you are in the Minecraft Client, (As defined as net.minecraft.client.Minecraft existing) false otherwise.
Fixed a typo on PacketEntitySpawn that caused speed to be assigned improperly.
A little code cleanup.
2012-03-22 19:46:36 -07:00
LexManos 96b698dc85 Implemented Pheenixm pull request allowing for more control over the camera. 2012-03-22 19:44:12 -07:00
LexManos 55780422ae Changed logic in Configuration to allow for extended block ID mods easier access to change that. Just use reflection to change Configuration.configBlocks to whatever length you want. 2012-03-22 19:39:15 -07:00
LexManos be1dd4934a Fixed NPE on CustomPayload packets with 0 data 2012-03-22 19:30:59 -07:00
LexManos 43ac9d6799 Fixed a few typos that CovertJaguire found in The Forge entity handeling code. And re-wrote the connection sequance so that clients get a list of mod ids before anything else. 2012-03-20 22:04:58 -07:00
LexManos 7c7b6d8f46 Readded the deprecated interface ICustomItemRenderer. Added method to enforce deprecation cross Minecraft versions. 2012-03-20 06:43:05 -07:00
LexManos 5d057ea49a Bumped version number to 1.4.1 2012-03-19 22:36:40 -07:00
LexManos 952fb54a44 Merge pull request #15 from newthead/master
Improved Custom Item Render Interface
2012-03-19 22:19:41 -07:00
LexManos 93fa20952e Merge pull request #16 from CovertJaguar/patch-3
Fix for network code.
2012-03-19 21:21:14 -07:00
LexManos 5a0df1f17f Fixed dyes showing twice in creative list 2012-03-19 21:20:08 -07:00
newthead bd49c3dcdb Reverted vanilla texture binding to an explicit if() statement based on item ID 2012-03-19 11:52:24 -07:00
newthead be07279984 Changed render hook checks to all use ItemStack instead of itemID 2012-03-19 11:37:51 -07:00
LexManos 34ea120258 Fixed tile entities not properly being removed for blocks that do not extend BlockContainer, or override BlockContainer.onBlockRemoval 2012-03-19 10:30:21 -07:00
CovertJaguar 6a1cdc8e0c Fix for network code. 2012-03-19 08:09:00 -07:00
LexManos ff37b70e03 Fixed a class to a deprecated method to fix tool effectiveness. 2012-03-18 23:38:03 -07:00
LexManos 29a65efd77 Fixed excessive need for user interaction in the install script. 2012-03-18 23:37:32 -07:00
newthead 0597c30ac2 Merged item rendering interfaces into a single IItemRenderer 2012-03-18 10:49:23 -07:00
LexManos e883645266 Fixed IOException not found error in CovertJaguires pull request. Updated scripts so that build should now be fixed 2012-03-17 19:54:40 -07:00
LexManos e3359fdbd3 Reworked the workspace scripts so the build should fail on compile errors. This build should fail as a test. 2012-03-17 19:49:00 -07:00
newthead e2dc4d595e Modified patches to use new item render hooks 2012-03-17 11:48:54 -07:00
newthead 4cf001c644 Updated render hooks and registration to use the IItemRenderer interface 2012-03-17 11:46:15 -07:00
newthead 4366929c9b Merged item rendering interfaces into a single IItemRenderer 2012-03-17 11:21:08 -07:00
LexManos 10ee3b9e92 Merge pull request #14 from CovertJaguar/patch-2
Added throws clause to ISpawnHandler functions...
2012-03-17 01:09:33 -07:00
LexManos 230a4188f8 Fixed onTakenFromCrafting hooks to be called once per stack taken. Sadly due to how shift-click is handled, the passed in item stack is not garenteed to be the stack that the result was added to. 2012-03-17 01:08:53 -07:00
newthead 2e24491707 Added additional flag for rendering entity item bobbing 2012-03-17 00:17:57 -07:00
newthead 8e92edb4b7 Cleanup/fix item render hooks 2012-03-16 23:57:59 -07:00
newthead d7cbbfb3d2 Added render code for inventory items and entity items. 2012-03-16 21:28:08 -07:00
newthead 391fbbd42b Added remaining item render hooks, and fixed a static method access 2012-03-16 21:27:05 -07:00
newthead 7efd97399f Clarified render option for inventory items 2012-03-15 23:47:58 -07:00
newthead dc0fc67412 Added hook for rendering equipped items 2012-03-15 23:47:28 -07:00
newthead 2524cf273b Added new item render interfaces to Forge client 2012-03-15 21:26:09 -07:00
CovertJaguar a3345c6d57 Added throws clause to ISpawnHandler functions to keep the functions consistent with similar functions and increase ease of use. Exceptions are already being caught everywhere these functions are called, so no further changes required. 2012-03-15 03:34:42 -07:00
LexManos c0bf315876 Made BlockStairs, BlockFarmland, and BlockStep have proper sided-solidity. Can now place torches on any solid side of those blocks. 2012-03-14 16:50:43 -07:00
LexManos dda4d3c93c Proper fix for SDK's invalid bit shifts of parameters for chunk population 2012-03-14 16:49:53 -07:00
LexManos ba285c455c Fixed type on patch conversion messing up tile entities 2012-03-14 16:49:02 -07:00
LexManos 29556e6170 Fixed sides of grass not getting biome colors 2012-03-14 16:48:33 -07:00
LexManos 0c39a7cbfd New EntityInteract hook for handeling player vs entity interaction on the global level vs the item level. 2012-03-14 16:47:15 -07:00
LexManos 09725ae326 Fixed forgotten type identifier in clean_src 2012-03-14 16:46:03 -07:00
Eloraam 2a8a89ee14 Merge pull request #12 from cpw/fixworldgen
Fix worldgen doubleshifting in ModLoaderMP until SDK fixes it.
2012-03-14 11:52:41 -07:00
Christian Weeks 8a8875a180 Fix worldgen doubleshifting in ModLoaderMP until SDK fixes it.
This means mods can generate surface and nether in SMP again.
2012-03-13 19:36:26 -04:00
LexManos 91ab9d0e1b New script to fix decompile differences between windows and linux/osx.
Removed the MLProp special case, no longer needed as MLProp decompiles fine.
Updated patches to work on all systems.
Added warning and exit if the user does not say yes to the cleanup.
2012-03-12 16:55:59 -07:00
Eloraam 9acdb5b620 Fixed a merge error. 2012-03-12 15:51:11 -04:00
Eloraam 340eede26c MCP Update. Fixed a few small bugs in the linux scripts. 2012-03-12 15:46:18 -04:00
LexManos 249ba1248d Custom dimensions should now honor the canRespawnHere function for respawning. 2012-03-12 12:19:20 -07:00
LexManos 02b3c0042d Fixed a wrong argument for dimensions, should fix entity tracking. 2012-03-12 12:18:42 -07:00
LexManos 6c6d4a7ed9 Fixed the inverted logic in the missing mod check. 2012-03-12 12:18:16 -07:00
LexManos b23798f67a Fix up Configuration ids to only work for 256 ids until Jeb finishes the 4096 conversion. 2012-03-10 17:08:34 -08:00
LexManos b56e414b98 Merge remote-tracking branch 'origin/master' 2012-03-09 18:55:13 -08:00
LexManos e32cb4eeb6 Fixed a bug where vines were not shearable. 2012-03-09 18:54:39 -08:00
LexManos cea259fab0 Merge pull request #11 from CovertJaguar/patch-1
Fixed a minor bug with the Minecart Dictionary.
2012-03-09 17:22:26 -08:00
CovertJaguar 3847292ef7 Fixed a minor bug with the Minecart Dictionary. 2012-03-09 17:10:50 -08:00
LexManos 7db6897fa3 1.4.0 official release. 2012-03-09 13:54:50 -08:00
LexManos e49564d0e8 Updated to MLMPv3 2012-03-09 10:42:39 -08:00
LexManos 5946d70ebf Implemented ChickenBone's Chunk handler 2012-03-08 22:21:38 -08:00
LexManos c3d7bb6b7d Hack-fix for players getting stuck during logins. Detailed fix when bug is actually tracked down. 2012-03-08 22:21:06 -08:00
LexManos 168fd92099 Updated to latest MCP 2012-03-07 09:45:31 -08:00
LexManos 924cc290dd Fixed client side bonemeal on grass only making flowers 2012-03-07 09:45:13 -08:00
LexManos e5d2de03ab Removed improper tile entity negation 2012-03-06 22:44:29 -08:00
LexManos 45910043c3 Fixed a generic tile entity line i missed on the server side. 2012-03-06 22:44:04 -08:00
LexManos e3c149c246 Fixed MLMP thinking Network mods need a client side when they dont. 2012-03-06 22:43:35 -08:00
LexManos 50390a305d Updated to SDK MLMP v2 2012-03-06 18:47:54 -08:00
LexManos b69e492343 Fixed missing double array in MLMP's packet server side. Also, fixed the creative code again, brain failed. 2012-03-06 15:04:40 -08:00
LexManos 7cfd984093 Updated to SDK's 1.2.3 MLMP, Mush cleaner, no longer supporting Flan's. 2012-03-06 14:12:55 -08:00
LexManos 74a33759fd Got my comparitor turned around 2012-03-06 14:12:20 -08:00
LexManos eb06a63222 Updated gitignore, fixed digging particles, fixed creative container showing to many blocks, fixed wrong argument for custom renderers. 2012-03-06 12:11:24 -08:00
LexManos 885484f75f ItemBlock now implements ITextureProvider so that blocks with custom textures will showup properly when being held. 2012-03-06 00:28:12 -08:00
LexManos f847e37119 Updated MCP's patch files. Fixes hangs on running MC as applet. 2012-03-06 00:26:51 -08:00
LexManos 72357310ae Cleanup of ModLoaderMP and proper update to the latest version of ModLoader 2012-03-05 20:02:07 -08:00
LexManos 1c77b62704 Fixed directory issues in the setup script 2012-03-05 20:01:04 -08:00
LexManos 66cac8ea7d Fixed NPE in the login handler 2012-03-05 19:57:50 -08:00
LexManos d1acfd94a6 Updated MCP mapings files 2012-03-05 15:07:33 -08:00
LexManos b77075367e No longer mark forge packets as chunk packets. 2012-03-05 15:07:18 -08:00
LexManos 2405761461 Fixed missing space in linux scripts 2012-03-05 15:06:54 -08:00
LexManos 3d53e59d73 Updated for MLMP 1.2.3 v1 2012-03-05 13:20:03 -08:00
LexManos 5f7d00e6ba Made the scripts forge updating md5s/mcp/names 2012-03-05 12:44:00 -08:00
LexManos bef2f96597 Missed damageCarryover on the server 2012-03-04 20:59:10 -08:00
LexManos 5f1d4524f9 Small imports cleanup 2012-03-04 20:46:50 -08:00
LexManos 5a0e798102 First push of server side patch updates for 1.2.3. MLMP is still not updated so it does not include those changes, and will not compile. 2012-03-04 20:46:15 -08:00
LexManos 70388dd607 Deleted unneeded server side patches, Packet250 bug was fixed. And the others got moved to AnvilSaveHandler 2012-03-04 20:45:15 -08:00
LexManos 9d626d9e5e Couple of things I missed client side 2012-03-04 20:43:30 -08:00
LexManos 5257986d76 Bit of a cleanup of the client patches 2012-03-04 20:43:11 -08:00
LexManos 650f92e858 Client side initial patch update to Fernflower and MC 1.2.3 2012-03-04 03:09:45 -08:00
LexManos c8fa2639aa No longer needed, bug was fixed 2012-03-04 03:08:43 -08:00
LexManos e96e496e05 Same patch diff, files. 2012-03-04 03:08:22 -08:00
LexManos 0599b29eb9 Conf for 1.2.3 2012-03-04 03:06:56 -08:00
LexManos 8478ff83aa Deleted EntityPigZombie patches, Who needed these? Why could you not do this via reflection? 2012-03-03 23:07:58 -08:00
LexManos d4c12596c9 removed unneeded import, and fixed casing of args in IShearable 2012-03-03 20:43:36 -08:00
LexManos 1633cce166 Fixed unneeded imports in ForgePacket 2012-03-03 18:37:40 -08:00
LexManos 2b40928113 Made mod_MinecraftForge extend NetworkMod, and changed NetworkMod to extend BaseModMP server side. 2012-03-03 18:17:23 -08:00
LexManos b2305b9d62 Updated The Json enum helper to point to the new packaged names. And fixed a casing change in ModLoader 2012-03-03 18:16:43 -08:00
LexManos 25e57d950a Updated eclipse project for MCP 1.2.3's inclusion of the Start folder in the src folder. 2012-03-03 18:09:05 -08:00
LexManos 7285b150e3 Deleted modLoaderMP.patch, unneeded now that we use Fernflower 2012-03-03 18:08:26 -08:00
LexManos a7c0026022 Updated scripts so that we use Fernflower now. Added a small python script to download fernflower for the user. And the scripts exit out if it fails. 2012-03-03 17:56:15 -08:00
LexManos cdbf0b21e7 Bumped version to 1.3.4, final commit for Minecraft v1.1 2012-03-01 09:39:22 -08:00
LexManos fcc1e1b9fb Fixed bug in build script that caused the Minecraft/MinecraftServer classes to not be included. 2012-02-29 02:30:05 -08:00
LexManos fcaddfd0fa Client side of the new Dimension support. 2012-02-28 18:52:52 -08:00
LexManos cfc68427ef Fixed compile error for the spelling pull request. 2012-02-25 15:41:56 -08:00
LexManos 041fb1e1da Fixed ITextureprovider for multi-textured items when rendering on the GUI. 2012-02-25 15:30:14 -08:00
MinecraftForge b99f14d72a Merge pull request #4 from Deveducer/master
Fix spelling error
2012-02-25 15:28:15 -08:00
Deveducer 431288f404 Fixed spelling mistake ('Frequancy') 2012-02-25 18:48:05 -08:00
LexManos 3c5ccfcad6 Merge commit 2012-02-24 22:13:03 -08:00
LexManos c44aac2b39 Ran AStyle over forge code for uniform code formatting, and refactored old code a bit to have cleaner names. 2012-02-24 22:07:58 -08:00
LexManos f160e90738 Deleted Deprecated interfaces. 2012-02-24 21:55:52 -08:00
LexManos fbc9fe73d7 Fixed line endings in windows update_patches 2012-02-24 20:29:49 -08:00
LexManos a50f2a094d Fixed up Shearable blocks to play nicer with sub-classes. 2012-02-24 20:28:59 -08:00
MinecraftForge 2946e50ca5 Merge pull request #3 from Deveducer/patch-1
People may think the server needs the mods to continue and not the clien...
2012-02-24 12:45:41 -08:00
Deveducer 7590705b71 People may think the server needs the mods to continue and not the client. 2012-02-24 12:26:36 -08:00
LexManos 964b33f2c7 Fixed a bug in update_patches that caused apostrphies to be removed. Causing the last patch to be generated incorrectly. 2012-02-24 10:47:25 -08:00
LexManos d2c7a856c1 Initial attempt at server side extra dimensions support.
Mods must register there dimensions on load, by calling DimensionManager.registerDimension(uniqueID, WorldProvier, boolean)
Mods are resposible for writing there own transporter blocks.
Initial commit, needs some more testing and design thoughts.
2012-02-24 02:38:16 -08:00
LexManos 08b908acea Implemented a response to Methuselah96's Arrow hook request. See IArrowNockHandler and IArrowLooseHandler 2012-02-22 16:51:14 -08:00
LexManos a5e209952e Added new Item.getIconIndex context sensitive version. 2012-02-22 16:49:57 -08:00
LexManos 76830e7fe2 Moved Client side EntityPlayer.openGui work code to EntityPlayer for compatibility between player API. 2012-02-22 12:39:11 -08:00
LexManos f8ad250cc7 Introduced some debugging info into Forge packets. And a debug flag in the client and server packet handlers. 2012-02-22 12:01:38 -08:00
LexManos 86adb815e6 Marked forge packets as 'chunk' packets. Giving them a higher priority making the initial mod list check more reliable. 2012-02-22 11:59:36 -08:00
LexManos 745539626d Changed the layout of the missing mods gui a little. Still needs a lot of work to look good. 2012-02-22 11:58:05 -08:00
Eloraam 7c66376a3b Fixed linux scripts, fixed TE bug. 2012-02-21 03:53:33 -05:00
Eloraam 56c165800b Merge branch 'master' of github.com:MinecraftForge/MinecraftForge 2012-02-21 03:43:13 -05:00
Eloraam 24a8d129b5 Linux scripts fixed, TE bug fix. 2012-02-21 03:39:47 -05:00
LexManos 54ec1567b2 Implemented a generic EntityPlayer.openGui system, and the network backend for it to work on server and client. 2012-02-20 23:56:01 -08:00
LexManos a6f93ed528 Expanded the Mod check to test for missing mods and display a GUI screen for the client if it is missing any.
The client now downloads NetworkMod ID's from the server upon connecting.
2012-02-20 23:54:11 -08:00
LexManos 70fbe4f403 Introuduced NetworkMod, a BaseMod extension and replacement for BaseModMP. All mods that are designed to work in the server environment should extend this.
NetworkMods will be assigned unique ModIDs by the server, and those IDs will be sent to the client upon connection.
Refactored Forge packets to the net.minecraft.src.forge.packets package. And introduced the base ForgePacket class.
Added initial ModList request/response.
2012-02-20 23:50:26 -08:00
LexManos 546a0fce41 Exposed getters for NetServerHandler.playerEntity and NetworkManager.netHandler 2012-02-20 23:42:26 -08:00
LexManos 87524cfa31 Fixed up the install scripts. The linux script no longer needs sed. Should fix some issues on OSX's without gsed.
Also forge sources will only be copied to sides that were downloaded.
Also, install scripts now prompt for input to cleanup.
2012-02-18 10:47:45 -08:00
LexManos 67a49ccdd2 Split mod_MinecraftForge so that Clients arnt required to have MLMP installed if they don't use a MP mod. 2012-02-16 20:04:40 -08:00
LexManos 4c7814c603 Bumped version to 1.3.3 2012-02-15 06:41:36 -08:00
LexManos f73d0e33c7 Small update to update_patches.bat, to skip patch reject files. 2012-02-15 06:41:12 -08:00
LexManos 9440767e22 Update MCP Mapings 2012-02-15 06:40:41 -08:00
LexManos c54ed32d2a Refactored so that ISpecialArmor items do not see the factor of 25 on the damage.
The value returned form ISpecialArmor.getProperties is now copied, so mod items are free to re-use there return values.
2012-02-14 11:12:16 -08:00
LexManos d230b379f9 Reworked ISpecialArmor to provide better functionality as requested by IC2 devs.
Armor can now be prioritized over other armor.
It can deal with damaging it's own itemstacks.
Also impkemented the ISpecialArmor.getArmorDisplay
2012-02-14 10:37:31 -08:00
LexManos f2b973e48a Implimented a new IShearable system. This allows mods to create both new shear-like items/blocks. As well as new Entities/Blocks that work with other mod's shear-like items. 2012-02-13 04:13:02 -08:00
LexManos 5163a30002 Implemented item.onBlockStartBreak call for creative single player. 2012-02-13 04:11:39 -08:00
LexManos d8fa9a8497 Added Item.onLeftClickEntity hook. Used to intercept and cancel the 'attack' action within items. 2012-02-13 04:04:55 -08:00
LexManos d977c1bfc5 Fixed ITextureProvider support for items that have multiple colored overlays. 2012-02-13 04:03:04 -08:00
LexManos 1242aade3c Lowered the amount of build log spam, and fixed the inject_version script for use on other systems. 2012-02-13 04:01:54 -08:00
LexManos 6a8d84470a Missed a caluse, ISpecialArmor should work as intended now. And not destroy Armor instanatly. 2012-02-10 07:10:39 -08:00
LexManos 14ccf7834b Implmented Sengir's IPickupHandler.
http://www.mod-buildcraft.com/forums/topic/hook-intercept-item-pickups-by-player-entities/?view=all
2012-02-10 06:56:28 -08:00
LexManos 408d2a9d62 Merged in the change to ISpecialArmor to introduce the DamageSource argument.
As well as the concept of damage absorption vs reduction.
2012-02-10 04:02:32 -08:00
LexManos 2ea1775224 Created a Entity tracking ans spawning system.
Mod creators should call MinecraftForge.registerEntity to register a entity.
All entity ID numbers are Mod Unique. Meaning two mods can have Entity #1.
Added client and server side packet handlers for the 'Forge' channel. For use in internal packets such as the new Spawn packet.
Updated the build scripts to copy over unique server source files now that there actually are some.
For modders:
  If you have a entity that used MLMP's 'owner' system, you should have your entity implement IThrowableEntity
  If you have a entity that implments MLMLP's ISpawnable, you should implement ISpawnHandler.
They provide the same functionality, just in a cleaner, more orginized way and will be the method used when we eventually drop MLMP.
2012-02-10 03:06:08 -08:00
LexManos fcc781b100 Fixed return value for un/registerChannel. Now returns properly indicate when un/register commands should be sent. 2012-02-07 05:13:19 -08:00
LexManos ebdc9b9464 Setup .gitignore for eclipse bin dirs.
Fixed line endings in install.sh
Added mod_MinecraftForge for simpler logging of minecraft version in crash reports
Added new hooks for connection events, See IConnectionHandler for more details.
Added Packet250CustomPayload handeling and channel registraction management, see MessageManager and IPacketHandler for more details.
Forge now uses unsed fields in C->S Packet1Login to identify itself. None Forge clients will get a graceful disconnect message instead of the 'Unknown packet 230'
2012-02-07 03:16:57 -08:00
LexManos 9265b690ab First official commit for GitHub. Using to test build automation system firing from final configuration. 2012-02-03 03:30:49 -08:00
LexManos 02088ea278 New parameter for setup script to skip the initial decompile. Used in the build system to speed things up. 2012-02-03 10:46:49 +00:00
Space Toad e3b3920661 bumbed version number 2012-01-29 13:27:26 +00:00
LexManos 61dc035977 Potions are not armor. 2012-01-28 07:34:39 +00:00
LexManos 7a6193e8f5 Reorganized SpecialArmor code to work properly. 2012-01-28 07:09:55 +00:00
LexManos 92b2a3666e Some typo fixes 2012-01-28 06:16:58 +00:00
LexManos c6121b5676 Updated for MCP Mappings 2012-01-25 13:08:09 +00:00
LexManos 08195cfc03 Streamlined the Setup, Build and Package scripts:
On windows they no longer need the user to press enter every step
Moved version info out to version.txt, This will only effect the svn. If you update the version do it in version.txt not in ForgeHooks.java.
Introduced the build number into the version string.
Cleaned up some extra echos in scripts.
2012-01-25 07:00:31 +00:00
LexManos fa564fb3c5 Reach and Rail bugfix 2012-01-23 20:44:10 +00:00
Space Toad 224597aa3a bumped version number 2012-01-22 01:28:22 +00:00
LexManos 9f31de24aa Install.cmd now tries to add the system folder to the current path. 2012-01-21 19:45:03 +00:00
LexManos 86a5cfd48b Disabled updatenames int he isntall scripts till MCP fixes the reobf issue.
Updated to MLMP 1.1v2, Which says it fixes bugs it doesn't But it does fix the packet bug.
Fixed a bug in Packet 250.
2012-01-20 18:44:00 +00:00
LexManos 52a18ab02b Updated MCP mappings 2012-01-19 19:21:48 +00:00
LexManos a560c7bf9a Fixed the Minecart Drop bug 2012-01-19 00:53:18 +00:00
Eloraam b767ce84ab Fixed a bug that caused snowballs to drop incorrectly. 2012-01-18 03:03:34 +00:00
LexManos 3bb04f70ca Small update to ContainerCreative hook for better compatibility with mods that extend block IDs. 2012-01-17 21:03:08 +00:00
LexManos 2319eec68b Fixed getCartClassForItem and getCartTypeForItem 2012-01-17 16:48:09 +00:00
LexManos 3b5b9c5d1e Bug Fix for Chests staying open on MP Servers
Implemented reach distance variable
2012-01-17 03:44:52 +00:00
LexManos 43a89e61e9 Fixed a few accessors I missed:
Server RailLogic.getNAdjacentTracks public
Server TileEntityFurnace.getItemBurnTime static

New GUIControls change, Made it into a scroll panel instead of a static position window.
This just makes things look better when multiple mods with KeyBindings are installed
2012-01-17 02:03:29 +00:00
LexManos 078d3c2750 Fixed a mapping issue with client side TileEntityFurnace patch 2012-01-16 02:13:08 +00:00
Space Toad 0be5c34f01 added missing files 2012-01-15 23:40:23 +00:00
Space Toad 779d34372b removed files from previous version 2012-01-15 23:39:28 +00:00
Space Toad 5190e0c927 bumped version number 2012-01-15 19:28:53 +00:00
Space Toad bfd0cfe506 merged with 1.1 branch 2012-01-15 19:16:08 +00:00
LexManos 87d4c2134c Bumped version number
Added initialization to ModLoader's log
2012-01-14 03:57:01 +00:00
Eloraam dda5880360 Fixed an unroll from the MCL merge. Updated MCP mappings. 2012-01-13 19:21:01 +00:00
LexManos 2309163d92 Fixed NPE on some JVM's 2012-01-12 07:43:55 +00:00
LexManos e5a16e25df Merged in MCL branch 2012-01-12 07:38:23 +00:00
Eloraam ad378151cf Improved the ladder hook. Added a new hook for sustained-use items. 2012-01-11 19:40:04 +00:00
Eloraam bdda88d74e Fixed MCP mappings again. Fixed the Entity NBT code.
Added a new hook to support custom enchantments.
2012-01-11 18:39:42 +00:00
Eloraam 61d9b78704 Updated MCP Mappings. 2012-01-11 18:13:35 +00:00
LexManos f3e56e0273 Fixed faces for BlockFire 2012-01-01 09:30:42 +00:00
LexManos e26f1ab671 Refactored a bit of the TileEntity code so that ANY block may now have a tile entity.
This is to allow modders the ability to extend blocks other then BlockContainer, and still be able to have a TileEntity.

Also added a NBTTagCompound to the base EntityClass, this allows any entity to be given arbitrary data that will persist across world saves.
This data is NOT sent over the wire in a MP situation, to have data sent over the wire automatically use the built in data watcher.
2012-01-01 07:42:21 +00:00
Space Toad dda9f474af bumbed version number 2011-12-28 21:22:07 +00:00
LexManos df3449534f Changed Block.setBurnRate to public and Block.setBurnProperties
Re-added bounce functions to BlockFire for non-forge mods.
Should fix Optifine compatibility.
2011-12-24 05:07:55 +00:00
LexManos 906cb8ee39 Fixed a re-name that somehow missed the commit.
Serverside chanceToEncourageFire -> getFireSpreadSpeed
2011-12-24 00:35:41 +00:00
Eloraam d541e492c4 Fixed some rendering issues. 2011-12-23 00:23:01 +00:00
Eloraam d7d0f241ff Another mapping update. 2011-12-22 20:11:38 +00:00
LexManos c8fca39895 Updated mapping for last commit 2011-12-22 02:17:40 +00:00
Eloraam dd1eb6924d Mapping updates. 2011-12-21 23:09:18 +00:00
LexManos 3f8d830899 Re-added BlockFire's properties, apparently some people access this by reflection. 2011-12-21 14:10:05 +00:00
Eloraam a4475c9e9a Bumping the version number. 2011-12-21 10:22:37 +00:00
Eloraam 90a4744130 Fixed some strange behavior in snow blocks. Fixed a missing patch checkin. 2011-12-21 10:15:38 +00:00
Eloraam f4eec04eba A minimalistic hook for rendering world effect overlays or other 3D overlay
data.
2011-12-21 09:57:10 +00:00
Eloraam dbb5a37449 Major rework of the rendering core. Added support for custom render context
handling.
2011-12-21 09:01:45 +00:00
LexManos 348a6fe03c Added Item.onDroppedByPlayer hook 2011-12-21 07:44:01 +00:00
Eloraam 6e1442e8e6 Deprecated IUseItemFirst, and made onUseItemFirst work in Creative. 2011-12-21 06:34:57 +00:00
LexManos b91eb1ceac Added server side prototypes for addCreativeItems()s They are unused, but declared for compiling compatibility. 2011-12-21 04:38:59 +00:00
LexManos a38c8bd427 Added hooks to BlockFire for setting block flame interaction properties. 2011-12-21 04:30:53 +00:00
LexManos 2936697302 Replaced dropBlockAsItemWithChance in BlockNetherStalk with getBlockDropped. 2011-12-21 00:44:53 +00:00
Eloraam 52de732b8e Fixed a minor crop fortune bug. 2011-12-20 21:39:53 +00:00
LexManos c2f165f211 Commit of a hook for adding items into world dungeon generation.
Uses a weighted random selection scheme.
Also a hook for adding custom mobs to the dungeon generation list.
2011-12-20 07:00:43 +00:00
LexManos 4c6e03e4ad Updated mappings 2011-12-20 06:58:29 +00:00
LexManos c84b8740b4 Implemented ISidedInventory for Brewing Stands.
Top is input, 1 slot
All other sides are output, 3 slots.
2011-12-19 06:33:20 +00:00
LexManos 8c9762fd9a Added missing native library path to forge_client project.
Added harvest levels/effectiveness for Axes and Shovels.
2011-12-16 10:06:57 +00:00
LexManos d8a14ee928 Fixed a zLevel bug with custom item renderers. 2011-12-14 10:45:37 +00:00
Space Toad 8bb73671ba bumped version numbers 2011-12-13 19:33:37 +00:00
LexManos 46a9ba178f Fixed seeds/wheat not dropping from Crops/TallGrass.
All future Forge code should use proper annotations when Overriding.
2011-12-11 21:55:35 +00:00
LexManos 5c60c2246c Small fix to decrease the number of glBindTexture calls that are immediately overridden. 2011-12-11 11:50:55 +00:00
LexManos e79b5d1937 The install scripts will now only patch the client/server if they are there.
This allows for people to only worry about getting one side setup correctly if they don't care about the other.
2011-12-11 07:37:54 +00:00
LexManos 9bf4f67d9d Fixed a infinite recursion loop in spacetoad's commit to Block.java.patch
Added @Deprecated annotations to the 'backwards compatible' functions spacetoad re-added.

Made changes to the install scripts:
-Will overwrite the current MCP mappings and use the ones that ship with forge, this 
    should eliminate all the issues of people not being able to install it because they updated there mcp.cfg
-Will now move fernflower.jar if it is found, so that MCP will not decompile using it.
    Should fix the issues of people trying to use forge with fernflower installed.
-Will call updatemcp/updatenames so that users get the latest mappings for unmapped items.
-Also calls updatemd5s so that the forge API is skipped when spitting out reobfusicated files.

Update the readme to be more accurate.
Added my name to the credits :P
Updated the update_patches/package scripts to account for grabbing the conf folder.
Added GnuWin32's grep
2011-12-11 07:04:21 +00:00
Space Toad c726e219d7 bumped version number 2011-12-10 11:07:51 +00:00
Space Toad 707a07511f further backward compatibility fixes 2011-12-10 11:05:49 +00:00
LexManos d64c332266 Added my EnumHelper classes, this allows for dynamic creation of Enum values at runtime.
See My post for a example:
http://www.minecraftforum.net/topic/514000-api-minecraft-forge/page__view__findpost__p__10948540
2011-12-09 07:58:32 +00:00
LexManos 800bb21bc8 Missed some mappings 2011-12-09 06:51:31 +00:00
LexManos 1931d4fc09 For for updated mappings. 2011-12-09 04:40:32 +00:00
Space Toad 17c9f9bf9b added server side of the previous commit 2011-12-08 07:51:17 +00:00
Space Toad db1f438c2d fixed backwards compatibility 2011-12-07 21:30:48 +00:00
LexManos d67cda76b8 Fixed fortune enchant.
This breaks forge's quantityDropped signature, be careful when updating mods.
2011-12-06 07:41:59 +00:00
LexManos b883254220 Cleaned up a few things related to MLProp
Deleted unmaintained fernflower patch.
2011-12-05 08:30:07 +00:00
Eloraam 8a4636cba3 Added a hoe handler for advanced farming. 2011-12-02 04:32:10 +00:00
Eloraam 9c6f5bd8ee Added new tool harvest intercept hook. Removed mlprop.patch. 2011-12-02 04:08:15 +00:00
LexManos a2c606e98c Moved dye creative adds to the ItemDye class. 2011-12-02 03:57:11 +00:00
LexManos 6c578cd84d Creative Container population hook. 2011-12-02 03:37:48 +00:00
Eloraam e35435abd5 Fixed missing CraftingManager patches for the repair disable hook.
Fixed smp mlprop.
2011-12-02 02:26:15 +00:00
LexManos 5c7978d347 Added MLprop.java that ST forgot when he merged.
Fixed EntityPlayer.getPlayerStrVsBlock metadata function for 1.0.0 changes in Enchantments/Potions.
2011-12-01 07:29:06 +00:00
Space Toad 68cc1d315b bumped version number 2011-11-30 19:02:10 +00:00
Space Toad 96c05bbd25 merged with pre-1.9p5 branch, for 1.0.0 release 2011-11-30 19:00:43 +00:00
Space Toad d2cf70f8d5 fixed mapping 2011-11-15 18:46:42 +00:00
Eloraam f1a6f45353 New block destruction hook. Deprecated IOverrideReplace. 2011-10-31 20:07:31 +00:00
Eloraam 8acaaa0e53 Updated MCP mapping, backed out a useless patch. 2011-10-31 19:24:45 +00:00
Eloraam 384da1b222 Added some IC2 items. 2011-10-27 02:05:43 +00:00
Eloraam 2be3e5845a Changed a field permission for MFR. 2011-10-26 04:42:37 +00:00
Eloraam 600b2b86a6 Small TileEntity fix. 2011-10-25 19:28:47 +00:00
Eloraam 6fb7b777ce Added a few more known ingots. 2011-10-25 17:15:12 +00:00
Eloraam 28345bf839 Bugfix for numeric range of mob and window IDs. 2011-10-22 11:53:00 +00:00
Eloraam 56f612c186 Fixed TileEntity caching. 2011-10-21 21:00:44 +00:00
Eloraam 80882bec9c Patch for a small activation glitch in doors. 2011-10-19 02:45:51 +00:00
Eloraam f1f672b5fd MCP update.
Fixed a problem with TileEntity sending.
2011-10-19 02:00:50 +00:00
Eloraam bf5e706f06 Rolled in a critical MLMP fix, because MLMP is virtually unmaintained. 2011-10-18 19:11:57 +00:00
Eloraam c12b2c5b11 Added ore dictionary. 2011-10-18 18:56:10 +00:00
Eloraam a64a47b24c Fix for new MCP mappings.
Fixed the distribution of flowers with bonemeal.
Fixed accidentally making obsidian easy to mine.
2011-10-13 07:10:43 +00:00
LexManos 8a7c087e34 Fixed line endings in install.sh 2011-10-11 22:38:39 +00:00
LexManos 756c3ce812 Updated the package.sh script to include the patches, the new install.sh, and modLoaderMP/mlprop.patch 2011-10-11 22:23:39 +00:00
LexManos b8a84f2c29 Changed the windows setup to use del instead of remove.
Both update patches scripts no longer remove svn entries.
Added the forge_client\bin and forge_server\bin folders to the svn ignore.
2011-10-10 23:47:30 +00:00
Space Toad ebc09a72db bumbed forge minor version 2011-10-10 19:21:41 +00:00
Space Toad 579f4de295 reactivated special armor code 2011-10-10 19:16:11 +00:00
LexManos 9f56b1cc03 Made the windows setup script a bit more robust, also made both scripts filter out non-patch files. {Issue with svn files} 2011-10-10 00:09:48 +00:00
LexManos 141805d5bb Fixed a bug in forge_client project that had a hard link to E:/MCP/jars/bin/paul.jar now points to MCP/jars/bin/minecraft.jar {has the same paulsound libraries}
Major refactoring of the patches, now each modified file gets its own patch file.
Rewrote all the scripts to use new multi-patch system.
Added linux install.sh using new system.
Added some required libraries from GNUWin32 for the windows side of the new setup.bat/update_patches.bat http://gnuwin32.sourceforge.net/
2011-10-09 04:21:29 +00:00
Eloraam d00a837635 Changed a field permission. 2011-10-05 22:54:20 +00:00
Eloraam da695e774f Fixed another TileEntity bug. 2011-10-04 21:46:00 +00:00
Space Toad b3d605cd9d ISidedInventory is now explicitely an inventory 2011-10-02 19:14:20 +00:00
Eloraam 56438eb585 Fixed the MCP mappings. 2011-10-02 18:42:15 +00:00
Eloraam b763c73b74 - Added an ItemStack parameter to IArmorTextureProvider
- Added ISidedInventory
- Added IBonemealHandler
- Added hooks in grow-on-grass and in break tall grass.
- Fixed furnace output of multiple items.
- Added getBlockDropped().
- Bumped version number to 1.1.1.
2011-10-02 08:55:31 +00:00
Eloraam ff7055fdb2 Hopefully fixed the major TileEntity bugs. 2011-09-30 12:32:27 +00:00
Eloraam 07dfc35e0e Fixed TileEntities, bumped version number. 2011-09-28 23:35:31 +00:00
Eloraam d290970b49 Fixed digging particles. 2011-09-26 19:37:28 +00:00
Eloraam 47749d454a Added a fix for onItemUse regression. 2011-09-22 10:12:05 +00:00
Eloraam ed7c343647 More MCP mapping fixes. 2011-09-22 03:01:10 +00:00
Eloraam a386d0a8dc Undid that. Whoops. 2011-09-22 02:49:33 +00:00
Eloraam 1a8d32f7de Code to remove a single block effectiveness. 2011-09-22 02:45:47 +00:00
Eloraam 7a242e9562 Metadata-sensitive quantity dropped. 2011-09-21 08:08:58 +00:00
Eloraam afdbc4064b Fixed up a few bugs in the tool path. 2011-09-21 07:14:53 +00:00
Eloraam 0392ecd8da Fixed another bug in the furnace patch. Works now. 2011-09-21 01:05:44 +00:00
Eloraam cab70ce17a Small bugfix for furnace patch. 2011-09-21 00:59:37 +00:00
Eloraam 9fa40cb432 Metadata-sensitive smelting patch. 2011-09-21 00:55:09 +00:00
Eloraam c9b6cdef1f Fixes for MCP updates. 2011-09-19 20:40:07 +00:00
Eloraam 5ecff4e5a1 Fixed the 1.8.1 version for MLMP support. 2011-09-19 20:30:34 +00:00
Eloraam 115de819b3 A bunch of little patches to make it actually build for 1.8.1. 2011-09-19 01:44:40 +00:00
Eloraam bb6751cc59 First attempt at a 1.8.1 version. May not work. 2011-09-19 01:30:41 +00:00
Eloraam 0a874de91d Unrolled a mistaken fix. 2011-09-11 04:46:16 +00:00
Eloraam 3b61068a3c Another try for osx. 2011-09-11 04:05:39 +00:00
Eloraam cfe5a542fc A small fix to hopefully make the script work on a mac. 2011-09-11 03:49:01 +00:00
Eloraam 4f4a75d865 Redesigned TileEntity handling. 2011-09-08 21:33:03 +00:00
Space Toad 5c74f5efb9 fixed SMP bug related to BuildCraft issue #226 2011-09-07 19:57:53 +00:00
Eloraam 878cac2697 A few small patches to fix obscure piston rendering bugs. 2011-09-07 15:14:01 +00:00
Eloraam 8b5440b351 Optifine compatibility patch. 2011-09-07 14:58:08 +00:00
Space Toad 71c77d9e9a updated to latest MCP, and added custom item rendering facilities 2011-09-03 11:46:59 +00:00
Eloraam 8ced84d8d3 Improved trapdoor hook. 2011-09-01 08:01:47 +00:00
Eloraam 3e09d92cd4 New lighting hook. 2011-08-30 10:32:14 +00:00
Eloraam 17132962c9 Fixed new MCP mappings. 2011-08-30 06:18:32 +00:00
Space Toad e7ca40009e bumped forge version # to 1.0.6 2011-08-28 12:54:47 +00:00
Space Toad 62e7bdf805 added ArmorProperties constructors, remove deprecated subprograms (supposedly not used by anyone) 2011-08-28 12:33:16 +00:00
Space Toad 705e5e62a0 fixed headers, implemented new armor computation for IC2 2011-08-27 11:42:48 +00:00
Eloraam a6ed5709ef Fixed the permissions on a couple fields in ItemTool. 2011-08-27 05:49:09 +00:00
Space Toad aead41197f temporary reverted to r61 2011-08-27 01:12:20 +00:00
Space Toad e9cd63abf7 updated credits 2011-08-25 19:47:34 +00:00
Eloraam d2878faa33 Patched the installer again. 2011-08-25 17:15:02 +00:00
Eloraam 1c11f0eeb0 Fixed a typo. 2011-08-25 07:19:49 +00:00
Eloraam 33bd0947e3 Small RedPower-specific patch. 2011-08-25 07:17:10 +00:00
Eloraam 0457d8057f Added armor texture hook. 2011-08-25 00:23:31 +00:00
Eloraam b0efd106bd New install script for Windows. 2011-08-24 04:18:57 +00:00
Eloraam 9d22e76927 Fixed the version number. 2011-08-21 07:50:09 +00:00
Eloraam 6ac2161f36 Changed some field permissions. 2011-08-20 22:23:29 +00:00
Eloraam 4cdb1cb3d0 Handler for custom block highlight. 2011-08-20 10:35:14 +00:00
Eloraam 651af86795 Version control logic, improved the destroy handling hook. 2011-08-20 08:59:05 +00:00
Eloraam 622f536f80 Improved BTW compatibility.
Finished the placement hook changes.
Added a sleep handler.
Added a current item destroyed handler.
2011-08-18 00:14:09 +00:00
Eloraam 231c65da06 Checking in the new crafting hook. 2011-08-17 16:05:38 +00:00
Eloraam 72864e4bc2 Added a little support for two-pass rendering. 2011-08-17 10:23:10 +00:00
Eloraam 1d19069203 Forgot the forge hooks. 2011-08-13 18:26:31 +00:00
Eloraam 12b64fa287 Updates:
- Added warning message for non-preloaded textures.
- Documentation
- Ladder fix for SMP.
- Obsoleted IBlockSecondaryProperties
- Added hooks for place-by-side.
- Fixed texture 3 and piston texture bug.
- Added new tool system.
2011-08-12 23:53:30 +00:00
FlowerChild fb5f9373c5 Added patches for decompiled by fernflower source. Client only, and not tested enough. Using is currently not recommended. 2011-08-12 13:52:53 +00:00
Eloraam 08b0913f04 Uploaded new install file. 2011-08-12 04:17:33 +00:00
Eloraam 8d9e0879d8 Fixed for the new version of MCP. 2011-08-11 21:10:52 +00:00
Eloraam adf31e33fd Uploaded install fix. 2011-08-08 19:50:09 +00:00
Eloraam 61b8107ba4 The ladder hook. 2011-08-08 16:55:50 +00:00
Eloraam cfda01b9ff Fixed a typo in isBoundingBoxBurning. 2011-08-07 21:37:05 +00:00
Space Toad 4c259ce5d5 updated list of contributers 2011-08-06 21:54:56 +00:00
Space Toad 53dd73f2a5 updated release and package script to take into account credit file 2011-08-06 21:23:38 +00:00
Space Toad 691b87e876 renamed file 2011-08-06 21:18:31 +00:00
Space Toad b813f609a6 initial revision of the credit file, to be completed 2011-08-06 21:16:53 +00:00
Eloraam cbcdfbcfdb Added a comment. 2011-08-06 18:29:58 +00:00
Eloraam 6c19a22244 Added a small patch to MovingObjectPosition. 2011-08-06 18:22:24 +00:00
Eloraam f530d9f2b2 Not really a change. 2011-08-05 14:58:18 +00:00
Eloraam 6accd6dfee Added a texture preloader to avoid render glitches on the first render. 2011-08-05 11:58:14 +00:00
Eloraam f54eecb455 New multiple-tessellator texture renderer. 2011-08-05 11:07:03 +00:00
Eloraam 4bc2f86ea8 New install script for Linux users. 2011-08-05 00:32:56 +00:00
Space Toad 6d0e031989 improved installation and setup scripts 2011-08-04 06:10:38 +00:00
Eloraam d23812cb4c Added secondary block properties patch. 2011-08-03 05:15:31 +00:00
Eloraam ee1f04bd58 Fixed a little path bug. 2011-08-02 05:18:52 +00:00
Eloraam 98fbe565b3 Improved the setup scripts. 2011-08-02 03:54:59 +00:00
467 changed files with 45386 additions and 1773 deletions

No files matched your search

+14
View File
@@ -0,0 +1,14 @@
* 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
+23
View File
@@ -0,0 +1,23 @@
#eclipse
/bin
/.settings
/.classpath
#idea
/.idea
*.iml
#gradle
/build
/.gradle
#occupational hazards
/eclipse/
/repo/
/buildSrc
#Patch rejects
*.rej
/patches-/
# FML changelog
changelog.txt
+3
View File
@@ -0,0 +1,3 @@
[submodule "fml"]
path = fml
url = https://github.com/MinecraftForge/FML.git
+26
View File
@@ -0,0 +1,26 @@
* Eloraam *
* FlowerChild *
* Hawkye *
* MALfunction84 *
Submitted the sleep handler code for his mod (Somnia) and others to use.
* Scokeev9 *
Gave permission for ScotTools API to be integrated into MCF, and also supported the Forge by converting his mods to use it.
ScotTools Background: ScotTools was an API that enabled modders to add blocks to harvesting levels (and many other ease-of-use features to create new tools), and the first tool API that used block material for block breaking efficiency which allowed blocks from mods that didn't use ScotTools API to break with the correct speed.
* SpaceToad *
* LexManos *
* cpw *
* Minecraft Coder Pack (MCP) *
Forge Mod Loader and Minecraft Forge have permission to distribute and automatically download components of MCP and distribute MCP data files.
This permission is not transitive and others wishing to redistribute the Minecraft Forge source independently should seek permission of MCP or
remove the MCP data files and request their users to download MCP separately.
+70 -65
View File
@@ -1,65 +1,70 @@
Minecraft Forge Public Licence
==============================
Version 1.0
0. Definitions
--------------
Minecraft: Denotes a copy of the Minecraft game licensed by Mojang AB
User: Anybody that interract with the software in one of the following ways:
- play
- decompile
- recompile or compile
- modify
Minecraft Forge: The Minecraft Forge code, in source form, class file form, as
obtained in a standalone fashion or as part of a wider distribution.
Dependency: Code required to have Minecraft Forge working properly. That can
include dependencies required to compile the code as well as modifications in
the Minecraft sources that are required to have Minecraft Forge working.
1. Scope
--------
The present license is granted to any user of Minecraft Forge. As a
prerequisite, a user of Minecraft Forge must own a legally aquired copy of
Minecraft
2. Play rights
--------------
The user of Minecraft Forge is allowed to install the software on a client or
a server and to play it without restriction.
3. Modification rights
----------------------
The user has the right to decompile the source code, look at either the
decompiled version or the original source code, and to modify it.
4. Derivation rights
--------------------
The user has the rights to derive code from Minecraft Forge, that is to say to
write code that either extends Minecraft Forge class and interfaces,
instantiate the objects declared or calls the functions. This code is known as
"derived" code, and can be licensed with conditions different from Minecraft
Forge.
5. Distribution rights
----------------------
The user of Minecraft Forge is allowed to redistribute Minecraft Forge in
partially, in totallity, or included in a distribution. When distributing
binaries or class files, the user must provide means to obtain the sources of
the distributed version of Minecraft Forge at no costs. This includes the
files as well as any dependency that the code may rely on, including patches to
minecraft original sources.
Modification of Minecraft Forge as well as dependencies, including patches to
minecraft original sources, has to remain under the terms of the present
license.
Minecraft Forge Public Licence
==============================
Version 1.0
0. Definitions
--------------
Minecraft: Denotes a copy of the Minecraft game licensed by Mojang AB
User: Anybody that interract with the software in one of the following ways:
- play
- decompile
- recompile or compile
- modify
Minecraft Forge: The Minecraft Forge code, in source form, class file form, as
obtained in a standalone fashion or as part of a wider distribution.
Dependency: Code required to have Minecraft Forge working properly. That can
include dependencies required to compile the code as well as modifications in
the Minecraft sources that are required to have Minecraft Forge working.
1. Scope
--------
The present license is granted to any user of Minecraft Forge, for all files included
unless stated otherwise in the file itself. As a prerequisite, a user of Minecraft
Forge must own a legally aquired copy of Minecraft.
2. Play rights
--------------
The user of Minecraft Forge is allowed to install the software on a client or
a server and to play it without restriction.
3. Modification rights
----------------------
The user has the right to decompile the source code, look at either the
decompiled version or the original source code, and to modify it.
4. Derivation rights
--------------------
The user has the rights to derive code from Minecraft Forge, that is to say to
write code that either extends Minecraft Forge class and interfaces,
instantiate the objects declared or calls the functions. This code is known as
"derived" code, and can be licensed with conditions different from Minecraft
Forge.
5. Distribution rights
----------------------
The user of Minecraft Forge is allowed to redistribute Minecraft Forge in
partially, in totallity, or included in a distribution. When distributing
binaries or class files, the user must provide means to obtain the sources of
the distributed version of Minecraft Forge at no costs. This includes the
files as well as any dependency that the code may rely on, including patches to
minecraft original sources.
Modification of Minecraft Forge as well as dependencies, including patches to
minecraft original sources, has to remain under the terms of the present
license.
The right to distribute Minecraft Forge does not extend to the right to distribute
MCP data files included within Minecraft Forge. These are the property of the MCP
project and should be removed from any customized distribution of Minecraft Forge
or permission sought separately from the MCP team.
+10
View File
@@ -0,0 +1,10 @@
IBXM is copyright (c) 2007, Martin Cameron, and is licensed under the BSD License.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of mumart nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,40 @@
SoundSystem CodecIBXM Class License:
You are free to use this class for any purpose, commercial or otherwise.
You may modify this class or source code, and distribute it any way you
like, provided the following conditions are met:
1) You may not falsely claim to be the author of this class or any
unmodified portion of it.
2) You may not copyright this class or a modified version of it and then
sue me for copyright infringement.
3) If you modify the source code, you must clearly document the changes
made before redistributing the modified source code, so other users know
it is not the original code.
4) You are not required to give me credit for this class in any derived
work, but if you do, you must also mention my website:
http://www.paulscode.com
5) I the author will not be responsible for any damages (physical,
financial, or otherwise) caused by the use if this class or any
portion of it.
6) I the author do not guarantee, warrant, or make any representations,
either expressed or implied, regarding the use of this class or any
portion of it.
Author: Paul Lamb
http://www.paulscode.com
This software is based on or using the IBXM library available from
http://www.geocities.com/sunet2000/
IBXM is copyright (c) 2007, Martin Cameron, and is licensed under the BSD License.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of mumart nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+31
View File
@@ -0,0 +1,31 @@
*** HOW TO INSTALL ***
For Mod Users:
Download the latest installer from http://files.minecraftforge.net and follow instructions given by the installer.
For Mod Devs:
Download the latest Forge source distribution from http://files.minecraftforge.net and unzip it to a folder.
Open a command prompt, navigate to the directory where you unzipped the Forge sources, and run:
If you have Gradle: gradle setupDevWorkspace
If you DO NOT have Gradle installed:
Windows: ./gradlew.bat setupDevWorkspace
MacOS/Linux: ./gradlew setupDevWorkspace
If you wish to use the Eclipse IDE, run gradle eclipse instead of gradle setupDevWorkspace, or install the Gradle plugin for Eclipse and import the Forge source folder as a Gradle project.
For Contributors: (Note: This assumes you have Gradle installed. If you don't, use ./gradlew(.bat) instead of gradle.
Clone this repository to a folder.
Open a command prompt and navigate to the folder where you cloned this repo.
Run gradle setupForge to setup your development environment.
To use Eclipse, point your Eclipse workspace at the eclipse folder inside the repo.
Requirements (for both mod devs and contributors):
You must have a JDK installed and accessible.
If you do not wish to use the gradle wrapper, you can install Gradle from http://www.gradle.org/ .
+122
View File
@@ -0,0 +1,122 @@
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'
}
}
configurations {
deployJars
}
import static net.minecraftforge.gradle.dev.ForgeDevPlugin.*
apply plugin: 'maven'
apply plugin: 'forgedev'
repositories {
mavenLocal()
flatDir {
name "fileRepo"
dirs "repo"
}
}
minecraft {
version = '1.7.2'
mcpVersion = '9.03'
fmlDir = projectDir.getAbsolutePath() + "/fml";
mainClass = 'cpw.mods.fml.relauncher.ServerLaunchWrapper'
tweakClass = 'cpw.mods.fml.common.launcher.FMLTweaker'
installerVersion = "1.4"
}
group = 'net.minecraftforge'
version = getVersionFromJava(getProject(), 'src/main/java/net/minecraftforge/common/ForgeVersion.java')
jenkins {
job = 'minecraftforge'
}
launch4j {
jreMinVersion = '1.6.0'
}
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)
}
} else {
logger.info('Publishing to repo folder')
repository(url: 'file://localhost/' + project.file('repo').getAbsolutePath())
}
pom {
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 {
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'
}
licenses {
license {
name 'Forge Public License'
url 'https://raw.github.com/MinecraftForge/MinecraftForge/master/MinecraftForge-License.txt'
distribution 'repo'
}
}
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' }
}
}
}
}
}
Binary file not shown.
Submodule
+1
Submodule fml added at 7eb36a1481.
-11
View File
@@ -1,11 +0,0 @@
cd ..
rmdir /S /Q src
mkdir src
xcopy /Y /E src_work\* src\
xcopy /Y /E forge\forge_client\src\net\* src\minecraft\net
xcopy /Y /E forge\forge_common\net\* src\minecraft\net
xcopy /Y /E forge\forge_common\net\* src\minecraft_server\net
cmd /C recompile.bat
-19
View File
@@ -1,19 +0,0 @@
#!/bin/bash
pushd ..
rm -rf src
cp -a src_work src
rm -rf bin
popd
cp -a forge_client/src/net/* ../src/minecraft/net/
cp -a forge_common/net/* ../src/minecraft/net/
cp -a forge_common/net/* ../src/minecraft_server/net/
pushd ..
./recompile.sh
-1
View File
@@ -1 +0,0 @@
forge_client/src/net/minecraft/src/forge/
-1
View File
@@ -1 +0,0 @@
forge_common/net/minecraft/src/forge
-12
View File
@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="forge_common"/>
<classpathentry kind="src" path="minecraft"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="lib" path="../../jars/bin/jinput.jar"/>
<classpathentry kind="lib" path="../../jars/bin/lwjgl.jar"/>
<classpathentry kind="lib" path="../../jars/bin/lwjgl_util.jar"/>
<classpathentry kind="lib" path="../../jars/bin/minecraft.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
-29
View File
@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>forge_client</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
<linkedResources>
<link>
<name>forge_common</name>
<type>2</type>
<locationURI>PARENT-1-PROJECT_LOC/forge_common</locationURI>
</link>
<link>
<name>minecraft</name>
<type>2</type>
<locationURI>PARENT-1-WORKSPACE_LOC/src_work/minecraft</locationURI>
</link>
</linkedResources>
</projectDescription>
@@ -1,13 +0,0 @@
package net.minecraft.src.forge;
import java.util.ArrayList;
import java.util.List;
public class BlockTextureParticles {
public String texture;
public List effects;
public BlockTextureParticles(){
effects = new ArrayList();
}
}
@@ -1,52 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
import net.minecraft.src.Block;
import net.minecraft.src.ModLoader;
import net.minecraft.src.RenderBlocks;
import net.minecraft.src.Tessellator;
import org.lwjgl.opengl.GL11;
public class MinecraftForgeClient {
public static void beforeBlockRender(Block block, RenderBlocks renderblocks) {
if (block instanceof ITextureProvider
&& renderblocks.overrideBlockTexture == -1) {
Tessellator tessellator = Tessellator.instance;
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1F, 0.0F);
GL11.glBindTexture(3553 /* GL_TEXTURE_2D */, ModLoader
.getMinecraftInstance().renderEngine
.getTexture(((ITextureProvider) (block)).getTextureFile()));
}
}
public static void afterBlockRender(Block block, RenderBlocks renderblocks) {
if (block instanceof ITextureProvider
&& renderblocks.overrideBlockTexture == -1) {
Tessellator tessellator = Tessellator.instance;
tessellator.draw();
tessellator.startDrawingQuads();
GL11.glBindTexture(3553 /* GL_TEXTURE_2D */, ModLoader
.getMinecraftInstance().renderEngine
.getTexture("/terrain.png"));
}
}
public static void overrideTexture (Object o) {
if (o instanceof ITextureProvider) {
GL11.glBindTexture(3553 /* GL_TEXTURE_2D */, ModLoader
.getMinecraftInstance().renderEngine
.getTexture(((ITextureProvider) (o))
.getTextureFile()));
}
}
}
@@ -1,313 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.text.DateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.TreeMap;
import net.minecraft.src.Block;
/**
* This class offers advanced configurations capabilities, allowing to provide
* various categories for configuration variables.
*/
public class Configuration {
private boolean configBlocks[] = null;
public static final int GENERAL_PROPERTY = 0;
public static final int BLOCK_PROPERTY = 1;
public static final int ITEM_PROPERTY = 2;
File file;
public TreeMap<String, Property> blockProperties = new TreeMap<String, Property>();
public TreeMap<String, Property> itemProperties = new TreeMap<String, Property>();
public TreeMap<String, Property> generalProperties = new TreeMap<String, Property>();
/**
* Create a configuration file for the file given in parameter.
*/
public Configuration(File file) {
this.file = file;
}
/**
* Gets or create a block id property. If the block id property key is
* already in the configuration, then it will be used. Otherwise,
* defaultId will be used, except if already taken, in which case this
* will try to determine a free default id.
*/
public Property getOrCreateBlockIdProperty(String key, int defaultId) {
if (configBlocks == null) {
configBlocks = new boolean[Block.blocksList.length];
for (int i = 0; i < configBlocks.length; ++i) {
configBlocks[i] = false;
}
}
if (blockProperties.containsKey(key)) {
Property property = getOrCreateIntProperty(key,
Configuration.BLOCK_PROPERTY, defaultId);
configBlocks[Integer.parseInt(property.value)] = true;
return property;
} else {
Property property = new Property();
blockProperties.put(key, property);
property.name = key;
if (Block.blocksList[defaultId] == null
&& !configBlocks[defaultId]) {
property.value = Integer.toString(defaultId);
configBlocks[defaultId] = true;
return property;
} else {
for (int j = Block.blocksList.length - 1; j >= 0; --j) {
if (Block.blocksList[j] == null && !configBlocks[j]) {
property.value = Integer.toString(j);
configBlocks[j] = true;
return property;
}
}
throw new RuntimeException("No more block ids available for "
+ key);
}
}
}
public Property getOrCreateIntProperty(String key, int kind,
int defaultValue) {
Property prop = getOrCreateProperty(key, kind,
Integer.toString(defaultValue));
try {
Integer.parseInt(prop.value);
return prop;
} catch (NumberFormatException e) {
prop.value = Integer.toString(defaultValue);
return prop;
}
}
public Property getOrCreateBooleanProperty(String key, int kind,
boolean defaultValue) {
Property prop = getOrCreateProperty(key, kind,
Boolean.toString(defaultValue));
if ("true".equals(prop.value.toLowerCase())
|| "false".equals(prop.value.toLowerCase())) {
return prop;
} else {
prop.value = Boolean.toString(defaultValue);
return prop;
}
}
public Property getOrCreateProperty(String key, int kind,
String defaultValue) {
TreeMap<String, Property> source = null;
switch (kind) {
case GENERAL_PROPERTY:
source = generalProperties;
break;
case BLOCK_PROPERTY:
source = blockProperties;
break;
case ITEM_PROPERTY:
source = itemProperties;
break;
}
if (source.containsKey(key)) {
return source.get(key);
} else if (defaultValue != null) {
Property property = new Property();
source.put(key, property);
property.name = key;
property.value = defaultValue;
return property;
} else {
return null;
}
}
public void load() {
try {
if (file.getParentFile() != null) {
file.getParentFile().mkdirs();
}
if (!file.exists() && !file.createNewFile()) {
return;
}
if (file.canRead()) {
FileInputStream fileinputstream = new FileInputStream(file);
BufferedReader buffer = new BufferedReader(
new InputStreamReader(fileinputstream, "8859_1"));
String line;
TreeMap<String, Property> currentMap = null;
while (true) {
line = buffer.readLine();
if (line == null) {
break;
}
int nameStart = -1, nameEnd = -1;
boolean skip = false;
for (int i = 0; i < line.length() && !skip; ++i) {
if (Character.isLetterOrDigit(line.charAt(i))
|| line.charAt(i) == '.') {
if (nameStart == -1) {
nameStart = i;
}
nameEnd = i;
} else if (Character.isWhitespace(line.charAt(i))) {
// ignore space charaters
} else {
switch (line.charAt(i)) {
case '#':
skip = true;
continue;
case '{':
String scopeName = line.substring(nameStart,
nameEnd + 1);
if (scopeName.equals("general")) {
currentMap = generalProperties;
} else if (scopeName.equals("block")) {
currentMap = blockProperties;
} else if (scopeName.equals("item")) {
currentMap = itemProperties;
} else {
throw new RuntimeException(
"unknown section " + scopeName);
}
break;
case '}':
currentMap = null;
break;
case '=':
String propertyName = line.substring(nameStart,
nameEnd + 1);
if (currentMap == null) {
throw new RuntimeException("property "
+ propertyName + " has no scope");
}
Property prop = new Property();
prop.name = propertyName;
prop.value = line.substring(i + 1);
i = line.length();
currentMap.put(propertyName, prop);
break;
default:
throw new RuntimeException("unknown character "
+ line.charAt(i));
}
}
}
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void save() {
try {
if (file.getParentFile() != null) {
file.getParentFile().mkdirs();
}
if (!file.exists() && !file.createNewFile()) {
return;
}
if (file.canWrite()) {
FileOutputStream fileoutputstream = new FileOutputStream(file);
BufferedWriter buffer = new BufferedWriter(
new OutputStreamWriter(fileoutputstream, "8859_1"));
buffer.write("# Configuration file\r\n");
buffer.write("# Generated on "
+ DateFormat.getInstance().format(new Date()) + "\r\n");
buffer.write("\r\n");
buffer.write("###########\r\n");
buffer.write("# General #\r\n");
buffer.write("###########\r\n\r\n");
buffer.write("general {\r\n");
writeProperties(buffer, generalProperties.values());
buffer.write("}\r\n\r\n");
buffer.write("#########\r\n");
buffer.write("# Block #\r\n");
buffer.write("#########\r\n\r\n");
buffer.write("block {\r\n");
writeProperties(buffer, blockProperties.values());
buffer.write("}\r\n\r\n");
buffer.write("########\r\n");
buffer.write("# Item #\r\n");
buffer.write("########\r\n\r\n");
buffer.write("item {\r\n");
writeProperties(buffer, itemProperties.values());
buffer.write("}\r\n\r\n");
buffer.close();
fileoutputstream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void writeProperties(BufferedWriter buffer,
Collection<Property> props) throws IOException {
for (Property property : props) {
if (property.comment != null) {
buffer.write(" # " + property.comment + "\r\n");
}
buffer.write(" " + property.name + "=" + property.value);
buffer.write("\r\n");
}
}
}
@@ -1,23 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
import net.minecraft.src.ItemStack;
import net.minecraft.src.World;
public interface IBucketHandler {
/**
* This is called before Minecraft tries to fill a bucket with water or
* lava. If it returns a non-null result, then the filling process will
* be stopped and the empty bucket will be changed to the result of this
* subprogram.
*
* @see MinecraftForge#registerCustomBucketHander(IBucketHandler)
*/
public ItemStack fillCustomBucket(World w, int i, int j, int k);
}
@@ -1,27 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
import net.minecraft.src.Block;
import net.minecraft.src.IBlockAccess;
/**
* This interface is to be implemented by Block classes. It will override
* standard algorithms controlling connection between two blocks by redstone
*
* @see Block
*/
public interface IConnectRedstone {
/**
* When this returns false, the block at location i, j, k cannot make
* a redstone connection in the direction given in parameter, otherwise
* it can. Use to control which sides are inputs and outputs for redstone
* wires.
*/
public boolean canConnectRedstone(IBlockAccess iba, int i, int j, int k,
int dir);
}
@@ -1,23 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
import net.minecraft.src.Block;
import net.minecraft.src.ItemTool;
public interface IHarvestHandler {
/**
* Return true if the tool in parameter is known to be able to harvest
* the given block, false if this handler does not know of any particular
* harvesting. Other rules may activate the harvesting outside of this
* handler. This is typically used to add e.g. blocks only extracted by
* diamond pickaxe
*
* @see MinecraftForge#registerHarvestHandler(IHarvestHandler)
*/
public boolean canHarvestBlock(ItemTool item, Block block);
}
@@ -1,17 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
/** This interface is to be implemented by a Block class. Allows a block
* type to perform rendering in both render passes, in case some parts of the
* block are solid and others are transparent.
*/
public interface IMultipassRender {
/** Returns true when the block has things to render in this render
* pass.
*/
public boolean canRenderInPass(int n);
}
@@ -1,30 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
import net.minecraft.src.Block;
import net.minecraft.src.World;
/**
* This interface is to be implemented by block classes. It will allow a block
* to control how it can be replaced
*
* @see Block
*/
public interface IOverrideReplace {
/**
* Return true if this block has to take control over replacement, for
* the intended replacement given by the parameter bid. If false, then
* the block replacement will be prevented.
*/
public boolean canReplaceBlock(World world, int i, int j, int k, int bid);
/**
* Return the status of the actual replacement.
*/
public boolean getReplacedSuccess();
}
@@ -1,27 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
import net.minecraft.src.ItemArmor;
/**
* This interface is to be implemented by ItemArmor classes. It will allow to
* modify computation of damage and health loss. Computation will be called
* before the actual armor computation, which can then be cancelled.
*
* @see ItemArmor
*/
public interface ISpecialArmor {
/**
* This interface will adjust the amount of damage received by the entity.
*/
public int adjustArmorDamage (int damage);
/**
* When this return true, the regular armor computation will be cancelled
*/
public boolean allowRegularComputation ();
}
@@ -1,26 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
import net.minecraft.src.Block;
import net.minecraft.src.Entity;
import net.minecraft.src.World;
/**
* This interface is to be implemented by block classes. It will allow a block
* to control how it resists to explosion
*
* @see Block
*/
public interface ISpecialResistance {
/**
* Return the explosion resistance of the block located at position i, j,
* k, from an exploder explosing on src_x, src_y, src_z.
*/
public float getSpecialExplosionResistance(World world, int i, int j, int k,
double src_x, double src_y, double src_z, Entity exploder);
}
@@ -1,21 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
/**
* This interface has to be implemented either by an instance of Block or Item.
* It allow to use texture files different from terrain.png or items.png.
*/
public interface ITextureProvider {
/**
* This interface has to return the path to a file that is the same size as
* terrain.png, but not named terrain.png. It will be used instead of the
* regular terrain file to render blocks and items.
*/
public String getTextureFile();
}
@@ -1,28 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraft.src.World;
/**
* This interface is to be implemented by item classes. It will allow an item
* to perform a use before the block is activated.
*
* @see Item
*/
public interface IUseItemFirst {
/**
* This is called when the item is used, before the block is activated.
* Stop the computation when return true.
*/
public boolean onItemUseFirst(ItemStack ist,
EntityPlayer player, World world,
int i, int j, int k, int l);
}
@@ -1,75 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
import java.util.LinkedList;
import net.minecraft.src.BiomeGenBase;
import net.minecraft.src.Block;
import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraft.src.ItemTool;
import net.minecraft.src.World;
public class MinecraftForge {
private static LinkedList<IBucketHandler> bucketHandlers = new LinkedList<IBucketHandler>();
private static LinkedList<IHarvestHandler> harvestHandlers = new LinkedList<IHarvestHandler>();
/**
* Registers a new custom bucket handler.
*/
public static void registerCustomBucketHander(IBucketHandler handler) {
bucketHandlers.add(handler);
}
/**
* Registers a new harvest handler.
*/
public static void registerHarvestHandler(IHarvestHandler handler) {
harvestHandlers.add(handler);
}
/**
* This is not supposed to be called outside of Minecraft internals.
*/
public static ItemStack fillCustomBucket(World w, int i, int j, int k) {
for (IBucketHandler handler : bucketHandlers) {
ItemStack stack = handler.fillCustomBucket(w, i, j, k);
if (stack != null) {
return stack;
}
}
return null;
}
/**
* This is not supposed to be called outside of Minecraft internals.
*/
public static boolean canHarvestBlock(ItemTool item, Block block) {
for (IHarvestHandler handler : harvestHandlers) {
if (handler.canHarvestBlock(item, block)) {
return true;
}
}
return false;
}
/**
* Add a block to the list of blocks to which the pickaxe is know to be
* effective.
*/
public static void addPickaxeBlockEffectiveAgainst (Block block) {
((ItemTool) Item.pickaxeWood).addBlockEffectiveAgainst(block);
((ItemTool) Item.pickaxeStone).addBlockEffectiveAgainst(block);
((ItemTool) Item.pickaxeSteel).addBlockEffectiveAgainst(block);
((ItemTool) Item.pickaxeGold).addBlockEffectiveAgainst(block);
((ItemTool) Item.pickaxeDiamond).addBlockEffectiveAgainst(block);
}
}
@@ -1,12 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraft.src.forge;
public class Property {
public String name;
public String value;
public String comment;
}
-12
View File
@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="forge_common"/>
<classpathentry kind="src" path="minecraft_server"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="lib" path="../../jars/bin/jinput.jar"/>
<classpathentry kind="lib" path="../../jars/bin/lwjgl.jar"/>
<classpathentry kind="lib" path="../../jars/bin/lwjgl_util.jar"/>
<classpathentry kind="lib" path="../../jars/minecraft_server.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
-29
View File
@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>forge_server</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
<linkedResources>
<link>
<name>forge_common</name>
<type>2</type>
<locationURI>PARENT-1-PROJECT_LOC/forge_common</locationURI>
</link>
<link>
<name>minecraft_server</name>
<type>2</type>
<locationURI>PARENT-1-WORKSPACE_LOC/src_work/minecraft_server</locationURI>
</link>
</linkedResources>
</projectDescription>
-742
View File
@@ -1,742 +0,0 @@
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockRedstoneWire.java ../src_work/minecraft/net/minecraft/src/BlockRedstoneWire.java
--- ../src_base/minecraft/net/minecraft/src/BlockRedstoneWire.java 2011-07-29 16:35:27.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/BlockRedstoneWire.java 2011-07-31 21:44:50.000000000 -0400
@@ -3,6 +3,7 @@
// Decompiler options: packimports(3) braces deadcode
package net.minecraft.src;
+import net.minecraft.src.forge.*;
import java.util.*;
@@ -451,6 +452,10 @@
{
return false;
}
+ if (Block.blocksList[i1] instanceof IConnectRedstone) {
+ IConnectRedstone icr = (IConnectRedstone) Block.blocksList[i1];
+ return icr.canConnectRedstone(iblockaccess, i, j, k, l);
+ }
if(Block.blocksList[i1].canProvidePower())
{
return true;
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Chunk.java ../src_work/minecraft/net/minecraft/src/Chunk.java
--- ../src_base/minecraft/net/minecraft/src/Chunk.java 2011-07-29 16:35:26.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/Chunk.java 2011-07-31 21:44:50.000000000 -0400
@@ -3,6 +3,7 @@
// Decompiler options: packimports(3) braces deadcode
package net.minecraft.src;
+import net.minecraft.src.forge.*;
import java.io.PrintStream;
import java.util.*;
@@ -249,6 +250,13 @@
}
int l1 = xPosition * 16 + i;
int i2 = zPosition * 16 + k;
+
+ if (Block.blocksList[k1] instanceof IOverrideReplace) {
+ IOverrideReplace iovr = (IOverrideReplace) Block.blocksList[k1];
+ if (!iovr.canReplaceBlock(worldObj, l1, j, i2, l))
+ return iovr.getReplacedSuccess();
+ }
+
blocks[i << 11 | k << 7 | j] = (byte)(byte0 & 0xff);
if(k1 != 0 && !worldObj.multiplayerWorld)
{
@@ -292,6 +300,13 @@
}
int k1 = xPosition * 16 + i;
int l1 = zPosition * 16 + k;
+
+ if (Block.blocksList[j1] instanceof IOverrideReplace) {
+ IOverrideReplace iovr = (IOverrideReplace) Block.blocksList[j1];
+ if (!iovr.canReplaceBlock(worldObj, k1, j, l1, l))
+ return iovr.getReplacedSuccess();
+ }
+
blocks[i << 11 | k << 7 | j] = (byte)(byte0 & 0xff);
if(j1 != 0)
{
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/EffectRenderer.java ../src_work/minecraft/net/minecraft/src/EffectRenderer.java
--- ../src_base/minecraft/net/minecraft/src/EffectRenderer.java 2011-07-29 16:35:27.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/EffectRenderer.java 2011-07-31 21:44:50.000000000 -0400
@@ -7,6 +7,9 @@
import java.util.*;
import org.lwjgl.opengl.GL11;
+import net.minecraft.src.forge.BlockTextureParticles;
+import net.minecraft.src.forge.ITextureProvider;
+
// Referenced classes of package net.minecraft.src:
// EntityFX, Entity, MathHelper, RenderEngine,
// Tessellator, Block, EntityDiggingFX, World
@@ -16,6 +19,7 @@
public EffectRenderer(World world, RenderEngine renderengine)
{
+ effectList = new ArrayList();
fxLayers = new List[4];
rand = new Random();
if(world != null)
@@ -55,6 +59,18 @@
}
}
+ for (int x = 0; x < effectList.size(); x++) {
+ BlockTextureParticles entry = (BlockTextureParticles) effectList
+ .get(x);
+ for (int y = 0; y < entry.effects.size(); y++) {
+ EntityFX entityfx = (EntityFX) entry.effects.get(y);
+ if (entityfx.isDead) {
+ entry.effects.remove(y--);
+ }
+ }
+ if (effectList.size() == 0)
+ effectList.remove(x--);
+ }
}
@@ -93,11 +109,26 @@
for(int k = 0; k < fxLayers[i].size(); k++)
{
EntityFX entityfx = (EntityFX)fxLayers[i].get(k);
+ if(entityfx instanceof EntityDiggingFX) continue;
entityfx.renderParticle(tessellator, f, f1, f5, f2, f3, f4);
}
tessellator.draw();
}
+ Tessellator tessellator = Tessellator.instance;
+
+ for (int x = 0; x < effectList.size(); x++) {
+ BlockTextureParticles entry = (BlockTextureParticles) effectList
+ .get(x);
+ GL11.glBindTexture(3553 /* GL_TEXTURE_2D */,
+ renderer.getTexture(entry.texture));
+ tessellator.startDrawingQuads();
+ for (int y = 0; y < entry.effects.size(); y++) {
+ EntityFX entityfx = (EntityFX) entry.effects.get(y);
+ entityfx.renderParticle(tessellator, f, f1, f5, f2, f3, f4);
+ }
+ tessellator.draw();
+ }
}
@@ -124,6 +155,13 @@
{
fxLayers[i].clear();
}
+
+ for (int x = 0; x < effectList.size(); x++) {
+ BlockTextureParticles entry = (BlockTextureParticles) effectList
+ .get(x);
+ entry.effects.clear();
+ }
+ effectList.clear();
}
@@ -145,7 +183,12 @@
double d1 = (double)j + ((double)l1 + 0.5D) / (double)j1;
double d2 = (double)k + ((double)i2 + 0.5D) / (double)j1;
int j2 = rand.nextInt(6);
- addEffect((new EntityDiggingFX(worldObj, d, d1, d2, d - (double)i - 0.5D, d1 - (double)j - 0.5D, d2 - (double)k - 0.5D, block, j2, i1)).func_4041_a(i, j, k));
+ EntityDiggingFX dig_effect = new EntityDiggingFX(worldObj,
+ d, d1, d2, d - (double) i - 0.5D, d1 - (double) j
+ - 0.5D, d2 - (double) k - 0.5D, block, j2,
+ i1);
+ dig_effect.func_4041_a(i, j, k);
+ addDigParticleEffect(dig_effect, block);
}
}
@@ -190,16 +233,48 @@
{
d = (double)i + block.maxX + (double)f;
}
- addEffect((new EntityDiggingFX(worldObj, d, d1, d2, 0.0D, 0.0D, 0.0D, block, l, worldObj.getBlockMetadata(i, j, k))).func_4041_a(i, j, k).func_407_b(0.2F).func_405_d(0.6F));
+ EntityDiggingFX dig_effect = new EntityDiggingFX(worldObj, d, d1, d2,
+ 0.0D, 0.0D, 0.0D, block, l, worldObj.getBlockMetadata(i, j, k));
+ dig_effect.func_4041_a(i, j, k);
+ dig_effect.func_407_b(0.2F);
+ dig_effect.func_405_d(0.6F);
+ addDigParticleEffect(dig_effect, block);
}
public String getStatistics()
{
return (new StringBuilder()).append("").append(fxLayers[0].size() + fxLayers[1].size() + fxLayers[2].size()).toString();
}
+
+ public void addDigParticleEffect(EntityDiggingFX dig_effect, Block block) {
+ boolean added = false;
+ String comp;
+
+ if (block instanceof ITextureProvider) {
+ comp = ((ITextureProvider) block).getTextureFile();
+ } else {
+ comp = "/terrain.png";
+ }
+ for (int x = 0; x < effectList.size(); x++) {
+ BlockTextureParticles entry = (BlockTextureParticles) effectList
+ .get(x);
+ if (entry.texture.equals(comp)) {
+ entry.effects.add(dig_effect);
+ added = true;
+ }
+ }
+ if (!added) {
+ BlockTextureParticles entry = new BlockTextureParticles();
+ entry.texture = comp;
+ entry.effects.add(dig_effect);
+ effectList.add(entry);
+ }
+ addEffect(dig_effect);
+ }
protected World worldObj;
private List fxLayers[];
+ private List effectList;
private RenderEngine renderer;
private Random rand;
}
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/EntityPlayer.java ../src_work/minecraft/net/minecraft/src/EntityPlayer.java
--- ../src_base/minecraft/net/minecraft/src/EntityPlayer.java 2011-07-29 16:35:27.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/EntityPlayer.java 2011-07-31 21:44:50.000000000 -0400
@@ -6,6 +6,8 @@
import java.util.*;
+import net.minecraft.src.forge.ISpecialArmor;
+
// Referenced classes of package net.minecraft.src:
// EntityLiving, InventoryPlayer, ContainerPlayer, World,
// ChunkCoordinates, DataWatcher, Container, StatList,
@@ -477,6 +479,21 @@
protected void damageEntity(int i)
{
+ boolean doRegularComputation = true;
+ for (ItemStack stack : inventory.armorInventory) {
+ if (stack != null && stack.getItem() instanceof ISpecialArmor) {
+ ISpecialArmor armor = (ISpecialArmor) stack.getItem();
+
+ i = armor.adjustArmorDamage(i);
+ doRegularComputation = doRegularComputation
+ && armor.allowRegularComputation();
+ }
+ }
+
+ if (!doRegularComputation) {
+ super.damageEntity(i);
+ }
+
int j = 25 - inventory.getTotalArmorValue();
int k = i * j + damageRemainder;
inventory.damageArmor(i);
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Explosion.java ../src_work/minecraft/net/minecraft/src/Explosion.java
--- ../src_base/minecraft/net/minecraft/src/Explosion.java 2011-07-29 16:35:27.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/Explosion.java 2011-07-31 21:44:50.000000000 -0400
@@ -3,6 +3,7 @@
// Decompiler options: packimports(3) braces deadcode
package net.minecraft.src;
+import net.minecraft.src.forge.ISpecialResistance;
import java.util.*;
@@ -65,7 +66,17 @@
int i5 = worldObj.getBlockId(j4, k4, l4);
if(i5 > 0)
{
- f1 -= (Block.blocksList[i5].getExplosionResistance(exploder) + 0.3F) * f2;
+ if (Block.blocksList[i5] instanceof ISpecialResistance) {
+ ISpecialResistance isr = (ISpecialResistance) Block.blocksList[i5];
+ f1 -= (isr.getSpecialExplosionResistance(
+ worldObj, j4, k4, l4, explosionX,
+ explosionY, explosionZ, exploder) + 0.3F)
+ * f2;
+ } else {
+ f1 -= (Block.blocksList[i5]
+ .getExplosionResistance(exploder) + 0.3F)
+ * f2;
+ }
}
if(f1 > 0.0F)
{
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemBucket.java ../src_work/minecraft/net/minecraft/src/ItemBucket.java
--- ../src_base/minecraft/net/minecraft/src/ItemBucket.java 2011-07-29 16:35:27.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/ItemBucket.java 2011-07-31 21:44:50.000000000 -0400
@@ -6,6 +6,8 @@
import java.util.Random;
+import net.minecraft.src.forge.MinecraftForge;
+
// Referenced classes of package net.minecraft.src:
// Item, EntityPlayer, Vec3D, MathHelper,
// World, MovingObjectPosition, EnumMovingObjectType, Material,
@@ -55,6 +57,13 @@
}
if(isFull == 0)
{
+ ItemStack customBucket = MinecraftForge.fillCustomBucket(world,
+ i, j, k);
+
+ if (customBucket != null) {
+ return customBucket;
+ }
+
if(world.getBlockMaterial(i, j, k) == Material.water && world.getBlockMetadata(i, j, k) == 0)
{
world.setBlockWithNotify(i, j, k, 0);
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemPickaxe.java ../src_work/minecraft/net/minecraft/src/ItemPickaxe.java
--- ../src_base/minecraft/net/minecraft/src/ItemPickaxe.java 2011-07-29 16:35:26.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/ItemPickaxe.java 2011-07-31 21:44:50.000000000 -0400
@@ -4,6 +4,8 @@
package net.minecraft.src;
+import net.minecraft.src.forge.MinecraftForge;
+
// Referenced classes of package net.minecraft.src:
// ItemTool, Block, EnumToolMaterial, Material
@@ -42,6 +44,9 @@
{
return toolMaterial.getHarvestLevel() >= 2;
}
+ if (MinecraftForge.canHarvestBlock(this, block)) {
+ return true;
+ }
if(block.blockMaterial == Material.rock)
{
return true;
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemRenderer.java ../src_work/minecraft/net/minecraft/src/ItemRenderer.java
--- ../src_base/minecraft/net/minecraft/src/ItemRenderer.java 2011-07-29 16:35:27.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/ItemRenderer.java 2011-07-31 21:44:50.000000000 -0400
@@ -5,6 +5,8 @@
package net.minecraft.src;
import net.minecraft.client.Minecraft;
+import net.minecraft.src.forge.MinecraftForgeClient;
+
import org.lwjgl.opengl.GL11;
// Referenced classes of package net.minecraft.src:
@@ -34,15 +36,18 @@
if(itemstack.itemID < 256 && RenderBlocks.renderItemIn3d(Block.blocksList[itemstack.itemID].getRenderType()))
{
GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/terrain.png"));
+ MinecraftForgeClient.overrideTexture (Block.blocksList[itemstack.itemID]);
renderBlocksInstance.renderBlockOnInventory(Block.blocksList[itemstack.itemID], itemstack.getItemDamage(), entityliving.getEntityBrightness(1.0F));
} else
{
if(itemstack.itemID < 256)
{
GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/terrain.png"));
+ MinecraftForgeClient.overrideTexture (Block.blocksList[itemstack.itemID]);
} else
{
GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/gui/items.png"));
+ MinecraftForgeClient.overrideTexture (Item.itemsList[itemstack.itemID]);
}
Tessellator tessellator = Tessellator.instance;
int i = entityliving.getItemIcon(itemstack);
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemTool.java ../src_work/minecraft/net/minecraft/src/ItemTool.java
--- ../src_base/minecraft/net/minecraft/src/ItemTool.java 2011-07-29 16:35:27.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/ItemTool.java 2011-07-31 21:49:24.000000000 -0400
@@ -4,6 +4,7 @@
package net.minecraft.src;
+import java.util.Arrays;
// Referenced classes of package net.minecraft.src:
// Item, EnumToolMaterial, ItemStack, Block,
@@ -63,4 +64,11 @@
private float efficiencyOnProperMaterial;
private int damageVsEntity;
protected EnumToolMaterial toolMaterial;
+
+ public void addBlockEffectiveAgainst (Block block) {
+ blocksEffectiveAgainst = Arrays.copyOf(blocksEffectiveAgainst,
+ blocksEffectiveAgainst.length + 1);
+
+ blocksEffectiveAgainst [blocksEffectiveAgainst.length-1] = block;
+ }
}
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/PlayerController.java ../src_work/minecraft/net/minecraft/src/PlayerController.java
--- ../src_base/minecraft/net/minecraft/src/PlayerController.java 2011-07-29 16:35:27.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/PlayerController.java 2011-07-31 21:44:50.000000000 -0400
@@ -3,6 +3,7 @@
// Decompiler options: packimports(3) braces deadcode
package net.minecraft.src;
+import net.minecraft.src.forge.*;
import net.minecraft.client.Minecraft;
@@ -98,6 +99,12 @@
public boolean sendPlaceBlock(EntityPlayer entityplayer, World world, ItemStack itemstack, int i, int j, int k, int l)
{
+ if (itemstack != null && itemstack.getItem() instanceof IUseItemFirst) {
+ IUseItemFirst iuif = (IUseItemFirst) itemstack.getItem();
+ if (iuif.onItemUseFirst(itemstack, entityplayer, world, i, j, k, l)) {
+ return true;
+ }
+ }
int i1 = world.getBlockId(i, j, k);
if(i1 > 0 && Block.blocksList[i1].blockActivated(world, i, j, k, entityplayer))
{
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/RenderItem.java ../src_work/minecraft/net/minecraft/src/RenderItem.java
--- ../src_base/minecraft/net/minecraft/src/RenderItem.java 2011-07-29 16:35:27.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/RenderItem.java 2011-07-31 21:44:50.000000000 -0400
@@ -5,6 +5,9 @@
package net.minecraft.src;
import java.util.Random;
+
+import net.minecraft.src.forge.MinecraftForgeClient;
+
import org.lwjgl.opengl.GL11;
// Referenced classes of package net.minecraft.src:
@@ -51,6 +54,7 @@
{
GL11.glRotatef(f3, 0.0F, 1.0F, 0.0F);
loadTexture("/terrain.png");
+ MinecraftForgeClient.overrideTexture(Block.blocksList[itemstack.itemID]);
float f4 = 0.25F;
if(!Block.blocksList[itemstack.itemID].renderAsNormalBlock() && itemstack.itemID != Block.stairSingle.blockID && Block.blocksList[itemstack.itemID].getRenderType() != 16)
{
@@ -78,10 +82,12 @@
if(itemstack.itemID < 256)
{
loadTexture("/terrain.png");
+ MinecraftForgeClient.overrideTexture(Block.blocksList[itemstack.itemID]);
} else
{
loadTexture("/gui/items.png");
- }
+ MinecraftForgeClient.overrideTexture(Item.itemsList[itemstack.itemID]);
+ }
Tessellator tessellator = Tessellator.instance;
float f6 = (float)((i % 16) * 16 + 0) / 256F;
float f8 = (float)((i % 16) * 16 + 16) / 256F;
@@ -92,6 +98,7 @@
float f14 = 0.25F;
if(field_27004_a)
{
+
int k = Item.itemsList[itemstack.itemID].getColorFromDamage(itemstack.getItemDamage());
float f15 = (float)(k >> 16 & 0xff) / 255F;
float f17 = (float)(k >> 8 & 0xff) / 255F;
@@ -131,6 +138,7 @@
{
int j1 = i;
renderengine.bindTexture(renderengine.getTexture("/terrain.png"));
+ MinecraftForgeClient.overrideTexture (Block.blocksList[i]);
Block block = Block.blocksList[j1];
GL11.glPushMatrix();
GL11.glTranslatef(l - 2, i1 + 3, -3F);
@@ -159,9 +167,11 @@
if(i < 256)
{
renderengine.bindTexture(renderengine.getTexture("/terrain.png"));
+ MinecraftForgeClient.overrideTexture (Block.blocksList[i]);
} else
{
renderengine.bindTexture(renderengine.getTexture("/gui/items.png"));
+ MinecraftForgeClient.overrideTexture(Item.itemsList[i]);
}
int k1 = Item.itemsList[i].getColorFromDamage(j);
float f = (float)(k1 >> 16 & 0xff) / 255F;
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/WorldRenderer.java ../src_work/minecraft/net/minecraft/src/WorldRenderer.java
--- ../src_base/minecraft/net/minecraft/src/WorldRenderer.java 2011-07-29 16:35:27.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/WorldRenderer.java 2011-07-31 21:44:50.000000000 -0400
@@ -3,8 +3,12 @@
// Decompiler options: packimports(3) braces deadcode
package net.minecraft.src;
+import net.minecraft.src.forge.*;
import java.util.*;
+
+import net.minecraft.src.forge.MinecraftForgeClient;
+
import org.lwjgl.opengl.GL11;
// Referenced classes of package net.minecraft.src:
@@ -138,14 +142,27 @@
}
Block block = Block.blocksList[i3];
int j3 = block.getRenderBlockPass();
+
+ if (block instanceof IMultipassRender) {
+ if (j3 != i2) {
+ flag = true;
+ }
+ IMultipassRender impr = (IMultipassRender) block;
+ if (impr.canRenderInPass(i2)) {
+ j3 = i2;
+ }
+ }
+
if(j3 != i2)
{
flag = true;
continue;
}
if(j3 == i2)
- {
+ {
+ MinecraftForgeClient.beforeBlockRender(block, renderblocks);
flag1 |= renderblocks.renderBlockByRenderType(block, l2, j2, k2);
+ MinecraftForgeClient.afterBlockRender(block, renderblocks);
}
}
diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockRedstoneWire.java ../src_work/minecraft_server/net/minecraft/src/BlockRedstoneWire.java
--- ../src_base/minecraft_server/net/minecraft/src/BlockRedstoneWire.java 2011-07-29 16:35:28.000000000 -0400
+++ ../src_work/minecraft_server/net/minecraft/src/BlockRedstoneWire.java 2011-07-31 21:44:50.000000000 -0400
@@ -3,6 +3,7 @@
// Decompiler options: packimports(3) braces deadcode
package net.minecraft.src;
+import net.minecraft.src.forge.*;
import java.util.*;
@@ -413,6 +414,10 @@
{
return false;
}
+ if(Block.blocksList[i1] instanceof IConnectRedstone) {
+ IConnectRedstone icr=(IConnectRedstone)Block.blocksList[i1];
+ return icr.canConnectRedstone(iblockaccess,i,j,k,l);
+ }
if(Block.blocksList[i1].canProvidePower())
{
return true;
diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Chunk.java ../src_work/minecraft_server/net/minecraft/src/Chunk.java
--- ../src_base/minecraft_server/net/minecraft/src/Chunk.java 2011-07-29 16:35:28.000000000 -0400
+++ ../src_work/minecraft_server/net/minecraft/src/Chunk.java 2011-07-31 21:44:50.000000000 -0400
@@ -3,6 +3,7 @@
// Decompiler options: packimports(3) braces deadcode
package net.minecraft.src;
+import net.minecraft.src.forge.*;
import java.io.PrintStream;
import java.util.*;
@@ -227,6 +228,13 @@
}
int l1 = xPosition * 16 + i;
int i2 = zPosition * 16 + k;
+
+ if(Block.blocksList[k1] instanceof IOverrideReplace) {
+ IOverrideReplace iovr=(IOverrideReplace)Block.blocksList[k1];
+ if(!iovr.canReplaceBlock(worldObj,l1,j,i2,l))
+ return iovr.getReplacedSuccess();
+ }
+
blocks[i << 11 | k << 7 | j] = (byte)(byte0 & 0xff);
if(k1 != 0 && !worldObj.singleplayerWorld)
{
@@ -270,6 +278,13 @@
}
int k1 = xPosition * 16 + i;
int l1 = zPosition * 16 + k;
+
+ if(Block.blocksList[j1] instanceof IOverrideReplace) {
+ IOverrideReplace iovr=(IOverrideReplace)Block.blocksList[j1];
+ if(!iovr.canReplaceBlock(worldObj,k1,j,l1,l))
+ return iovr.getReplacedSuccess();
+ }
+
blocks[i << 11 | k << 7 | j] = (byte)(byte0 & 0xff);
if(j1 != 0)
{
diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/EntityPlayer.java ../src_work/minecraft_server/net/minecraft/src/EntityPlayer.java
--- ../src_base/minecraft_server/net/minecraft/src/EntityPlayer.java 2011-07-29 16:35:28.000000000 -0400
+++ ../src_work/minecraft_server/net/minecraft/src/EntityPlayer.java 2011-07-31 21:44:50.000000000 -0400
@@ -6,6 +6,8 @@
import java.util.*;
+import net.minecraft.src.forge.ISpecialArmor;
+
// Referenced classes of package net.minecraft.src:
// EntityLiving, InventoryPlayer, ContainerPlayer, World,
// ChunkCoordinates, DataWatcher, Container, StatList,
@@ -457,6 +459,21 @@
protected void damageEntity(int i)
{
+ boolean doRegularComputation = true;
+ for (ItemStack stack : inventory.armorInventory) {
+ if (stack != null && stack.getItem() instanceof ISpecialArmor) {
+ ISpecialArmor armor = (ISpecialArmor) stack.getItem();
+
+ i = armor.adjustArmorDamage(i);
+ doRegularComputation = doRegularComputation
+ && armor.allowRegularComputation();
+ }
+ }
+
+ if (!doRegularComputation) {
+ super.damageEntity(i);
+ }
+
int j = 25 - inventory.getTotalArmorValue();
int k = i * j + damageRemainder;
inventory.damageArmor(i);
diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Explosion.java ../src_work/minecraft_server/net/minecraft/src/Explosion.java
--- ../src_base/minecraft_server/net/minecraft/src/Explosion.java 2011-07-29 16:35:28.000000000 -0400
+++ ../src_work/minecraft_server/net/minecraft/src/Explosion.java 2011-07-31 21:44:50.000000000 -0400
@@ -3,6 +3,7 @@
// Decompiler options: packimports(3) braces deadcode
package net.minecraft.src;
+import net.minecraft.src.forge.ISpecialResistance;
import java.util.*;
@@ -65,7 +66,16 @@
int i5 = worldObj.getBlockId(j4, k4, l4);
if(i5 > 0)
{
- f1 -= (Block.blocksList[i5].getExplosionResistance(exploder) + 0.3F) * f2;
+ if(Block.blocksList[i5] instanceof ISpecialResistance) {
+ ISpecialResistance isr=(ISpecialResistance)
+ Block.blocksList[i5];
+ f1-=(isr.getSpecialExplosionResistance(
+ worldObj,j4,k4,l4,
+ explosionX,explosionY,explosionZ,
+ exploder) + 0.3F) * f2;
+ } else {
+ f1 -= (Block.blocksList[i5].getExplosionResistance(exploder) + 0.3F) * f2;
+ }
}
if(f1 > 0.0F)
{
diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemBucket.java ../src_work/minecraft_server/net/minecraft/src/ItemBucket.java
--- ../src_base/minecraft_server/net/minecraft/src/ItemBucket.java 2011-07-29 16:35:28.000000000 -0400
+++ ../src_work/minecraft_server/net/minecraft/src/ItemBucket.java 2011-07-31 21:44:50.000000000 -0400
@@ -6,6 +6,8 @@
import java.util.Random;
+import net.minecraft.src.forge.MinecraftForge;
+
// Referenced classes of package net.minecraft.src:
// Item, EntityPlayer, Vec3D, MathHelper,
// World, MovingObjectPosition, EnumMovingObjectType, Material,
@@ -55,6 +57,13 @@
}
if(isFull == 0)
{
+ ItemStack customBucket = MinecraftForge.fillCustomBucket(world,
+ i, j, k);
+
+ if (customBucket != null) {
+ return customBucket;
+ }
+
if(world.getBlockMaterial(i, j, k) == Material.water && world.getBlockMetadata(i, j, k) == 0)
{
world.setBlockWithNotify(i, j, k, 0);
diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemInWorldManager.java ../src_work/minecraft_server/net/minecraft/src/ItemInWorldManager.java
--- ../src_base/minecraft_server/net/minecraft/src/ItemInWorldManager.java 2011-07-29 16:35:28.000000000 -0400
+++ ../src_work/minecraft_server/net/minecraft/src/ItemInWorldManager.java 2011-07-31 21:44:50.000000000 -0400
@@ -3,6 +3,7 @@
// Decompiler options: packimports(3) braces deadcode
package net.minecraft.src;
+import net.minecraft.src.forge.*;
// Referenced classes of package net.minecraft.src:
@@ -145,6 +146,11 @@
public boolean activeBlockOrUseItem(EntityPlayer entityplayer, World world, ItemStack itemstack, int i, int j, int k, int l)
{
+ if(itemstack!=null && itemstack.getItem() instanceof IUseItemFirst) {
+ IUseItemFirst iuif=(IUseItemFirst)itemstack.getItem();
+ if(iuif.onItemUseFirst(itemstack,entityplayer,world,i,j,k,l))
+ return true;
+ }
int i1 = world.getBlockId(i, j, k);
if(i1 > 0 && Block.blocksList[i1].blockActivated(world, i, j, k, entityplayer))
{
diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemPickaxe.java ../src_work/minecraft_server/net/minecraft/src/ItemPickaxe.java
--- ../src_base/minecraft_server/net/minecraft/src/ItemPickaxe.java 2011-07-29 16:35:28.000000000 -0400
+++ ../src_work/minecraft_server/net/minecraft/src/ItemPickaxe.java 2011-07-31 21:44:50.000000000 -0400
@@ -4,6 +4,8 @@
package net.minecraft.src;
+import net.minecraft.src.forge.MinecraftForge;
+
// Referenced classes of package net.minecraft.src:
// ItemTool, Block, EnumToolMaterial, Material
@@ -42,6 +44,9 @@
{
return toolMaterial.getHarvestLevel() >= 2;
}
+ if (MinecraftForge.canHarvestBlock(this, block)) {
+ return true;
+ }
if(block.blockMaterial == Material.rock)
{
return true;
diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemTool.java ../src_work/minecraft_server/net/minecraft/src/ItemTool.java
--- ../src_base/minecraft_server/net/minecraft/src/ItemTool.java 2011-07-29 16:35:28.000000000 -0400
+++ ../src_work/minecraft_server/net/minecraft/src/ItemTool.java 2011-07-31 21:49:37.000000000 -0400
@@ -4,6 +4,8 @@
package net.minecraft.src;
+import java.util.Arrays;
+
// Referenced classes of package net.minecraft.src:
// Item, EnumToolMaterial, ItemStack, Block,
@@ -58,4 +60,11 @@
private float efficiencyOnProperMaterial;
private int damageVsEntity;
protected EnumToolMaterial toolMaterial;
+
+ public void addBlockEffectiveAgainst (Block block) {
+ blocksEffectiveAgainst = Arrays.copyOf(blocksEffectiveAgainst,
+ blocksEffectiveAgainst.length + 1);
+
+ blocksEffectiveAgainst [blocksEffectiveAgainst.length-1] = block;
+ }
}
diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/PlayerInstance.java ../src_work/minecraft_server/net/minecraft/src/PlayerInstance.java
--- ../src_base/minecraft_server/net/minecraft/src/PlayerInstance.java 2011-07-29 16:35:28.000000000 -0400
+++ ../src_work/minecraft_server/net/minecraft/src/PlayerInstance.java 2011-07-31 21:44:50.000000000 -0400
@@ -169,12 +169,11 @@
sendPacketToPlayersInInstance(new Packet52MultiBlockChange(chunkX, chunkZ, blocksToUpdate, numBlocksToUpdate, worldserver));
for(int k = 0; k < numBlocksToUpdate; k++)
{
- int j1 = chunkX * 16 + (numBlocksToUpdate >> 12 & 0xf);
- int i2 = numBlocksToUpdate & 0xff;
- int k2 = chunkZ * 16 + (numBlocksToUpdate >> 8 & 0xf);
+ int j1 = chunkX * 16 + (blocksToUpdate[k] >> 12 & 0xf);
+ int i2 = blocksToUpdate[k] & 0xff;
+ int k2 = chunkZ * 16 + (blocksToUpdate[k] >> 8 & 0xf);
if(Block.isBlockContainer[worldserver.getBlockId(j1, i2, k2)])
{
- System.out.println("Sending!");
updateTileEntity(worldserver.getBlockTileEntity(j1, i2, k2));
}
}
-59
View File
@@ -1,59 +0,0 @@
diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/server/MinecraftServer.java ../src_work/minecraft_server/net/minecraft/server/MinecraftServer.java
--- ../src_base/minecraft_server/net/minecraft/server/MinecraftServer.java 2011-07-17 00:28:07.755771900 +0200
+++ ../src_work/minecraft_server/net/minecraft/server/MinecraftServer.java 2011-07-17 00:28:09.485870900 +0200
@@ -333,41 +333,22 @@
}
finally
{
- System.exit(0);
+ try
+ {
+ stopServer();
+ serverStopped = true;
+ }
+ catch(Throwable throwable2)
+ {
+ throwable2.printStackTrace();
+ }
+ finally
+ {
+ System.exit(0);
+ }
}
- break MISSING_BLOCK_LABEL_350;
- }
- try
- {
- stopServer();
- serverStopped = true;
- }
- catch(Throwable throwable)
- {
- throwable.printStackTrace();
- }
- finally
- {
- System.exit(0);
- }
- break MISSING_BLOCK_LABEL_350;
- Exception exception2;
- exception2;
- try
- {
- stopServer();
- serverStopped = true;
- }
- catch(Throwable throwable3)
- {
- throwable3.printStackTrace();
- }
- finally
- {
- System.exit(0);
- }
- throw exception2;
}
+}
private void doTick()
{
-63
View File
@@ -1,63 +0,0 @@
version=$1
build_dir=`pwd`
dir=`pwd`/../forge-$version
function remove_svn () {
(
cd $1
if [ -d .svn ]; then
rm -rf .svn
fi
for j in `ls`
do
if [ -d $j ]; then
remove_svn $j
fi
done
)
}
function package_all () {
qual=$1
zip -r $dir/minecraftforge$qual-$version.zip \
*.class \
forge
}
cd ../reobf
remove_svn .
rm -rf $dir
mkdir $dir
cd minecraft
package_all "-client"
cd ../minecraft_server
package_all "-server"
cd ../..
rm -rf reobf
cd $build_dir
mkdir src
mkdir src/minecraft
mkdir src/minecraft_server
cp -r forge_client/src/* src/minecraft
cp -r forge_server/src/* src/minecraft_server
cp -r forge_common/* src/minecraft
cp -r forge_common/* src/minecraft_server
cp minecraft.patch src
cd src
remove_svn .
cd ..
zip -r $dir/minecraftforge-src-$version.zip src doc
rm -rf src
-13
View File
@@ -1,13 +0,0 @@
cmd /C build.bat
cd ..
cmd /C reobfuscate.bat
set PATH=E:\cygwin\bin;%PATH%
cd forge
sh package.sh 1.0.0
pause
-25
View File
@@ -1,25 +0,0 @@
set CYGWIN=E:\cygwin\bin
cd ..
rmdir /S /Q src
IF EXIST src_base (
move src_base src
rmdir /S /Q src_work
) ELSE (
cmd /C decompile.bat
cd src
%CYGWIN%\patch -u -p2 < ..\forge\modLoaderMP.patch
cd ..
cmd /C recompile.bat
cmd /C updatemd5.bat
)
mkdir src_base
mkdir src_work
xcopy /Y /E src\* src_base
xcopy /Y /E src\* src_work
cd src_work
%CYGWIN%\patch -u -p2 < ..\forge\minecraft.patch
pause
-5
View File
@@ -1,5 +0,0 @@
rm minecraft.patch
touch minecraft.patch
diff -u ../src_base ../src_work -r --strip-trailing-cr | tr -d '\r' \
>> minecraft.patch
Vendored Executable
+164
View File
@@ -0,0 +1,164 @@
#!/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/fml/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 "$@"
Vendored
+90
View File
@@ -0,0 +1,90 @@
@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%\fml\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
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,73 @@
--- ../src-base/minecraft/net/minecraft/block/BlockBush.java
+++ ../src-work/minecraft/net/minecraft/block/BlockBush.java
@@ -6,8 +6,13 @@
import net.minecraft.init.Blocks;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
+import net.minecraft.world.IBlockAccess;
+import net.minecraftforge.common.EnumPlantType;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.common.IPlantable;
+import static net.minecraftforge.common.EnumPlantType.*;
-public class BlockBush extends Block
+public class BlockBush extends Block implements IPlantable
{
private static final String __OBFID = "CL_00000208";
@@ -27,7 +32,7 @@
public boolean func_149742_c(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
{
- return super.func_149742_c(p_149742_1_, p_149742_2_, p_149742_3_, p_149742_4_) && this.func_149854_a(p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_ - 1, p_149742_4_));
+ return super.func_149742_c(p_149742_1_, p_149742_2_, p_149742_3_, p_149742_4_) && this.func_149718_j(p_149742_1_, p_149742_2_, p_149742_3_, p_149742_4_);
}
protected boolean func_149854_a(Block p_149854_1_)
@@ -57,7 +62,7 @@
public boolean func_149718_j(World p_149718_1_, int p_149718_2_, int p_149718_3_, int p_149718_4_)
{
- return this.func_149854_a(p_149718_1_.func_147439_a(p_149718_2_, p_149718_3_ - 1, p_149718_4_));
+ return p_149718_1_.func_147439_a(p_149718_2_, p_149718_3_ - 1, p_149718_4_).canSustainPlant(p_149718_1_, p_149718_2_, p_149718_3_ - 1, p_149718_4_, ForgeDirection.UP, this);
}
public AxisAlignedBB func_149668_a(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_)
@@ -79,4 +84,37 @@
{
return 1;
}
+
+ @Override
+ public EnumPlantType getPlantType(IBlockAccess world, int x, int y, int z)
+ {
+ if (this == Blocks.field_150464_aj) return Crop;
+ if (this == Blocks.field_150459_bM) return Crop;
+ if (this == Blocks.field_150469_bN) return Crop;
+ if (this == Blocks.field_150394_bc) return Crop;
+ if (this == Blocks.field_150393_bb) return Crop;
+ if (this == Blocks.field_150330_I) return Desert;
+ if (this == Blocks.field_150392_bi) return Water;
+ if (this == Blocks.field_150337_Q) return Cave;
+ if (this == Blocks.field_150338_P) return Cave;
+ if (this == Blocks.field_150388_bm) return Nether;
+ if (this == Blocks.field_150345_g) return Plains;
+ if (this == Blocks.field_150329_H) return Plains;
+ if (this == Blocks.field_150398_cm) return Plains;
+ if (this == Blocks.field_150328_O) return Plains;
+ if (this == Blocks.field_150327_N) return Plains;
+ return Plains;
+ }
+
+ @Override
+ public Block getPlant(IBlockAccess world, int x, int y, int z)
+ {
+ return this;
+ }
+
+ @Override
+ public int getPlantMetadata(IBlockAccess world, int x, int y, int z)
+ {
+ return world.func_72805_g(x, y, z);
+ }
}
@@ -0,0 +1,100 @@
--- ../src-base/minecraft/net/minecraft/block/BlockButton.java
+++ ../src-work/minecraft/net/minecraft/block/BlockButton.java
@@ -14,6 +14,9 @@
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+import static net.minecraftforge.common.util.ForgeDirection.*;
+
public abstract class BlockButton extends Block
{
private final boolean field_150047_a;
@@ -49,12 +52,19 @@
public boolean func_149707_d(World p_149707_1_, int p_149707_2_, int p_149707_3_, int p_149707_4_, int p_149707_5_)
{
- return p_149707_5_ == 2 && p_149707_1_.func_147439_a(p_149707_2_, p_149707_3_, p_149707_4_ + 1).func_149721_r() ? true : (p_149707_5_ == 3 && p_149707_1_.func_147439_a(p_149707_2_, p_149707_3_, p_149707_4_ - 1).func_149721_r() ? true : (p_149707_5_ == 4 && p_149707_1_.func_147439_a(p_149707_2_ + 1, p_149707_3_, p_149707_4_).func_149721_r() ? true : p_149707_5_ == 5 && p_149707_1_.func_147439_a(p_149707_2_ - 1, p_149707_3_, p_149707_4_).func_149721_r()));
+ ForgeDirection dir = ForgeDirection.getOrientation(p_149707_5_);
+ return (dir == NORTH && p_149707_1_.isSideSolid(p_149707_2_, p_149707_3_, p_149707_4_ + 1, NORTH)) ||
+ (dir == SOUTH && p_149707_1_.isSideSolid(p_149707_2_, p_149707_3_, p_149707_4_ - 1, SOUTH)) ||
+ (dir == WEST && p_149707_1_.isSideSolid(p_149707_2_ + 1, p_149707_3_, p_149707_4_, WEST)) ||
+ (dir == EAST && p_149707_1_.isSideSolid(p_149707_2_ - 1, p_149707_3_, p_149707_4_, EAST));
}
public boolean func_149742_c(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
{
- return p_149742_1_.func_147439_a(p_149742_2_ - 1, p_149742_3_, p_149742_4_).func_149721_r() ? true : (p_149742_1_.func_147439_a(p_149742_2_ + 1, p_149742_3_, p_149742_4_).func_149721_r() ? true : (p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_, p_149742_4_ - 1).func_149721_r() ? true : p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_, p_149742_4_ + 1).func_149721_r()));
+ return (p_149742_1_.isSideSolid(p_149742_2_ - 1, p_149742_3_, p_149742_4_, EAST)) ||
+ (p_149742_1_.isSideSolid(p_149742_2_ + 1, p_149742_3_, p_149742_4_, WEST)) ||
+ (p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_, p_149742_4_ - 1, SOUTH)) ||
+ (p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_, p_149742_4_ + 1, NORTH));
}
public int func_149660_a(World p_149660_1_, int p_149660_2_, int p_149660_3_, int p_149660_4_, int p_149660_5_, float p_149660_6_, float p_149660_7_, float p_149660_8_, int p_149660_9_)
@@ -63,19 +73,21 @@
int k1 = j1 & 8;
j1 &= 7;
- if (p_149660_5_ == 2 && p_149660_1_.func_147439_a(p_149660_2_, p_149660_3_, p_149660_4_ + 1).func_149721_r())
+ ForgeDirection dir = ForgeDirection.getOrientation(p_149660_5_);
+
+ if (dir == NORTH && p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_, p_149660_4_ + 1, NORTH))
{
j1 = 4;
}
- else if (p_149660_5_ == 3 && p_149660_1_.func_147439_a(p_149660_2_, p_149660_3_, p_149660_4_ - 1).func_149721_r())
+ else if (dir == SOUTH && p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_, p_149660_4_ - 1, SOUTH))
{
j1 = 3;
}
- else if (p_149660_5_ == 4 && p_149660_1_.func_147439_a(p_149660_2_ + 1, p_149660_3_, p_149660_4_).func_149721_r())
+ else if (dir == WEST && p_149660_1_.isSideSolid(p_149660_2_ + 1, p_149660_3_, p_149660_4_, WEST))
{
j1 = 2;
}
- else if (p_149660_5_ == 5 && p_149660_1_.func_147439_a(p_149660_2_ - 1, p_149660_3_, p_149660_4_).func_149721_r())
+ else if (dir == EAST && p_149660_1_.isSideSolid(p_149660_2_ - 1, p_149660_3_, p_149660_4_, EAST))
{
j1 = 1;
}
@@ -89,7 +101,11 @@
private int func_150045_e(World p_150045_1_, int p_150045_2_, int p_150045_3_, int p_150045_4_)
{
- return p_150045_1_.func_147439_a(p_150045_2_ - 1, p_150045_3_, p_150045_4_).func_149721_r() ? 1 : (p_150045_1_.func_147439_a(p_150045_2_ + 1, p_150045_3_, p_150045_4_).func_149721_r() ? 2 : (p_150045_1_.func_147439_a(p_150045_2_, p_150045_3_, p_150045_4_ - 1).func_149721_r() ? 3 : (p_150045_1_.func_147439_a(p_150045_2_, p_150045_3_, p_150045_4_ + 1).func_149721_r() ? 4 : 1)));
+ if (p_150045_1_.isSideSolid(p_150045_2_ - 1, p_150045_3_, p_150045_4_, EAST)) return 1;
+ if (p_150045_1_.isSideSolid(p_150045_2_ + 1, p_150045_3_, p_150045_4_, WEST)) return 2;
+ if (p_150045_1_.isSideSolid(p_150045_2_, p_150045_3_, p_150045_4_ - 1, SOUTH)) return 3;
+ if (p_150045_1_.isSideSolid(p_150045_2_, p_150045_3_, p_150045_4_ + 1, NORTH)) return 4;
+ return 1;
}
public void func_149695_a(World p_149695_1_, int p_149695_2_, int p_149695_3_, int p_149695_4_, Block p_149695_5_)
@@ -99,22 +115,22 @@
int l = p_149695_1_.func_72805_g(p_149695_2_, p_149695_3_, p_149695_4_) & 7;
boolean flag = false;
- if (!p_149695_1_.func_147439_a(p_149695_2_ - 1, p_149695_3_, p_149695_4_).func_149721_r() && l == 1)
+ if (!p_149695_1_.isSideSolid(p_149695_2_ - 1, p_149695_3_, p_149695_4_, EAST) && l == 1)
{
flag = true;
}
- if (!p_149695_1_.func_147439_a(p_149695_2_ + 1, p_149695_3_, p_149695_4_).func_149721_r() && l == 2)
+ if (!p_149695_1_.isSideSolid(p_149695_2_ + 1, p_149695_3_, p_149695_4_, WEST) && l == 2)
{
flag = true;
}
- if (!p_149695_1_.func_147439_a(p_149695_2_, p_149695_3_, p_149695_4_ - 1).func_149721_r() && l == 3)
+ if (!p_149695_1_.isSideSolid(p_149695_2_, p_149695_3_, p_149695_4_ - 1, SOUTH) && l == 3)
{
flag = true;
}
- if (!p_149695_1_.func_147439_a(p_149695_2_, p_149695_3_, p_149695_4_ + 1).func_149721_r() && l == 4)
+ if (!p_149695_1_.isSideSolid(p_149695_2_, p_149695_3_, p_149695_4_ + 1, NORTH) && l == 4)
{
flag = true;
}
@@ -0,0 +1,49 @@
--- ../src-base/minecraft/net/minecraft/block/BlockCactus.java
+++ ../src-work/minecraft/net/minecraft/block/BlockCactus.java
@@ -11,9 +11,13 @@
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource;
import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.EnumPlantType;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.common.IPlantable;
-public class BlockCactus extends Block
+public class BlockCactus extends Block implements IPlantable
{
@SideOnly(Side.CLIENT)
private IIcon field_150041_a;
@@ -125,7 +129,7 @@
else
{
Block block = p_149718_1_.func_147439_a(p_149718_2_, p_149718_3_ - 1, p_149718_4_);
- return block == Blocks.field_150434_aF || block == Blocks.field_150354_m;
+ return block.canSustainPlant(p_149718_1_, p_149718_2_, p_149718_3_ - 1, p_149718_4_, ForgeDirection.UP, this);
}
}
@@ -141,4 +145,22 @@
this.field_150041_a = p_149651_1_.func_94245_a(this.func_149641_N() + "_top");
this.field_150040_b = p_149651_1_.func_94245_a(this.func_149641_N() + "_bottom");
}
+
+ @Override
+ public EnumPlantType getPlantType(IBlockAccess world, int x, int y, int z)
+ {
+ return EnumPlantType.Desert;
+ }
+
+ @Override
+ public Block getPlant(IBlockAccess world, int x, int y, int z)
+ {
+ return this;
+ }
+
+ @Override
+ public int getPlantMetadata(IBlockAccess world, int x, int y, int z)
+ {
+ return -1;
+ }
}
@@ -0,0 +1,44 @@
--- ../src-base/minecraft/net/minecraft/block/BlockChest.java
+++ ../src-work/minecraft/net/minecraft/block/BlockChest.java
@@ -23,6 +23,8 @@
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import static net.minecraftforge.common.util.ForgeDirection.*;
+
public class BlockChest extends BlockContainer
{
private final Random field_149955_b = new Random();
@@ -407,7 +409,7 @@
{
return null;
}
- else if (p_149951_1_.func_147439_a(p_149951_2_, p_149951_3_ + 1, p_149951_4_).func_149721_r())
+ else if (p_149951_1_.isSideSolid(p_149951_2_, p_149951_3_ + 1, p_149951_4_, DOWN))
{
return null;
}
@@ -415,19 +417,19 @@
{
return null;
}
- else if (p_149951_1_.func_147439_a(p_149951_2_ - 1, p_149951_3_, p_149951_4_) == this && (p_149951_1_.func_147439_a(p_149951_2_ - 1, p_149951_3_ + 1, p_149951_4_).func_149721_r() || func_149953_o(p_149951_1_, p_149951_2_ - 1, p_149951_3_, p_149951_4_)))
+ else if (p_149951_1_.func_147439_a(p_149951_2_ - 1, p_149951_3_, p_149951_4_) == this && (p_149951_1_.isSideSolid(p_149951_2_ - 1, p_149951_3_ + 1, p_149951_4_, DOWN) || func_149953_o(p_149951_1_, p_149951_2_ - 1, p_149951_3_, p_149951_4_)))
{
return null;
}
- else if (p_149951_1_.func_147439_a(p_149951_2_ + 1, p_149951_3_, p_149951_4_) == this && (p_149951_1_.func_147439_a(p_149951_2_ + 1, p_149951_3_ + 1, p_149951_4_).func_149721_r() || func_149953_o(p_149951_1_, p_149951_2_ + 1, p_149951_3_, p_149951_4_)))
+ else if (p_149951_1_.func_147439_a(p_149951_2_ + 1, p_149951_3_, p_149951_4_) == this && (p_149951_1_.isSideSolid(p_149951_2_ + 1, p_149951_3_ + 1, p_149951_4_, DOWN) || func_149953_o(p_149951_1_, p_149951_2_ + 1, p_149951_3_, p_149951_4_)))
{
return null;
}
- else if (p_149951_1_.func_147439_a(p_149951_2_, p_149951_3_, p_149951_4_ - 1) == this && (p_149951_1_.func_147439_a(p_149951_2_, p_149951_3_ + 1, p_149951_4_ - 1).func_149721_r() || func_149953_o(p_149951_1_, p_149951_2_, p_149951_3_, p_149951_4_ - 1)))
+ else if (p_149951_1_.func_147439_a(p_149951_2_, p_149951_3_, p_149951_4_ - 1) == this && (p_149951_1_.isSideSolid(p_149951_2_, p_149951_3_ + 1, p_149951_4_ - 1, DOWN) || func_149953_o(p_149951_1_, p_149951_2_, p_149951_3_, p_149951_4_ - 1)))
{
return null;
}
- else if (p_149951_1_.func_147439_a(p_149951_2_, p_149951_3_, p_149951_4_ + 1) == this && (p_149951_1_.func_147439_a(p_149951_2_, p_149951_3_ + 1, p_149951_4_ + 1).func_149721_r() || func_149953_o(p_149951_1_, p_149951_2_, p_149951_3_, p_149951_4_ + 1)))
+ else if (p_149951_1_.func_147439_a(p_149951_2_, p_149951_3_, p_149951_4_ + 1) == this && (p_149951_1_.isSideSolid(p_149951_2_, p_149951_3_ + 1, p_149951_4_ + 1, DOWN) || func_149953_o(p_149951_1_, p_149951_2_, p_149951_3_, p_149951_4_ + 1)))
{
return null;
}
@@ -0,0 +1,46 @@
--- ../src-base/minecraft/net/minecraft/block/BlockCocoa.java
+++ ../src-work/minecraft/net/minecraft/block/BlockCocoa.java
@@ -2,6 +2,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.ArrayList;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -160,6 +161,13 @@
public void func_149690_a(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_)
{
+ super.func_149690_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, p_149690_6_, p_149690_7_);
+ }
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int p_149690_5_, int fortune)
+ {
+ ArrayList<ItemStack> dropped = super.getDrops(world, x, y, z, p_149690_5_, fortune);
int j1 = func_149987_c(p_149690_5_);
byte b0 = 1;
@@ -170,8 +178,9 @@
for (int k1 = 0; k1 < b0; ++k1)
{
- this.func_149642_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, new ItemStack(Items.field_151100_aR, 1, 3));
+ dropped.add(new ItemStack(Items.field_151100_aR, 1, 3));
}
+ return dropped;
}
@SideOnly(Side.CLIENT)
@@ -216,4 +225,10 @@
++j1;
p_149853_1_.func_72921_c(p_149853_3_, p_149853_4_, p_149853_5_, j1 << 2 | i1, 2);
}
+
+ @Override
+ public Item func_149650_a(int par1, Random par2Random, int par3)
+ {
+ return null;
+ }
}
@@ -0,0 +1,79 @@
--- ../src-base/minecraft/net/minecraft/block/BlockCrops.java
+++ ../src-work/minecraft/net/minecraft/block/BlockCrops.java
@@ -2,6 +2,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.ArrayList;
import java.util.Random;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
@@ -12,6 +13,7 @@
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
public class BlockCrops extends BlockBush implements IGrowable
{
@@ -89,11 +91,11 @@
{
float f1 = 0.0F;
- if (p_149864_1_.func_147439_a(l, p_149864_3_ - 1, i1) == Blocks.field_150458_ak)
+ if (p_149864_1_.func_147439_a(l, p_149864_3_ - 1, i1).canSustainPlant(p_149864_1_, l, p_149864_3_ - 1, i1, ForgeDirection.UP, this))
{
f1 = 1.0F;
- if (p_149864_1_.func_72805_g(l, p_149864_3_ - 1, i1) > 0)
+ if (p_149864_1_.func_147439_a(l, p_149864_3_ - 1, i1).isFertile(p_149864_1_, l, p_149864_3_ - 1, i1))
{
f1 = 3.0F;
}
@@ -145,22 +147,6 @@
public void func_149690_a(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_)
{
super.func_149690_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, p_149690_6_, 0);
-
- if (!p_149690_1_.field_72995_K)
- {
- if (p_149690_5_ >= 7)
- {
- int j1 = 3 + p_149690_7_;
-
- for (int k1 = 0; k1 < j1; ++k1)
- {
- if (p_149690_1_.field_73012_v.nextInt(15) <= p_149690_5_)
- {
- this.func_149642_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, new ItemStack(this.func_149866_i(), 1, 0));
- }
- }
- }
- }
}
public Item func_149650_a(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
@@ -204,4 +190,23 @@
{
this.func_149863_m(p_149853_1_, p_149853_3_, p_149853_4_, p_149853_5_);
}
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune)
+ {
+ ArrayList<ItemStack> ret = super.getDrops(world, x, y, z, metadata, fortune);
+
+ if (metadata >= 7)
+ {
+ for (int i = 0; i < 3 + fortune; ++i)
+ {
+ if (world.field_73012_v.nextInt(15) <= metadata)
+ {
+ ret.add(new ItemStack(this.func_149866_i(), 1, 0));
+ }
+ }
+ }
+
+ return ret;
+ }
}
@@ -0,0 +1,45 @@
--- ../src-base/minecraft/net/minecraft/block/BlockDeadBush.java
+++ ../src-work/minecraft/net/minecraft/block/BlockDeadBush.java
@@ -1,5 +1,7 @@
package net.minecraft.block;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
@@ -8,9 +10,11 @@
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.StatList;
+import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.IShearable;
-public class BlockDeadBush extends BlockBush
+public class BlockDeadBush extends BlockBush implements IShearable
{
private static final String __OBFID = "CL_00000224";
@@ -33,14 +37,15 @@
public void func_149636_a(World p_149636_1_, EntityPlayer p_149636_2_, int p_149636_3_, int p_149636_4_, int p_149636_5_, int p_149636_6_)
{
- if (!p_149636_1_.field_72995_K && p_149636_2_.func_71045_bC() != null && p_149636_2_.func_71045_bC().func_77973_b() == Items.field_151097_aZ)
{
- p_149636_2_.func_71064_a(StatList.field_75934_C[Block.func_149682_b(this)], 1);
- this.func_149642_a(p_149636_1_, p_149636_3_, p_149636_4_, p_149636_5_, new ItemStack(Blocks.field_150330_I, 1, p_149636_6_));
- }
- else
- {
super.func_149636_a(p_149636_1_, p_149636_2_, p_149636_3_, p_149636_4_, p_149636_5_, p_149636_6_);
}
}
+
+ @Override public boolean isShearable(ItemStack item, IBlockAccess world, int x, int y, int z) { return true; }
+ @Override
+ public ArrayList<ItemStack> onSheared(ItemStack item, IBlockAccess world, int x, int y, int z, int fortune)
+ {
+ return new ArrayList<ItemStack>(Arrays.asList(new ItemStack(Blocks.field_150330_I, 1, world.func_72805_g(x, y, z))));
+ }
}
@@ -0,0 +1,20 @@
--- ../src-base/minecraft/net/minecraft/block/BlockDoor.java
+++ ../src-work/minecraft/net/minecraft/block/BlockDoor.java
@@ -249,7 +249,7 @@
{
if (this.field_149764_J == Material.field_151573_f)
{
- return true;
+ return false; //Allow items to interact with the door
}
else
{
@@ -367,7 +367,7 @@
public boolean func_149742_c(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
{
- return p_149742_3_ >= 255 ? false : World.func_147466_a(p_149742_1_, p_149742_2_, p_149742_3_ - 1, p_149742_4_) && super.func_149742_c(p_149742_1_, p_149742_2_, p_149742_3_, p_149742_4_) && super.func_149742_c(p_149742_1_, p_149742_2_, p_149742_3_ + 1, p_149742_4_);
+ return p_149742_3_ >= p_149742_1_.func_72800_K() - 1 ? false : World.func_147466_a(p_149742_1_, p_149742_2_, p_149742_3_ - 1, p_149742_4_) && super.func_149742_c(p_149742_1_, p_149742_2_, p_149742_3_, p_149742_4_) && super.func_149742_c(p_149742_1_, p_149742_2_, p_149742_3_ + 1, p_149742_4_);
}
public int func_149656_h()
@@ -0,0 +1,52 @@
--- ../src-base/minecraft/net/minecraft/block/BlockDoublePlant.java
+++ ../src-work/minecraft/net/minecraft/block/BlockDoublePlant.java
@@ -2,6 +2,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import net.minecraft.block.material.Material;
@@ -18,8 +19,9 @@
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.IShearable;
-public class BlockDoublePlant extends BlockBush implements IGrowable
+public class BlockDoublePlant extends BlockBush implements IGrowable, IShearable
{
public static final String[] field_149892_a = new String[] {"sunflower", "syringa", "grass", "fern", "rose", "paeonia"};
@SideOnly(Side.CLIENT)
@@ -81,6 +83,7 @@
public boolean func_149718_j(World p_149718_1_, int p_149718_2_, int p_149718_3_, int p_149718_4_)
{
+ if (p_149718_1_.func_147439_a(p_149718_2_, p_149718_3_, p_149718_4_) != this) return super.func_149718_j(p_149718_1_, p_149718_2_, p_149718_3_, p_149718_4_); //Forge: This function is called during world gen and placement, before this block is set, so if we are not 'here' then assume it's the pre-check.
int l = p_149718_1_.func_72805_g(p_149718_2_, p_149718_3_, p_149718_4_);
return func_149887_c(l) ? p_149718_1_.func_147439_a(p_149718_2_, p_149718_3_ - 1, p_149718_4_) == this : p_149718_1_.func_147439_a(p_149718_2_, p_149718_3_ + 1, p_149718_4_) == this && super.func_149718_j(p_149718_1_, p_149718_2_, p_149718_3_, p_149718_4_);
}
@@ -262,4 +265,22 @@
int l = this.func_149885_e(p_149853_1_, p_149853_3_, p_149853_4_, p_149853_5_);
this.func_149642_a(p_149853_1_, p_149853_3_, p_149853_4_, p_149853_5_, new ItemStack(this, 1, l));
}
+
+ @Override
+ public boolean isShearable(ItemStack item, IBlockAccess world, int x, int y, int z)
+ {
+ int metadata = world.func_72805_g(x, y, z);
+ int type = func_149890_d(metadata);
+ return func_149887_c(metadata) && (type == 3 || type == 4);
+ }
+
+ @Override
+ public ArrayList<ItemStack> onSheared(ItemStack item, IBlockAccess world, int x, int y, int z, int fortune)
+ {
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
+ int type = func_149890_d(world.func_72805_g(x, y, z));
+ if (type == 3 || type == 2)
+ ret.add(new ItemStack(Blocks.field_150329_H, 2, type == 3 ? 2 : 1));
+ return ret;
+ }
}
@@ -0,0 +1,19 @@
--- ../src-base/minecraft/net/minecraft/block/BlockFalling.java
+++ ../src-work/minecraft/net/minecraft/block/BlockFalling.java
@@ -84,7 +84,7 @@
{
Block block = p_149831_0_.func_147439_a(p_149831_1_, p_149831_2_, p_149831_3_);
- if (block.field_149764_J == Material.field_151579_a)
+ if (block.isAir(p_149831_0_, p_149831_1_, p_149831_2_, p_149831_3_))
{
return true;
}
@@ -94,6 +94,7 @@
}
else
{
+ //TODO: King, take a look here when doing liquids!
Material material = block.field_149764_J;
return material == Material.field_151586_h ? true : material == Material.field_151587_i;
}
@@ -0,0 +1,20 @@
--- ../src-base/minecraft/net/minecraft/block/BlockFarmland.java
+++ ../src-work/minecraft/net/minecraft/block/BlockFarmland.java
@@ -12,6 +12,8 @@
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
+import net.minecraftforge.common.IPlantable;
+import net.minecraftforge.common.util.ForgeDirection;
public class BlockFarmland extends Block
{
@@ -94,7 +96,7 @@
{
Block block = p_149822_1_.func_147439_a(l, p_149822_3_ + 1, i1);
- if (block == Blocks.field_150464_aj || block == Blocks.field_150394_bc || block == Blocks.field_150393_bb || block == Blocks.field_150469_bN || block == Blocks.field_150459_bM)
+ if (block instanceof IPlantable && canSustainPlant(p_149822_1_, p_149822_2_, p_149822_3_, p_149822_4_, ForgeDirection.UP, (IPlantable)block))
{
return true;
}
@@ -0,0 +1,309 @@
--- ../src-base/minecraft/net/minecraft/block/BlockFire.java
+++ ../src-work/minecraft/net/minecraft/block/BlockFire.java
@@ -2,7 +2,10 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.IdentityHashMap;
+import java.util.Map.Entry;
import java.util.Random;
+import com.google.common.collect.Maps;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -12,11 +15,15 @@
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraft.world.WorldProviderEnd;
+import net.minecraftforge.common.util.ForgeDirection;
+import static net.minecraftforge.common.util.ForgeDirection.*;
public class BlockFire extends Block
{
- private int[] field_149849_a = new int[256];
- private int[] field_149848_b = new int[256];
+ @Deprecated
+ private int[] field_149849_a = new int[4096];
+ @Deprecated
+ private int[] field_149848_b = new int[4096];
@SideOnly(Side.CLIENT)
private IIcon[] field_149850_M;
private static final String __OBFID = "CL_00000245";
@@ -54,10 +61,10 @@
Blocks.field_150480_ab.func_149842_a(func_149682_b(Blocks.field_150404_cg), 60, 20);
}
+ @Deprecated // Use setFireInfo
public void func_149842_a(int p_149842_1_, int p_149842_2_, int p_149842_3_)
{
- this.field_149849_a[p_149842_1_] = p_149842_2_;
- this.field_149848_b[p_149842_1_] = p_149842_3_;
+ this.setFireInfo((Block)Block.field_149771_c.func_148754_a(p_149842_1_), p_149842_2_, p_149842_3_);
}
public AxisAlignedBB func_149668_a(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_)
@@ -94,13 +101,8 @@
{
if (p_149674_1_.func_82736_K().func_82766_b("doFireTick"))
{
- boolean flag = p_149674_1_.func_147439_a(p_149674_2_, p_149674_3_ - 1, p_149674_4_) == Blocks.field_150424_aL;
+ boolean flag = p_149674_1_.func_147439_a(p_149674_2_, p_149674_3_ - 1, p_149674_4_).isFireSource(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_, UP);
- if (p_149674_1_.field_73011_w instanceof WorldProviderEnd && p_149674_1_.func_147439_a(p_149674_2_, p_149674_3_ - 1, p_149674_4_) == Blocks.field_150357_h)
- {
- flag = true;
- }
-
if (!this.func_149742_c(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_))
{
p_149674_1_.func_147468_f(p_149674_2_, p_149674_3_, p_149674_4_);
@@ -128,7 +130,7 @@
p_149674_1_.func_147468_f(p_149674_2_, p_149674_3_, p_149674_4_);
}
}
- else if (!flag && !this.func_149844_e(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_) && l == 15 && p_149674_5_.nextInt(4) == 0)
+ else if (!flag && !this.canCatchFire(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_, UP) && l == 15 && p_149674_5_.nextInt(4) == 0)
{
p_149674_1_.func_147468_f(p_149674_2_, p_149674_3_, p_149674_4_);
}
@@ -142,12 +144,12 @@
b0 = -50;
}
- this.func_149841_a(p_149674_1_, p_149674_2_ + 1, p_149674_3_, p_149674_4_, 300 + b0, p_149674_5_, l);
- this.func_149841_a(p_149674_1_, p_149674_2_ - 1, p_149674_3_, p_149674_4_, 300 + b0, p_149674_5_, l);
- this.func_149841_a(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_, 250 + b0, p_149674_5_, l);
- this.func_149841_a(p_149674_1_, p_149674_2_, p_149674_3_ + 1, p_149674_4_, 250 + b0, p_149674_5_, l);
- this.func_149841_a(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_ - 1, 300 + b0, p_149674_5_, l);
- this.func_149841_a(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_ + 1, 300 + b0, p_149674_5_, l);
+ this.tryCatchFire(p_149674_1_, p_149674_2_ + 1, p_149674_3_, p_149674_4_, 300 + b0, p_149674_5_, l, WEST );
+ this.tryCatchFire(p_149674_1_, p_149674_2_ - 1, p_149674_3_, p_149674_4_, 300 + b0, p_149674_5_, l, EAST );
+ this.tryCatchFire(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_, 250 + b0, p_149674_5_, l, UP );
+ this.tryCatchFire(p_149674_1_, p_149674_2_, p_149674_3_ + 1, p_149674_4_, 250 + b0, p_149674_5_, l, DOWN );
+ this.tryCatchFire(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_ - 1, 300 + b0, p_149674_5_, l, SOUTH);
+ this.tryCatchFire(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_ + 1, 300 + b0, p_149674_5_, l, NORTH);
for (int i1 = p_149674_2_ - 1; i1 <= p_149674_2_ + 1; ++i1)
{
@@ -201,10 +203,16 @@
return false;
}
+ @Deprecated
private void func_149841_a(World p_149841_1_, int p_149841_2_, int p_149841_3_, int p_149841_4_, int p_149841_5_, Random p_149841_6_, int p_149841_7_)
{
- int j1 = this.field_149848_b[Block.func_149682_b(p_149841_1_.func_147439_a(p_149841_2_, p_149841_3_, p_149841_4_))];
+ this.tryCatchFire(p_149841_1_, p_149841_2_, p_149841_3_, p_149841_4_, p_149841_5_, p_149841_6_, p_149841_7_, UP);
+ }
+ private void tryCatchFire(World p_149841_1_, int p_149841_2_, int p_149841_3_, int p_149841_4_, int p_149841_5_, Random p_149841_6_, int p_149841_7_, ForgeDirection face)
+ {
+ int j1 = p_149841_1_.func_147439_a(p_149841_2_, p_149841_3_, p_149841_4_).getFlammability(p_149841_1_, p_149841_2_, p_149841_3_, p_149841_4_, face);
+
if (p_149841_6_.nextInt(p_149841_5_) < j1)
{
boolean flag = p_149841_1_.func_147439_a(p_149841_2_, p_149841_3_, p_149841_4_) == Blocks.field_150335_W;
@@ -234,7 +242,12 @@
private boolean func_149847_e(World p_149847_1_, int p_149847_2_, int p_149847_3_, int p_149847_4_)
{
- return this.func_149844_e(p_149847_1_, p_149847_2_ + 1, p_149847_3_, p_149847_4_) ? true : (this.func_149844_e(p_149847_1_, p_149847_2_ - 1, p_149847_3_, p_149847_4_) ? true : (this.func_149844_e(p_149847_1_, p_149847_2_, p_149847_3_ - 1, p_149847_4_) ? true : (this.func_149844_e(p_149847_1_, p_149847_2_, p_149847_3_ + 1, p_149847_4_) ? true : (this.func_149844_e(p_149847_1_, p_149847_2_, p_149847_3_, p_149847_4_ - 1) ? true : this.func_149844_e(p_149847_1_, p_149847_2_, p_149847_3_, p_149847_4_ + 1)))));
+ return this.canCatchFire(p_149847_1_, p_149847_2_ + 1, p_149847_3_, p_149847_4_, WEST ) ||
+ this.canCatchFire(p_149847_1_, p_149847_2_ - 1, p_149847_3_, p_149847_4_, EAST ) ||
+ this.canCatchFire(p_149847_1_, p_149847_2_, p_149847_3_ - 1, p_149847_4_, UP ) ||
+ this.canCatchFire(p_149847_1_, p_149847_2_, p_149847_3_ + 1, p_149847_4_, DOWN ) ||
+ this.canCatchFire(p_149847_1_, p_149847_2_, p_149847_3_, p_149847_4_ - 1, SOUTH) ||
+ this.canCatchFire(p_149847_1_, p_149847_2_, p_149847_3_, p_149847_4_ + 1, NORTH);
}
private int func_149845_m(World p_149845_1_, int p_149845_2_, int p_149845_3_, int p_149845_4_)
@@ -247,12 +260,13 @@
}
else
{
- int l = this.func_149846_a(p_149845_1_, p_149845_2_ + 1, p_149845_3_, p_149845_4_, b0);
- l = this.func_149846_a(p_149845_1_, p_149845_2_ - 1, p_149845_3_, p_149845_4_, l);
- l = this.func_149846_a(p_149845_1_, p_149845_2_, p_149845_3_ - 1, p_149845_4_, l);
- l = this.func_149846_a(p_149845_1_, p_149845_2_, p_149845_3_ + 1, p_149845_4_, l);
- l = this.func_149846_a(p_149845_1_, p_149845_2_, p_149845_3_, p_149845_4_ - 1, l);
- l = this.func_149846_a(p_149845_1_, p_149845_2_, p_149845_3_, p_149845_4_ + 1, l);
+ int l = b0;
+ l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_ + 1, p_149845_3_, p_149845_4_, l, WEST );
+ l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_ - 1, p_149845_3_, p_149845_4_, l, EAST );
+ l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_, p_149845_3_ - 1, p_149845_4_, l, UP );
+ l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_, p_149845_3_ + 1, p_149845_4_, l, DOWN );
+ l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_, p_149845_3_, p_149845_4_ - 1, l, SOUTH);
+ l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_, p_149845_3_, p_149845_4_ + 1, l, NORTH);
return l;
}
}
@@ -262,15 +276,16 @@
return false;
}
+ @Deprecated
public boolean func_149844_e(IBlockAccess p_149844_1_, int p_149844_2_, int p_149844_3_, int p_149844_4_)
{
- return this.field_149849_a[Block.func_149682_b(p_149844_1_.func_147439_a(p_149844_2_, p_149844_3_, p_149844_4_))] > 0;
+ return canCatchFire(p_149844_1_, p_149844_2_, p_149844_3_, p_149844_4_, UP);
}
+ @Deprecated
public int func_149846_a(World p_149846_1_, int p_149846_2_, int p_149846_3_, int p_149846_4_, int p_149846_5_)
{
- int i1 = this.field_149849_a[Block.func_149682_b(p_149846_1_.func_147439_a(p_149846_2_, p_149846_3_, p_149846_4_))];
- return i1 > p_149846_5_ ? i1 : p_149846_5_;
+ return getChanceToEncourageFire(p_149846_1_, p_149846_2_, p_149846_3_, p_149846_4_, p_149846_5_, UP);
}
public boolean func_149742_c(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
@@ -314,9 +329,9 @@
float f1;
float f2;
- if (!World.func_147466_a(p_149734_1_, p_149734_2_, p_149734_3_ - 1, p_149734_4_) && !Blocks.field_150480_ab.func_149844_e(p_149734_1_, p_149734_2_, p_149734_3_ - 1, p_149734_4_))
+ if (!World.func_147466_a(p_149734_1_, p_149734_2_, p_149734_3_ - 1, p_149734_4_) && !Blocks.field_150480_ab.canCatchFire(p_149734_1_, p_149734_2_, p_149734_3_ - 1, p_149734_4_, UP))
{
- if (Blocks.field_150480_ab.func_149844_e(p_149734_1_, p_149734_2_ - 1, p_149734_3_, p_149734_4_))
+ if (Blocks.field_150480_ab.canCatchFire(p_149734_1_, p_149734_2_ - 1, p_149734_3_, p_149734_4_, EAST))
{
for (l = 0; l < 2; ++l)
{
@@ -327,7 +342,7 @@
}
}
- if (Blocks.field_150480_ab.func_149844_e(p_149734_1_, p_149734_2_ + 1, p_149734_3_, p_149734_4_))
+ if (Blocks.field_150480_ab.canCatchFire(p_149734_1_, p_149734_2_ + 1, p_149734_3_, p_149734_4_, WEST))
{
for (l = 0; l < 2; ++l)
{
@@ -338,7 +353,7 @@
}
}
- if (Blocks.field_150480_ab.func_149844_e(p_149734_1_, p_149734_2_, p_149734_3_, p_149734_4_ - 1))
+ if (Blocks.field_150480_ab.canCatchFire(p_149734_1_, p_149734_2_, p_149734_3_, p_149734_4_ - 1, SOUTH))
{
for (l = 0; l < 2; ++l)
{
@@ -349,7 +364,7 @@
}
}
- if (Blocks.field_150480_ab.func_149844_e(p_149734_1_, p_149734_2_, p_149734_3_, p_149734_4_ + 1))
+ if (Blocks.field_150480_ab.canCatchFire(p_149734_1_, p_149734_2_, p_149734_3_, p_149734_4_ + 1, NORTH))
{
for (l = 0; l < 2; ++l)
{
@@ -360,7 +375,7 @@
}
}
- if (Blocks.field_150480_ab.func_149844_e(p_149734_1_, p_149734_2_, p_149734_3_ + 1, p_149734_4_))
+ if (Blocks.field_150480_ab.canCatchFire(p_149734_1_, p_149734_2_, p_149734_3_ + 1, p_149734_4_, DOWN))
{
for (l = 0; l < 2; ++l)
{
@@ -405,4 +420,101 @@
{
return MapColor.field_151656_f;
}
+
+ /*================================= Forge Start ======================================*/
+ private static class FireInfo
+ {
+ private int encouragement = 0;
+ private int flammibility = 0;
+ }
+ private IdentityHashMap<Block, FireInfo> blockInfo = Maps.newIdentityHashMap();
+
+ public void setFireInfo(Block block, int encouragement, int flammibility)
+ {
+ if (block == Blocks.field_150350_a) throw new IllegalArgumentException("Tried to set air on fire... This is bad.");
+ int id = Block.func_149682_b(block);
+ this.field_149849_a[id] = encouragement;
+ this.field_149848_b[id] = flammibility;
+
+ FireInfo info = getInfo(block, true);
+ info.encouragement = encouragement;
+ info.flammibility = flammibility;
+ }
+
+ private FireInfo getInfo(Block block, boolean garentee)
+ {
+ FireInfo ret = blockInfo.get(block);
+ if (ret == null && garentee)
+ {
+ ret = new FireInfo();
+ blockInfo.put(block, ret);
+ }
+ return ret;
+ }
+
+ public void rebuildFireInfo()
+ {
+ for (int x = 0; x < 4096; x++)
+ {
+ //If we care.. we could detect changes in here and make sure we keep them, however
+ //it's my thinking that anyone who hacks into the private variables should DIAF and we don't care about them.
+ field_149849_a[x] = 0;
+ field_149848_b[x] = 0;
+ }
+
+ for (Entry<Block, FireInfo> e : blockInfo.entrySet())
+ {
+ int id = Block.func_149682_b(e.getKey());
+ if (id >= 0 && id < 4096)
+ {
+ field_149849_a[id] = e.getValue().encouragement;
+ field_149848_b[id] = e.getValue().flammibility;
+ }
+ }
+ }
+
+ public int getFlammability(Block block)
+ {
+ int id = Block.func_149682_b(block);
+ return id >= 0 && id < 4096 ? field_149848_b[id] : 0;
+ }
+
+ public int getEncouragement(Block block)
+ {
+ int id = Block.func_149682_b(block);
+ return id >= 0 && id < 4096 ? field_149849_a[id] : 0;
+ }
+
+ /**
+ * Side sensitive version that calls the block function.
+ *
+ * @param world The current world
+ * @param x X Position
+ * @param y Y Position
+ * @param z Z Position
+ * @param face The side the fire is coming from
+ * @return True if the face can catch fire.
+ */
+ public boolean canCatchFire(IBlockAccess world, int x, int y, int z, ForgeDirection face)
+ {
+ return world.func_147439_a(x, y, z).isFlammable(world, x, y, z, face);
+ }
+
+ /**
+ * Side sensitive version that calls the block function.
+ *
+ * @param world The current world
+ * @param x X Position
+ * @param y Y Position
+ * @param z Z Position
+ * @param oldChance The previous maximum chance.
+ * @param face The side the fire is coming from
+ * @return The chance of the block catching fire, or oldChance if it is higher
+ */
+ public int getChanceToEncourageFire(IBlockAccess world, int x, int y, int z, int oldChance, ForgeDirection face)
+ {
+ int newChance = world.func_147439_a(x, y, z).getFireSpreadSpeed(world, x, y, z, face);
+ return (newChance > oldChance ? newChance : oldChance);
+ }
+ /*================================= Forge Start ======================================*/
}
@@ -0,0 +1,38 @@
--- ../src-base/minecraft/net/minecraft/block/BlockFlowerPot.java
+++ ../src-work/minecraft/net/minecraft/block/BlockFlowerPot.java
@@ -2,6 +2,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.ArrayList;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
@@ -139,12 +140,6 @@
public void func_149690_a(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_)
{
super.func_149690_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, p_149690_6_, p_149690_7_);
- TileEntityFlowerPot tileentityflowerpot = this.func_149929_e(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_);
-
- if (tileentityflowerpot != null && tileentityflowerpot.func_145965_a() != null)
- {
- this.func_149642_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, new ItemStack(tileentityflowerpot.func_145965_a(), 1, tileentityflowerpot.func_145966_b()));
- }
}
public void func_149749_a(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
@@ -242,4 +237,14 @@
return new TileEntityFlowerPot(Item.func_150898_a((Block)object), b0);
}
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune)
+ {
+ ArrayList<ItemStack> ret = super.getDrops(world, x, y, z, metadata, fortune);
+ TileEntityFlowerPot te = this.func_149929_e(world, x, y, z);
+ if (te != null && te.func_145965_a() != null)
+ ret.add(new ItemStack(te.func_145965_a(), 1, te.func_145966_b()));
+ return ret;
+ }
}
@@ -0,0 +1,37 @@
--- ../src-base/minecraft/net/minecraft/block/BlockGrass.java
+++ ../src-work/minecraft/net/minecraft/block/BlockGrass.java
@@ -43,7 +43,7 @@
{
if (!p_149674_1_.field_72995_K)
{
- if (p_149674_1_.func_72957_l(p_149674_2_, p_149674_3_ + 1, p_149674_4_) < 4 && p_149674_1_.func_147439_a(p_149674_2_, p_149674_3_ + 1, p_149674_4_).func_149717_k() > 2)
+ if (p_149674_1_.func_72957_l(p_149674_2_, p_149674_3_ + 1, p_149674_4_) < 4 && p_149674_1_.getBlockLightOpacity(p_149674_2_, p_149674_3_ + 1, p_149674_4_) > 2)
{
p_149674_1_.func_147449_b(p_149674_2_, p_149674_3_, p_149674_4_, Blocks.field_150346_d);
}
@@ -56,7 +56,7 @@
int k1 = p_149674_4_ + p_149674_5_.nextInt(3) - 1;
Block block = p_149674_1_.func_147439_a(i1, j1 + 1, k1);
- if (p_149674_1_.func_147439_a(i1, j1, k1) == Blocks.field_150346_d && p_149674_1_.func_72805_g(i1, j1, k1) == 0 && p_149674_1_.func_72957_l(i1, j1 + 1, k1) >= 4 && block.func_149717_k() <= 2)
+ if (p_149674_1_.func_147439_a(i1, j1, k1) == Blocks.field_150346_d && p_149674_1_.func_72805_g(i1, j1, k1) == 0 && p_149674_1_.func_72957_l(i1, j1 + 1, k1) >= 4 && p_149674_1_.getBlockLightOpacity(i1, j1 + 1, k1) <= 2)
{
p_149674_1_.func_147449_b(i1, j1, k1, Blocks.field_150349_c);
}
@@ -184,15 +184,7 @@
}
else
{
- String s = p_149853_1_.func_72807_a(i1, k1).func_150572_a(p_149853_2_, i1, j1, k1);
- field_149992_a.debug("Flower in " + p_149853_1_.func_72807_a(i1, k1).field_76791_y + ": " + s);
- BlockFlower blockflower = BlockFlower.func_149857_e(s);
-
- if (blockflower != null && blockflower.func_149718_j(p_149853_1_, i1, j1, k1))
- {
- int i2 = BlockFlower.func_149856_f(s);
- p_149853_1_.func_147465_d(i1, j1, k1, blockflower, i2, 3);
- }
+ p_149853_1_.func_72807_a(i1, k1).plantFlower(p_149853_1_, p_149853_2_, i1, j1, k1);
}
}
@@ -0,0 +1,50 @@
--- ../src-base/minecraft/net/minecraft/block/BlockIce.java
+++ ../src-work/minecraft/net/minecraft/block/BlockIce.java
@@ -2,6 +2,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.ArrayList;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
@@ -13,6 +14,7 @@
import net.minecraft.world.EnumSkyBlock;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.event.ForgeEventFactory;
public class BlockIce extends BlockBreakable
{
@@ -43,14 +45,16 @@
p_149636_2_.func_71064_a(StatList.field_75934_C[Block.func_149682_b(this)], 1);
p_149636_2_.func_71020_j(0.025F);
- if (this.func_149700_E() && EnchantmentHelper.func_77502_d(p_149636_2_))
+ if (this.canSilkHarvest(p_149636_1_, p_149636_2_, p_149636_3_, p_149636_4_, p_149636_5_, p_149636_6_) && EnchantmentHelper.func_77502_d(p_149636_2_))
{
+ ArrayList<ItemStack> items = new ArrayList<ItemStack>();
ItemStack itemstack = this.func_149644_j(p_149636_6_);
- if (itemstack != null)
- {
- this.func_149642_a(p_149636_1_, p_149636_3_, p_149636_4_, p_149636_5_, itemstack);
- }
+ if (itemstack != null) items.add(itemstack);
+
+ ForgeEventFactory.fireBlockHarvesting(items, p_149636_1_, this, p_149636_3_, p_149636_4_, p_149636_5_, p_149636_6_, 0, 1.0f, true, p_149636_2_);
+ for (ItemStack is : items)
+ this.func_149642_a(p_149636_1_, p_149636_3_, p_149636_4_, p_149636_5_, is);
}
else
{
@@ -61,7 +65,9 @@
}
int i1 = EnchantmentHelper.func_77517_e(p_149636_2_);
+ harvesters.set(p_149636_2_);
this.func_149697_b(p_149636_1_, p_149636_3_, p_149636_4_, p_149636_5_, p_149636_6_, i1);
+ harvesters.set(null);
Material material = p_149636_1_.func_147439_a(p_149636_3_, p_149636_4_ - 1, p_149636_5_).func_149688_o();
if (material.func_76230_c() || material.func_76224_d())
@@ -0,0 +1,93 @@
--- ../src-base/minecraft/net/minecraft/block/BlockLadder.java
+++ ../src-work/minecraft/net/minecraft/block/BlockLadder.java
@@ -5,10 +5,14 @@
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+import static net.minecraftforge.common.util.ForgeDirection.*;
+
public class BlockLadder extends Block
{
private static final String __OBFID = "CL_00000262";
@@ -79,29 +83,32 @@
public boolean func_149742_c(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
{
- return p_149742_1_.func_147439_a(p_149742_2_ - 1, p_149742_3_, p_149742_4_).func_149721_r() ? true : (p_149742_1_.func_147439_a(p_149742_2_ + 1, p_149742_3_, p_149742_4_).func_149721_r() ? true : (p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_, p_149742_4_ - 1).func_149721_r() ? true : p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_, p_149742_4_ + 1).func_149721_r()));
+ return p_149742_1_.isSideSolid(p_149742_2_ - 1, p_149742_3_, p_149742_4_, EAST ) ||
+ p_149742_1_.isSideSolid(p_149742_2_ + 1, p_149742_3_, p_149742_4_, WEST ) ||
+ p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_, p_149742_4_ - 1, SOUTH) ||
+ p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_, p_149742_4_ + 1, NORTH);
}
public int func_149660_a(World p_149660_1_, int p_149660_2_, int p_149660_3_, int p_149660_4_, int p_149660_5_, float p_149660_6_, float p_149660_7_, float p_149660_8_, int p_149660_9_)
{
int j1 = p_149660_9_;
- if ((p_149660_9_ == 0 || p_149660_5_ == 2) && p_149660_1_.func_147439_a(p_149660_2_, p_149660_3_, p_149660_4_ + 1).func_149721_r())
+ if ((p_149660_9_ == 0 || p_149660_5_ == 2) && p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_, p_149660_4_ + 1, NORTH))
{
j1 = 2;
}
- if ((j1 == 0 || p_149660_5_ == 3) && p_149660_1_.func_147439_a(p_149660_2_, p_149660_3_, p_149660_4_ - 1).func_149721_r())
+ if ((j1 == 0 || p_149660_5_ == 3) && p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_, p_149660_4_ - 1, SOUTH))
{
j1 = 3;
}
- if ((j1 == 0 || p_149660_5_ == 4) && p_149660_1_.func_147439_a(p_149660_2_ + 1, p_149660_3_, p_149660_4_).func_149721_r())
+ if ((j1 == 0 || p_149660_5_ == 4) && p_149660_1_.isSideSolid(p_149660_2_ + 1, p_149660_3_, p_149660_4_, WEST))
{
j1 = 4;
}
- if ((j1 == 0 || p_149660_5_ == 5) && p_149660_1_.func_147439_a(p_149660_2_ - 1, p_149660_3_, p_149660_4_).func_149721_r())
+ if ((j1 == 0 || p_149660_5_ == 5) && p_149660_1_.isSideSolid(p_149660_2_ - 1, p_149660_3_, p_149660_4_, EAST))
{
j1 = 5;
}
@@ -114,22 +121,22 @@
int l = p_149695_1_.func_72805_g(p_149695_2_, p_149695_3_, p_149695_4_);
boolean flag = false;
- if (l == 2 && p_149695_1_.func_147439_a(p_149695_2_, p_149695_3_, p_149695_4_ + 1).func_149721_r())
+ if (l == 2 && p_149695_1_.isSideSolid(p_149695_2_, p_149695_3_, p_149695_4_ + 1, NORTH))
{
flag = true;
}
- if (l == 3 && p_149695_1_.func_147439_a(p_149695_2_, p_149695_3_, p_149695_4_ - 1).func_149721_r())
+ if (l == 3 && p_149695_1_.isSideSolid(p_149695_2_, p_149695_3_, p_149695_4_ - 1, SOUTH))
{
flag = true;
}
- if (l == 4 && p_149695_1_.func_147439_a(p_149695_2_ + 1, p_149695_3_, p_149695_4_).func_149721_r())
+ if (l == 4 && p_149695_1_.isSideSolid(p_149695_2_ + 1, p_149695_3_, p_149695_4_, WEST))
{
flag = true;
}
- if (l == 5 && p_149695_1_.func_147439_a(p_149695_2_ - 1, p_149695_3_, p_149695_4_).func_149721_r())
+ if (l == 5 && p_149695_1_.isSideSolid(p_149695_2_ - 1, p_149695_3_, p_149695_4_, EAST))
{
flag = true;
}
@@ -147,4 +154,10 @@
{
return 1;
}
+
+ @Override
+ public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity)
+ {
+ return true;
+ }
}
@@ -0,0 +1,171 @@
--- ../src-base/minecraft/net/minecraft/block/BlockLeaves.java
+++ ../src-work/minecraft/net/minecraft/block/BlockLeaves.java
@@ -2,6 +2,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.ArrayList;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
@@ -15,8 +16,9 @@
import net.minecraft.world.ColorizerFoliage;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.IShearable;
-public abstract class BlockLeaves extends BlockLeavesBase
+public abstract class BlockLeaves extends BlockLeavesBase implements IShearable
{
int[] field_150128_a;
@SideOnly(Side.CLIENT)
@@ -82,10 +84,10 @@
{
for (int l1 = -b0; l1 <= b0; ++l1)
{
- if (p_149749_1_.func_147439_a(p_149749_2_ + j1, p_149749_3_ + k1, p_149749_4_ + l1).func_149688_o() == Material.field_151584_j)
+ Block block = p_149749_1_.func_147439_a(p_149749_2_ + j1, p_149749_3_ + k1, p_149749_4_ + l1);
+ if (block.isLeaves(p_149749_1_, p_149749_2_ + j1, p_149749_3_ + k1, p_149749_4_ + l1))
{
- int i2 = p_149749_1_.func_72805_g(p_149749_2_ + j1, p_149749_3_ + k1, p_149749_4_ + l1);
- p_149749_1_.func_72921_c(p_149749_2_ + j1, p_149749_3_ + k1, p_149749_4_ + l1, i2 | 8, 4);
+ block.beginLeavesDecay(p_149749_1_, p_149749_2_ + j1, p_149749_3_ + k1, p_149749_4_ + l1);
}
}
}
@@ -127,9 +129,9 @@
{
Block block = p_149674_1_.func_147439_a(p_149674_2_ + l1, p_149674_3_ + i2, p_149674_4_ + j2);
- if (block != Blocks.field_150364_r && block != Blocks.field_150363_s)
+ if (!block.canSustainLeaves(p_149674_1_, p_149674_2_ + l1, p_149674_3_ + i2, p_149674_4_ + j2))
{
- if (block.func_149688_o() == Material.field_151584_j)
+ if (block.isLeaves(p_149674_1_, p_149674_2_ + l1, p_149674_3_ + i2, p_149674_4_ + j2))
{
this.field_150128_a[(l1 + k1) * j1 + (i2 + k1) * b1 + j2 + k1] = -2;
}
@@ -236,40 +238,7 @@
public void func_149690_a(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_)
{
- if (!p_149690_1_.field_72995_K)
- {
- int j1 = this.func_150123_b(p_149690_5_);
-
- if (p_149690_7_ > 0)
- {
- j1 -= 2 << p_149690_7_;
-
- if (j1 < 10)
- {
- j1 = 10;
- }
- }
-
- if (p_149690_1_.field_73012_v.nextInt(j1) == 0)
- {
- Item item = this.func_149650_a(p_149690_5_, p_149690_1_.field_73012_v, p_149690_7_);
- this.func_149642_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, new ItemStack(item, 1, this.func_149692_a(p_149690_5_)));
- }
-
- j1 = 200;
-
- if (p_149690_7_ > 0)
- {
- j1 -= 10 << p_149690_7_;
-
- if (j1 < 40)
- {
- j1 = 40;
- }
- }
-
- this.func_150124_c(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, j1);
- }
+ super.func_149690_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, 1.0f, p_149690_7_);
}
protected void func_150124_c(World p_150124_1_, int p_150124_2_, int p_150124_3_, int p_150124_4_, int p_150124_5_, int p_150124_6_) {}
@@ -281,13 +250,7 @@
public void func_149636_a(World p_149636_1_, EntityPlayer p_149636_2_, int p_149636_3_, int p_149636_4_, int p_149636_5_, int p_149636_6_)
{
- if (!p_149636_1_.field_72995_K && p_149636_2_.func_71045_bC() != null && p_149636_2_.func_71045_bC().func_77973_b() == Items.field_151097_aZ)
{
- p_149636_2_.func_71064_a(StatList.field_75934_C[Block.func_149682_b(this)], 1);
- this.func_149642_a(p_149636_1_, p_149636_3_, p_149636_4_, p_149636_5_, new ItemStack(Item.func_150898_a(this), 1, p_149636_6_ & 3));
- }
- else
- {
super.func_149636_a(p_149636_1_, p_149636_2_, p_149636_3_, p_149636_4_, p_149636_5_, p_149636_6_);
}
}
@@ -318,4 +281,67 @@
}
public abstract String[] func_150125_e();
+
+
+ @Override
+ public boolean isShearable(ItemStack item, IBlockAccess world, int x, int y, int z)
+ {
+ return true;
+ }
+
+ @Override
+ public ArrayList<ItemStack> onSheared(ItemStack item, IBlockAccess world, int x, int y, int z, int fortune)
+ {
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
+ ret.add(new ItemStack(this, 1, world.func_72805_g(x, y, z) & 3));
+ return ret;
+ }
+
+ @Override
+ public void beginLeavesDecay(World world, int x, int y, int z)
+ {
+
+ int i2 = world.func_72805_g(x, y, z);
+
+ if ((i2 & 8) == 0)
+ {
+ world.func_72921_c(x, y, z, i2 | 8, 4);
+ }
+ world.func_72921_c(x, y, z, world.func_72805_g(x, y, z) | 8, 4);
+ }
+
+ @Override
+ public boolean isLeaves(IBlockAccess world, int x, int y, int z)
+ {
+ return true;
+ }
+
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune)
+ {
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
+ int chance = this.func_150123_b(metadata);
+
+ if (fortune > 0)
+ {
+ chance -= 2 << fortune;
+ if (chance < 10) chance = 10;
+ }
+
+ if (world.field_73012_v.nextInt(chance) == 0)
+ ret.add(new ItemStack(this.func_149650_a(metadata, world.field_73012_v, fortune), 1, this.func_149692_a(metadata)));
+
+ chance = 200;
+ if (fortune > 0)
+ {
+ chance -= 10 << fortune;
+ if (chance < 40) chance = 40;
+ }
+
+ this.captureDrops(true);
+ this.func_150124_c(world, x, y, z, metadata, chance); // Dammet mojang
+ ret.addAll(this.captureDrops(false));
+ return ret;
+ }
}
@@ -0,0 +1,128 @@
--- ../src-base/minecraft/net/minecraft/block/BlockLever.java
+++ ../src-work/minecraft/net/minecraft/block/BlockLever.java
@@ -10,6 +10,9 @@
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+import static net.minecraftforge.common.util.ForgeDirection.*;
+
public class BlockLever extends Block
{
private static final String __OBFID = "CL_00000264";
@@ -42,12 +45,23 @@
public boolean func_149707_d(World p_149707_1_, int p_149707_2_, int p_149707_3_, int p_149707_4_, int p_149707_5_)
{
- return p_149707_5_ == 0 && p_149707_1_.func_147439_a(p_149707_2_, p_149707_3_ + 1, p_149707_4_).func_149721_r() ? true : (p_149707_5_ == 1 && World.func_147466_a(p_149707_1_, p_149707_2_, p_149707_3_ - 1, p_149707_4_) ? true : (p_149707_5_ == 2 && p_149707_1_.func_147439_a(p_149707_2_, p_149707_3_, p_149707_4_ + 1).func_149721_r() ? true : (p_149707_5_ == 3 && p_149707_1_.func_147439_a(p_149707_2_, p_149707_3_, p_149707_4_ - 1).func_149721_r() ? true : (p_149707_5_ == 4 && p_149707_1_.func_147439_a(p_149707_2_ + 1, p_149707_3_, p_149707_4_).func_149721_r() ? true : p_149707_5_ == 5 && p_149707_1_.func_147439_a(p_149707_2_ - 1, p_149707_3_, p_149707_4_).func_149721_r()))));
+ ForgeDirection dir = ForgeDirection.getOrientation(p_149707_5_);
+ return (dir == DOWN && p_149707_1_.isSideSolid(p_149707_2_, p_149707_3_ + 1, p_149707_4_, DOWN )) ||
+ (dir == UP && p_149707_1_.isSideSolid(p_149707_2_, p_149707_3_ - 1, p_149707_4_, UP )) ||
+ (dir == NORTH && p_149707_1_.isSideSolid(p_149707_2_, p_149707_3_, p_149707_4_ + 1, NORTH)) ||
+ (dir == SOUTH && p_149707_1_.isSideSolid(p_149707_2_, p_149707_3_, p_149707_4_ - 1, SOUTH)) ||
+ (dir == WEST && p_149707_1_.isSideSolid(p_149707_2_ + 1, p_149707_3_, p_149707_4_, WEST )) ||
+ (dir == EAST && p_149707_1_.isSideSolid(p_149707_2_ - 1, p_149707_3_, p_149707_4_, EAST ));
}
public boolean func_149742_c(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
{
- return p_149742_1_.func_147439_a(p_149742_2_ - 1, p_149742_3_, p_149742_4_).func_149721_r() ? true : (p_149742_1_.func_147439_a(p_149742_2_ + 1, p_149742_3_, p_149742_4_).func_149721_r() ? true : (p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_, p_149742_4_ - 1).func_149721_r() ? true : (p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_, p_149742_4_ + 1).func_149721_r() ? true : (World.func_147466_a(p_149742_1_, p_149742_2_, p_149742_3_ - 1, p_149742_4_) ? true : p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_ + 1, p_149742_4_).func_149721_r()))));
+ return p_149742_1_.isSideSolid(p_149742_2_ - 1, p_149742_3_, p_149742_4_, EAST ) ||
+ p_149742_1_.isSideSolid(p_149742_2_ + 1, p_149742_3_, p_149742_4_, WEST ) ||
+ p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_, p_149742_4_ - 1, SOUTH) ||
+ p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_, p_149742_4_ + 1, NORTH) ||
+ p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_ - 1, p_149742_4_, UP ) ||
+ p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_ + 1, p_149742_4_, DOWN );
}
public int func_149660_a(World p_149660_1_, int p_149660_2_, int p_149660_3_, int p_149660_4_, int p_149660_5_, float p_149660_6_, float p_149660_7_, float p_149660_8_, int p_149660_9_)
@@ -56,32 +70,32 @@
int j1 = p_149660_9_ & 7;
byte b0 = -1;
- if (p_149660_5_ == 0 && p_149660_1_.func_147439_a(p_149660_2_, p_149660_3_ + 1, p_149660_4_).func_149721_r())
+ if (p_149660_5_ == 0 && p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_ + 1, p_149660_4_, DOWN))
{
b0 = 0;
}
- if (p_149660_5_ == 1 && World.func_147466_a(p_149660_1_, p_149660_2_, p_149660_3_ - 1, p_149660_4_))
+ if (p_149660_5_ == 1 && p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_ - 1, p_149660_4_, UP))
{
b0 = 5;
}
- if (p_149660_5_ == 2 && p_149660_1_.func_147439_a(p_149660_2_, p_149660_3_, p_149660_4_ + 1).func_149721_r())
+ if (p_149660_5_ == 2 && p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_, p_149660_4_ + 1, NORTH))
{
b0 = 4;
}
- if (p_149660_5_ == 3 && p_149660_1_.func_147439_a(p_149660_2_, p_149660_3_, p_149660_4_ - 1).func_149721_r())
+ if (p_149660_5_ == 3 && p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_, p_149660_4_ - 1, SOUTH))
{
b0 = 3;
}
- if (p_149660_5_ == 4 && p_149660_1_.func_147439_a(p_149660_2_ + 1, p_149660_3_, p_149660_4_).func_149721_r())
+ if (p_149660_5_ == 4 && p_149660_1_.isSideSolid(p_149660_2_ + 1, p_149660_3_, p_149660_4_, WEST))
{
b0 = 2;
}
- if (p_149660_5_ == 5 && p_149660_1_.func_147439_a(p_149660_2_ - 1, p_149660_3_, p_149660_4_).func_149721_r())
+ if (p_149660_5_ == 5 && p_149660_1_.isSideSolid(p_149660_2_ - 1, p_149660_3_, p_149660_4_, EAST))
{
b0 = 1;
}
@@ -147,42 +161,42 @@
int l = p_149695_1_.func_72805_g(p_149695_2_, p_149695_3_, p_149695_4_) & 7;
boolean flag = false;
- if (!p_149695_1_.func_147439_a(p_149695_2_ - 1, p_149695_3_, p_149695_4_).func_149721_r() && l == 1)
+ if (!p_149695_1_.isSideSolid(p_149695_2_ - 1, p_149695_3_, p_149695_4_, EAST) && l == 1)
{
flag = true;
}
- if (!p_149695_1_.func_147439_a(p_149695_2_ + 1, p_149695_3_, p_149695_4_).func_149721_r() && l == 2)
+ if (!p_149695_1_.isSideSolid(p_149695_2_ + 1, p_149695_3_, p_149695_4_, WEST) && l == 2)
{
flag = true;
}
- if (!p_149695_1_.func_147439_a(p_149695_2_, p_149695_3_, p_149695_4_ - 1).func_149721_r() && l == 3)
+ if (!p_149695_1_.isSideSolid(p_149695_2_, p_149695_3_, p_149695_4_ - 1, SOUTH) && l == 3)
{
flag = true;
}
- if (!p_149695_1_.func_147439_a(p_149695_2_, p_149695_3_, p_149695_4_ + 1).func_149721_r() && l == 4)
+ if (!p_149695_1_.isSideSolid(p_149695_2_, p_149695_3_, p_149695_4_ + 1, NORTH) && l == 4)
{
flag = true;
}
- if (!World.func_147466_a(p_149695_1_, p_149695_2_, p_149695_3_ - 1, p_149695_4_) && l == 5)
+ if (!p_149695_1_.isSideSolid(p_149695_2_, p_149695_3_ - 1, p_149695_4_, UP) && l == 5)
{
flag = true;
}
- if (!World.func_147466_a(p_149695_1_, p_149695_2_, p_149695_3_ - 1, p_149695_4_) && l == 6)
+ if (!p_149695_1_.isSideSolid(p_149695_2_, p_149695_3_ - 1, p_149695_4_, UP) && l == 6)
{
flag = true;
}
- if (!p_149695_1_.func_147439_a(p_149695_2_, p_149695_3_ + 1, p_149695_4_).func_149721_r() && l == 0)
+ if (!p_149695_1_.isSideSolid(p_149695_2_, p_149695_3_ + 1, p_149695_4_, DOWN) && l == 0)
{
flag = true;
}
- if (!p_149695_1_.func_147439_a(p_149695_2_, p_149695_3_ + 1, p_149695_4_).func_149721_r() && l == 7)
+ if (!p_149695_1_.isSideSolid(p_149695_2_, p_149695_3_ + 1, p_149695_4_, DOWN) && l == 7)
{
flag = true;
}
@@ -0,0 +1,11 @@
--- ../src-base/minecraft/net/minecraft/block/BlockLiquid.java
+++ ../src-work/minecraft/net/minecraft/block/BlockLiquid.java
@@ -67,7 +67,7 @@
{
for (int l1 = -1; l1 <= 1; ++l1)
{
- int i2 = p_149720_1_.func_72807_a(p_149720_2_ + l1, p_149720_4_ + k1).field_76759_H;
+ int i2 = p_149720_1_.func_72807_a(p_149720_2_ + l1, p_149720_4_ + k1).getWaterColorMultiplier();
l += (i2 & 16711680) >> 16;
i1 += (i2 & 65280) >> 8;
j1 += i2 & 255;
@@ -0,0 +1,45 @@
--- ../src-base/minecraft/net/minecraft/block/BlockLog.java
+++ ../src-work/minecraft/net/minecraft/block/BlockLog.java
@@ -7,6 +7,7 @@
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public abstract class BlockLog extends BlockRotatedPillar
@@ -53,14 +54,10 @@
{
for (int l1 = -b0; l1 <= b0; ++l1)
{
- if (p_149749_1_.func_147439_a(p_149749_2_ + j1, p_149749_3_ + k1, p_149749_4_ + l1).func_149688_o() == Material.field_151584_j)
+ Block block = p_149749_1_.func_147439_a(p_149749_2_ + j1, p_149749_3_ + k1, p_149749_4_ + l1);
+ if (block.isLeaves(p_149749_1_, p_149749_2_ + j1, p_149749_3_ + k1, p_149749_4_ + l1))
{
- int i2 = p_149749_1_.func_72805_g(p_149749_2_ + j1, p_149749_3_ + k1, p_149749_4_ + l1);
-
- if ((i2 & 8) == 0)
- {
- p_149749_1_.func_72921_c(p_149749_2_ + j1, p_149749_3_ + k1, p_149749_4_ + l1, i2 | 8, 4);
- }
+ block.beginLeavesDecay(p_149749_1_, p_149749_2_ + j1, p_149749_3_ + k1, p_149749_4_ + l1);
}
}
}
@@ -79,4 +76,16 @@
{
return this.field_150166_b[p_150161_1_ % this.field_150166_b.length];
}
+
+ @Override
+ public boolean canSustainLeaves(IBlockAccess world, int x, int y, int z)
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isWood(IBlockAccess world, int x, int y, int z)
+ {
+ return true;
+ }
}
@@ -0,0 +1,28 @@
--- ../src-base/minecraft/net/minecraft/block/BlockMobSpawner.java
+++ ../src-work/minecraft/net/minecraft/block/BlockMobSpawner.java
@@ -7,6 +7,7 @@
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityMobSpawner;
+import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockMobSpawner extends BlockContainer
@@ -36,10 +37,15 @@
public void func_149690_a(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_)
{
super.func_149690_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, p_149690_6_, p_149690_7_);
- int j1 = 15 + p_149690_1_.field_73012_v.nextInt(15) + p_149690_1_.field_73012_v.nextInt(15);
- this.func_149657_c(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, j1);
}
+ private Random rand = new Random();
+ @Override
+ public int getExpDrop(IBlockAccess world, int metadata, int fortune)
+ {
+ return 15 + rand.nextInt(15) + rand.nextInt(15);
+ }
+
public boolean func_149662_c()
{
return false;
@@ -0,0 +1,19 @@
--- ../src-base/minecraft/net/minecraft/block/BlockMushroom.java
+++ ../src-work/minecraft/net/minecraft/block/BlockMushroom.java
@@ -4,6 +4,7 @@
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenBigMushroom;
+import net.minecraftforge.common.util.ForgeDirection;
public class BlockMushroom extends BlockBush implements IGrowable
{
@@ -85,7 +86,7 @@
if (p_149718_3_ >= 0 && p_149718_3_ < 256)
{
Block block = p_149718_1_.func_147439_a(p_149718_2_, p_149718_3_ - 1, p_149718_4_);
- return block == Blocks.field_150391_bh || block == Blocks.field_150346_d && p_149718_1_.func_72805_g(p_149718_2_, p_149718_3_ - 1, p_149718_4_) == 2 || p_149718_1_.func_72883_k(p_149718_2_, p_149718_3_, p_149718_4_) < 13 && this.func_149854_a(block);
+ return block == Blocks.field_150391_bh || block == Blocks.field_150346_d && p_149718_1_.func_72805_g(p_149718_2_, p_149718_3_ - 1, p_149718_4_) == 2 || p_149718_1_.func_72883_k(p_149718_2_, p_149718_3_, p_149718_4_) < 13 && block.canSustainPlant(p_149718_1_, p_149718_2_, p_149718_3_ - 1, p_149718_4_, ForgeDirection.UP, this);
}
else
{
@@ -0,0 +1,20 @@
--- ../src-base/minecraft/net/minecraft/block/BlockMycelium.java
+++ ../src-work/minecraft/net/minecraft/block/BlockMycelium.java
@@ -37,7 +37,7 @@
{
if (!p_149674_1_.field_72995_K)
{
- if (p_149674_1_.func_72957_l(p_149674_2_, p_149674_3_ + 1, p_149674_4_) < 4 && p_149674_1_.func_147439_a(p_149674_2_, p_149674_3_ + 1, p_149674_4_).func_149717_k() > 2)
+ if (p_149674_1_.func_72957_l(p_149674_2_, p_149674_3_ + 1, p_149674_4_) < 4 && p_149674_1_.getBlockLightOpacity(p_149674_2_, p_149674_3_ + 1, p_149674_4_) > 2)
{
p_149674_1_.func_147449_b(p_149674_2_, p_149674_3_, p_149674_4_, Blocks.field_150346_d);
}
@@ -50,7 +50,7 @@
int k1 = p_149674_4_ + p_149674_5_.nextInt(3) - 1;
Block block = p_149674_1_.func_147439_a(i1, j1 + 1, k1);
- if (p_149674_1_.func_147439_a(i1, j1, k1) == Blocks.field_150346_d && p_149674_1_.func_72805_g(i1, j1, k1) == 0 && p_149674_1_.func_72957_l(i1, j1 + 1, k1) >= 4 && block.func_149717_k() <= 2)
+ if (p_149674_1_.func_147439_a(i1, j1, k1) == Blocks.field_150346_d && p_149674_1_.func_72805_g(i1, j1, k1) == 0 && p_149674_1_.func_72957_l(i1, j1 + 1, k1) >= 4 && p_149674_1_.getBlockLightOpacity(i1, j1 + 1, k1) <= 2)
{
p_149674_1_.func_147449_b(i1, j1, k1, this);
}
@@ -0,0 +1,65 @@
--- ../src-base/minecraft/net/minecraft/block/BlockNetherWart.java
+++ ../src-work/minecraft/net/minecraft/block/BlockNetherWart.java
@@ -2,6 +2,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.ArrayList;
import java.util.Random;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
@@ -11,6 +12,7 @@
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
public class BlockNetherWart extends BlockBush
{
@@ -33,7 +35,7 @@
public boolean func_149718_j(World p_149718_1_, int p_149718_2_, int p_149718_3_, int p_149718_4_)
{
- return this.func_149854_a(p_149718_1_.func_147439_a(p_149718_2_, p_149718_3_ - 1, p_149718_4_));
+ return super.func_149718_j(p_149718_1_, p_149718_2_, p_149718_3_, p_149718_4_);
}
public void func_149674_a(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_)
@@ -60,9 +62,12 @@
return 6;
}
+ @SuppressWarnings("unused")
public void func_149690_a(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_)
{
- if (!p_149690_1_.field_72995_K)
+ super.func_149690_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, p_149690_6_, p_149690_7_);
+
+ if (false && !p_149690_1_.field_72995_K)
{
int j1 = 1;
@@ -109,4 +114,23 @@
this.field_149883_a[i] = p_149651_1_.func_94245_a(this.func_149641_N() + "_stage_" + i);
}
}
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune)
+ {
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
+ int count = 1;
+
+ if (metadata >= 3)
+ {
+ count = 2 + world.field_73012_v.nextInt(3) + (fortune > 0 ? world.field_73012_v.nextInt(fortune + 1) : 0);
+ }
+
+ for (int i = 0; i < count; i++)
+ {
+ ret.add(new ItemStack(Items.field_151075_bm));
+ }
+
+ return ret;
+ }
}
@@ -0,0 +1,24 @@
--- ../src-base/minecraft/net/minecraft/block/BlockNote.java
+++ ../src-work/minecraft/net/minecraft/block/BlockNote.java
@@ -45,7 +45,9 @@
if (tileentitynote != null)
{
+ int old = tileentitynote.field_145879_a;
tileentitynote.func_145877_a();
+ if (old == tileentitynote.field_145879_a) return false;
tileentitynote.func_145878_a(p_149727_1_, p_149727_2_, p_149727_3_, p_149727_4_);
}
@@ -73,6 +75,11 @@
public boolean func_149696_a(World p_149696_1_, int p_149696_2_, int p_149696_3_, int p_149696_4_, int p_149696_5_, int p_149696_6_)
{
+ int meta = p_149696_1_.func_72805_g(p_149696_2_, p_149696_3_, p_149696_4_);
+ net.minecraftforge.event.world.NoteBlockEvent.Play e = new net.minecraftforge.event.world.NoteBlockEvent.Play(p_149696_1_, p_149696_2_, p_149696_3_, p_149696_4_, meta, p_149696_6_, p_149696_5_);
+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(e)) return false;
+ p_149696_5_ = e.instrument.ordinal();
+ p_149696_6_ = e.getVanillaNoteId();
float f = (float)Math.pow(2.0D, (double)(p_149696_6_ - 12) / 12.0D);
String s = "harp";
@@ -0,0 +1,58 @@
--- ../src-base/minecraft/net/minecraft/block/BlockOre.java
+++ ../src-work/minecraft/net/minecraft/block/BlockOre.java
@@ -7,6 +7,7 @@
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.util.MathHelper;
+import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockOre extends Block
@@ -51,34 +52,40 @@
public void func_149690_a(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_)
{
super.func_149690_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, p_149690_6_, p_149690_7_);
+ }
- if (this.func_149650_a(p_149690_5_, p_149690_1_.field_73012_v, p_149690_7_) != Item.func_150898_a(this))
+ private Random rand = new Random();
+ @Override
+ public int getExpDrop(IBlockAccess p_149690_1_, int p_149690_5_, int p_149690_7_)
+ {
+ if (this.func_149650_a(p_149690_5_, rand, p_149690_7_) != Item.func_150898_a(this))
{
int j1 = 0;
if (this == Blocks.field_150365_q)
{
- j1 = MathHelper.func_76136_a(p_149690_1_.field_73012_v, 0, 2);
+ j1 = MathHelper.func_76136_a(rand, 0, 2);
}
else if (this == Blocks.field_150482_ag)
{
- j1 = MathHelper.func_76136_a(p_149690_1_.field_73012_v, 3, 7);
+ j1 = MathHelper.func_76136_a(rand, 3, 7);
}
else if (this == Blocks.field_150412_bA)
{
- j1 = MathHelper.func_76136_a(p_149690_1_.field_73012_v, 3, 7);
+ j1 = MathHelper.func_76136_a(rand, 3, 7);
}
else if (this == Blocks.field_150369_x)
{
- j1 = MathHelper.func_76136_a(p_149690_1_.field_73012_v, 2, 5);
+ j1 = MathHelper.func_76136_a(rand, 2, 5);
}
else if (this == Blocks.field_150449_bY)
{
- j1 = MathHelper.func_76136_a(p_149690_1_.field_73012_v, 2, 5);
+ j1 = MathHelper.func_76136_a(rand, 2, 5);
}
- this.func_149657_c(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, j1);
+ return j1;
}
+ return 0;
}
public int func_149692_a(int p_149692_1_)
@@ -0,0 +1,52 @@
--- ../src-base/minecraft/net/minecraft/block/BlockPane.java
+++ ../src-work/minecraft/net/minecraft/block/BlockPane.java
@@ -15,6 +15,8 @@
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+import static net.minecraftforge.common.util.ForgeDirection.*;
public class BlockPane extends Block
{
@@ -62,10 +64,10 @@
public void func_149743_a(World p_149743_1_, int p_149743_2_, int p_149743_3_, int p_149743_4_, AxisAlignedBB p_149743_5_, List p_149743_6_, Entity p_149743_7_)
{
- boolean flag = this.func_150098_a(p_149743_1_.func_147439_a(p_149743_2_, p_149743_3_, p_149743_4_ - 1));
- boolean flag1 = this.func_150098_a(p_149743_1_.func_147439_a(p_149743_2_, p_149743_3_, p_149743_4_ + 1));
- boolean flag2 = this.func_150098_a(p_149743_1_.func_147439_a(p_149743_2_ - 1, p_149743_3_, p_149743_4_));
- boolean flag3 = this.func_150098_a(p_149743_1_.func_147439_a(p_149743_2_ + 1, p_149743_3_, p_149743_4_));
+ boolean flag = this.canPaneConnectTo(p_149743_1_, p_149743_2_, p_149743_3_, p_149743_4_ - 1, NORTH);
+ boolean flag1 = this.canPaneConnectTo(p_149743_1_, p_149743_2_, p_149743_3_, p_149743_4_ + 1, SOUTH);
+ boolean flag2 = this.canPaneConnectTo(p_149743_1_, p_149743_2_ - 1, p_149743_3_, p_149743_4_, WEST );
+ boolean flag3 = this.canPaneConnectTo(p_149743_1_, p_149743_2_ + 1, p_149743_3_, p_149743_4_, EAST );
if ((!flag2 || !flag3) && (flag2 || flag3 || flag || flag1))
{
@@ -117,10 +119,10 @@
float f1 = 0.5625F;
float f2 = 0.4375F;
float f3 = 0.5625F;
- boolean flag = this.func_150098_a(p_149719_1_.func_147439_a(p_149719_2_, p_149719_3_, p_149719_4_ - 1));
- boolean flag1 = this.func_150098_a(p_149719_1_.func_147439_a(p_149719_2_, p_149719_3_, p_149719_4_ + 1));
- boolean flag2 = this.func_150098_a(p_149719_1_.func_147439_a(p_149719_2_ - 1, p_149719_3_, p_149719_4_));
- boolean flag3 = this.func_150098_a(p_149719_1_.func_147439_a(p_149719_2_ + 1, p_149719_3_, p_149719_4_));
+ boolean flag = this.canPaneConnectTo(p_149719_1_, p_149719_2_, p_149719_3_, p_149719_4_ - 1, NORTH);
+ boolean flag1 = this.canPaneConnectTo(p_149719_1_, p_149719_2_, p_149719_3_, p_149719_4_ + 1, SOUTH);
+ boolean flag2 = this.canPaneConnectTo(p_149719_1_, p_149719_2_ - 1, p_149719_3_, p_149719_4_, WEST );
+ boolean flag3 = this.canPaneConnectTo(p_149719_1_, p_149719_2_ + 1, p_149719_3_, p_149719_4_, EAST );
if ((!flag2 || !flag3) && (flag2 || flag3 || flag || flag1))
{
@@ -186,4 +188,10 @@
this.field_149761_L = p_149651_1_.func_94245_a(this.field_150101_M);
this.field_150102_N = p_149651_1_.func_94245_a(this.field_150100_a);
}
+
+ public boolean canPaneConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir)
+ {
+ return func_150098_a(world.func_147439_a(x, y, z)) ||
+ world.isSideSolid(x, y, z, dir.getOpposite(), false);
+ }
}
@@ -0,0 +1,65 @@
--- ../src-base/minecraft/net/minecraft/block/BlockPistonBase.java
+++ ../src-work/minecraft/net/minecraft/block/BlockPistonBase.java
@@ -11,6 +11,7 @@
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
+import net.minecraft.server.management.PlayerManager;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityPiston;
import net.minecraft.util.AxisAlignedBB;
@@ -360,7 +361,8 @@
return false;
}
- return !(p_150080_0_ instanceof ITileEntityProvider);
+ return !(p_150080_1_.func_147439_a(p_150080_2_, p_150080_3_, p_150080_4_).hasTileEntity(p_150080_1_.func_72805_g(p_150080_2_, p_150080_3_, p_150080_4_)));
+
}
}
@@ -375,14 +377,14 @@
{
if (l1 < 13)
{
- if (j1 <= 0 || j1 >= 255)
+ if (j1 <= 0 || j1 >= p_150077_0_.func_72800_K())
{
return false;
}
Block block = p_150077_0_.func_147439_a(i1, j1, k1);
- if (block.func_149688_o() != Material.field_151579_a)
+ if (!block.isAir(p_150077_0_, i1, j1, k1))
{
if (!func_150080_a(block, p_150077_0_, i1, j1, k1, true))
{
@@ -420,14 +422,14 @@
{
if (l1 < 13)
{
- if (j1 <= 0 || j1 >= 255)
+ if (j1 <= 0 || j1 >= p_150079_1_.func_72800_K())
{
return false;
}
Block block = p_150079_1_.func_147439_a(i1, j1, k1);
- if (block.func_149688_o() != Material.field_151579_a)
+ if (!block.isAir(p_150079_1_, i1, j1, k1))
{
if (!func_150080_a(block, p_150079_1_, i1, j1, k1, true))
{
@@ -448,7 +450,9 @@
continue;
}
- block.func_149697_b(p_150079_1_, i1, j1, k1, p_150079_1_.func_72805_g(i1, j1, k1), 0);
+ //With our change to how snowballs are dropped this needs to disallow to mimic vanilla behavior.
+ float chance = block instanceof BlockSnow ? -1.0f : 1.0f;
+ block.func_149690_a(p_150079_1_, i1, j1, k1, p_150079_1_.func_72805_g(i1, j1, k1), chance, 0);
p_150079_1_.func_147468_f(i1, j1, k1);
}
}
@@ -0,0 +1,47 @@
--- ../src-base/minecraft/net/minecraft/block/BlockPistonMoving.java
+++ ../src-work/minecraft/net/minecraft/block/BlockPistonMoving.java
@@ -2,11 +2,13 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.ArrayList;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityPiston;
import net.minecraft.util.AxisAlignedBB;
@@ -90,15 +92,7 @@
public void func_149690_a(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_)
{
- if (!p_149690_1_.field_72995_K)
- {
- TileEntityPiston tileentitypiston = this.func_149963_e(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_);
-
- if (tileentitypiston != null)
- {
- tileentitypiston.func_145861_a().func_149697_b(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, tileentitypiston.func_145832_p(), 0);
- }
- }
+ super.func_149690_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, p_149690_6_, p_149690_7_);
}
public void func_149695_a(World p_149695_1_, int p_149695_2_, int p_149695_3_, int p_149695_4_, Block p_149695_5_)
@@ -231,4 +225,13 @@
{
this.field_149761_L = p_149651_1_.func_94245_a("piston_top_normal");
}
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune)
+ {
+ TileEntityPiston te = this.func_149963_e(world, x, y, z);
+ if (te != null)
+ return te.func_145861_a().getDrops(world, x, y, z, te.func_145832_p(), 0);
+ return new ArrayList<ItemStack>();
+ }
}
@@ -0,0 +1,32 @@
--- ../src-base/minecraft/net/minecraft/block/BlockPotato.java
+++ ../src-work/minecraft/net/minecraft/block/BlockPotato.java
@@ -1,5 +1,6 @@
package net.minecraft.block;
+import java.util.ArrayList;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -46,14 +47,15 @@
public void func_149690_a(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_)
{
super.func_149690_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, p_149690_6_, p_149690_7_);
+ }
- if (!p_149690_1_.field_72995_K)
- {
- if (p_149690_5_ >= 7 && p_149690_1_.field_73012_v.nextInt(50) == 0)
- {
- this.func_149642_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, new ItemStack(Items.field_151170_bI));
- }
- }
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune)
+ {
+ ArrayList<ItemStack> ret = super.getDrops(world, x, y, z, metadata, fortune);
+ if (metadata >= 7 && world.field_73012_v.nextInt(50) == 0)
+ ret.add(new ItemStack(Items.field_151170_bI));
+ return ret;
}
@SideOnly(Side.CLIENT)
@@ -0,0 +1,11 @@
--- ../src-base/minecraft/net/minecraft/block/BlockPumpkin.java
+++ ../src-work/minecraft/net/minecraft/block/BlockPumpkin.java
@@ -113,7 +113,7 @@
public boolean func_149742_c(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
{
- return p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_, p_149742_4_).field_149764_J.func_76222_j() && World.func_147466_a(p_149742_1_, p_149742_2_, p_149742_3_ - 1, p_149742_4_);
+ return p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_, p_149742_4_).isReplaceable(p_149742_1_, p_149742_2_, p_149742_3_, p_149742_4_) && World.func_147466_a(p_149742_1_, p_149742_2_, p_149742_3_ - 1, p_149742_4_);
}
public void func_149689_a(World p_149689_1_, int p_149689_2_, int p_149689_3_, int p_149689_4_, EntityLivingBase p_149689_5_, ItemStack p_149689_6_)
@@ -0,0 +1,208 @@
--- ../src-base/minecraft/net/minecraft/block/BlockRailBase.java
+++ ../src-work/minecraft/net/minecraft/block/BlockRailBase.java
@@ -5,6 +5,7 @@
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.init.Blocks;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MovingObjectPosition;
@@ -25,7 +26,7 @@
public static final boolean func_150051_a(Block p_150051_0_)
{
- return p_150051_0_ == Blocks.field_150448_aq || p_150051_0_ == Blocks.field_150318_D || p_150051_0_ == Blocks.field_150319_E || p_150051_0_ == Blocks.field_150408_cc;
+ return p_150051_0_ instanceof BlockRailBase;
}
protected BlockRailBase(boolean p_i45389_1_)
@@ -78,7 +79,7 @@
public int func_149645_b()
{
- return 9;
+ return renderType;
}
public int func_149745_a(Random p_149745_1_)
@@ -193,6 +194,111 @@
}
}
+ /* ======================================== FORGE START =====================================*/
+ /**
+ * Return true if the rail can make corners.
+ * Used by placement logic.
+ * @param world The world.
+ * @param x The rail X coordinate.
+ * @param y The rail Y coordinate.
+ * @param z The rail Z coordinate.
+ * @return True if the rail can make corners.
+ */
+ public boolean isFlexibleRail(IBlockAccess world, int y, int x, int z)
+ {
+ return !func_150050_e();
+ }
+
+ /**
+ * Returns true if the rail can make up and down slopes.
+ * Used by placement logic.
+ * @param world The world.
+ * @param x The rail X coordinate.
+ * @param y The rail Y coordinate.
+ * @param z The rail Z coordinate.
+ * @return True if the rail can make slopes.
+ */
+ public boolean canMakeSlopes(IBlockAccess world, int x, int y, int z)
+ {
+ return true;
+ }
+
+ /**
+ * Return the rail's metadata (without the power bit if the rail uses one).
+ * Can be used to make the cart think the rail something other than it is,
+ * for example when making diamond junctions or switches.
+ * The cart parameter will often be null unless it it called from EntityMinecart.
+ *
+ * Valid rail metadata is defined as follows:
+ * 0x0: flat track going North-South
+ * 0x1: flat track going West-East
+ * 0x2: track ascending to the East
+ * 0x3: track ascending to the West
+ * 0x4: track ascending to the North
+ * 0x5: track ascending to the South
+ * 0x6: WestNorth corner (connecting East and South)
+ * 0x7: EastNorth corner (connecting West and South)
+ * 0x8: EastSouth corner (connecting West and North)
+ * 0x9: WestSouth corner (connecting East and North)
+ *
+ * @param world The world.
+ * @param cart The cart asking for the metadata, null if it is not called by EntityMinecart.
+ * @param y The rail X coordinate.
+ * @param x The rail Y coordinate.
+ * @param z The rail Z coordinate.
+ * @return The metadata.
+ */
+ public int getBasicRailMetadata(IBlockAccess world, EntityMinecart cart, int x, int y, int z)
+ {
+ int meta = world.func_72805_g(x, y, z);
+ if(func_150050_e())
+ {
+ meta = meta & 7;
+ }
+ return meta;
+ }
+
+ /**
+ * Returns the max speed of the rail at the specified position.
+ * @param world The world.
+ * @param cart The cart on the rail, may be null.
+ * @param x The rail X coordinate.
+ * @param y The rail Y coordinate.
+ * @param z The rail Z coordinate.
+ * @return The max speed of the current rail.
+ */
+ public float getRailMaxSpeed(World world, EntityMinecart cart, int y, int x, int z)
+ {
+ return 0.4f;
+ }
+
+ /**
+ * This function is called by any minecart that passes over this rail.
+ * It is called once per update tick that the minecart is on the rail.
+ * @param world The world.
+ * @param cart The cart on the rail.
+ * @param y The rail X coordinate.
+ * @param x The rail Y coordinate.
+ * @param z The rail Z coordinate.
+ */
+ public void onMinecartPass(World world, EntityMinecart cart, int y, int x, int z)
+ {
+ }
+
+ /**
+ * Forge: Moved render type to a field and a setter.
+ * This allows for a mod to change the render type
+ * for vanilla rails, and any mod rails that extend
+ * this class.
+ */
+ private int renderType = 9;
+
+ public void setRenderType(int value)
+ {
+ renderType = value;
+ }
+ /* ======================================== FORGE END =====================================*/
+
public class Rail
{
private World field_150660_b;
@@ -202,6 +308,7 @@
private final boolean field_150656_f;
private List field_150657_g = new ArrayList();
private static final String __OBFID = "CL_00000196";
+ private final boolean canMakeSlopes;
public Rail(World p_i45388_2_, int p_i45388_3_, int p_i45388_4_, int p_i45388_5_)
{
@@ -209,19 +316,10 @@
this.field_150661_c = p_i45388_3_;
this.field_150658_d = p_i45388_4_;
this.field_150659_e = p_i45388_5_;
- Block block = p_i45388_2_.func_147439_a(p_i45388_3_, p_i45388_4_, p_i45388_5_);
- int l = p_i45388_2_.func_72805_g(p_i45388_3_, p_i45388_4_, p_i45388_5_);
-
- if (((BlockRailBase)block).field_150053_a)
- {
- this.field_150656_f = true;
- l &= -9;
- }
- else
- {
- this.field_150656_f = false;
- }
-
+ BlockRailBase block = (BlockRailBase)p_i45388_2_.func_147439_a(p_i45388_3_, p_i45388_4_, p_i45388_5_);
+ int l = block.getBasicRailMetadata(p_i45388_2_, null, p_i45388_3_, p_i45388_4_, p_i45388_5_);
+ this.field_150656_f = !block.isFlexibleRail(p_i45388_2_, p_i45388_3_, p_i45388_4_, p_i45388_5_);
+ canMakeSlopes = block.canMakeSlopes(p_i45388_2_, p_i45388_3_, p_i45388_4_, p_i45388_5_);
this.func_150648_a(l);
}
@@ -412,7 +510,7 @@
}
}
- if (b0 == 0)
+ if (b0 == 0 && canMakeSlopes)
{
if (BlockRailBase.func_150049_b_(this.field_150660_b, this.field_150661_c, this.field_150658_d + 1, this.field_150659_e - 1))
{
@@ -425,7 +523,7 @@
}
}
- if (b0 == 1)
+ if (b0 == 1 && canMakeSlopes)
{
if (BlockRailBase.func_150049_b_(this.field_150660_b, this.field_150661_c + 1, this.field_150658_d + 1, this.field_150659_e))
{
@@ -570,7 +668,7 @@
}
}
- if (b0 == 0)
+ if (b0 == 0 && canMakeSlopes)
{
if (BlockRailBase.func_150049_b_(this.field_150660_b, this.field_150661_c, this.field_150658_d + 1, this.field_150659_e - 1))
{
@@ -583,7 +681,7 @@
}
}
- if (b0 == 1)
+ if (b0 == 1 && canMakeSlopes)
{
if (BlockRailBase.func_150049_b_(this.field_150660_b, this.field_150661_c + 1, this.field_150658_d + 1, this.field_150659_e))
{
@@ -0,0 +1,22 @@
--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneComparator.java
+++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneComparator.java
@@ -228,4 +228,19 @@
{
return new TileEntityComparator();
}
+
+ @Override
+ public void onNeighborChange(IBlockAccess world, int x, int y, int z, int tileX, int tileY, int tileZ)
+ {
+ if (y == tileY && world instanceof World)
+ {
+ func_149695_a((World)world, x, y, z, world.func_147439_a(tileX, tileY, tileZ));
+ }
+ }
+
+ @Override
+ public boolean getWeakChanges(IBlockAccess world, int x, int y, int z)
+ {
+ return true;
+ }
}
@@ -0,0 +1,31 @@
--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneOre.java
+++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneOre.java
@@ -10,6 +10,7 @@
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockRedstoneOre extends Block
@@ -88,12 +89,17 @@
public void func_149690_a(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_)
{
super.func_149690_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, p_149690_6_, p_149690_7_);
+ }
- if (this.func_149650_a(p_149690_5_, p_149690_1_.field_73012_v, p_149690_7_) != Item.func_150898_a(this))
+ private Random rand = new Random();
+ @Override // World, meta, fortune
+ public int getExpDrop(IBlockAccess p_149690_1_, int p_149690_5_, int p_149690_7_)
+ {
+ if (this.func_149650_a(p_149690_5_, rand, p_149690_7_) != Item.func_150898_a(this))
{
- int j1 = 1 + p_149690_1_.field_73012_v.nextInt(5);
- this.func_149657_c(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, j1);
+ return 1 + rand.nextInt(5);
}
+ return 0;
}
@SideOnly(Side.CLIENT)
@@ -0,0 +1,11 @@
--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneWire.java
+++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneWire.java
@@ -405,7 +405,7 @@
}
else if (!Blocks.field_150413_aR.func_149907_e(block))
{
- return block.func_149744_f() && p_150174_4_ != -1;
+ return block.canConnectRedstone(p_150174_0_, p_150174_1_, p_150174_2_, p_150174_3_, p_150174_4_);
}
else
{
@@ -0,0 +1,47 @@
--- ../src-base/minecraft/net/minecraft/block/BlockReed.java
+++ ../src-work/minecraft/net/minecraft/block/BlockReed.java
@@ -11,7 +11,11 @@
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
-public class BlockReed extends Block
+import net.minecraftforge.common.EnumPlantType;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.common.IPlantable;
+
+public class BlockReed extends Block implements IPlantable
{
private static final String __OBFID = "CL_00000300";
@@ -57,7 +61,7 @@
public boolean func_149742_c(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
{
Block block = p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_ - 1, p_149742_4_);
- return block == this ? true : (block != Blocks.field_150349_c && block != Blocks.field_150346_d && block != Blocks.field_150354_m ? false : (p_149742_1_.func_147439_a(p_149742_2_ - 1, p_149742_3_ - 1, p_149742_4_).func_149688_o() == Material.field_151586_h ? true : (p_149742_1_.func_147439_a(p_149742_2_ + 1, p_149742_3_ - 1, p_149742_4_).func_149688_o() == Material.field_151586_h ? true : (p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_ - 1, p_149742_4_ - 1).func_149688_o() == Material.field_151586_h ? true : p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_ - 1, p_149742_4_ + 1).func_149688_o() == Material.field_151586_h))));
+ return block.canSustainPlant(p_149742_1_, p_149742_2_, p_149742_3_ - 1, p_149742_4_, ForgeDirection.UP, this);
}
public void func_149695_a(World p_149695_1_, int p_149695_2_, int p_149695_3_, int p_149695_4_, Block p_149695_5_)
@@ -120,4 +124,22 @@
{
return p_149720_1_.func_72807_a(p_149720_2_, p_149720_4_).func_150558_b(p_149720_2_, p_149720_3_, p_149720_4_);
}
+
+ @Override
+ public EnumPlantType getPlantType(IBlockAccess world, int x, int y, int z)
+ {
+ return EnumPlantType.Beach;
+ }
+
+ @Override
+ public Block getPlant(IBlockAccess world, int x, int y, int z)
+ {
+ return this;
+ }
+
+ @Override
+ public int getPlantMetadata(IBlockAccess world, int x, int y, int z)
+ {
+ return world.func_72805_g(x, y, z);
+ }
}
@@ -0,0 +1,10 @@
--- ../src-base/minecraft/net/minecraft/block/BlockSapling.java
+++ ../src-work/minecraft/net/minecraft/block/BlockSapling.java
@@ -71,6 +71,7 @@
public void func_149878_d(World p_149878_1_, int p_149878_2_, int p_149878_3_, int p_149878_4_, Random p_149878_5_)
{
+ if (!net.minecraftforge.event.terraingen.TerrainGen.saplingGrowTree(p_149878_1_, p_149878_5_, p_149878_2_, p_149878_3_, p_149878_4_)) return;
int l = p_149878_1_.func_72805_g(p_149878_2_, p_149878_3_, p_149878_4_) & 7;
Object object = p_149878_5_.nextInt(10) == 0 ? new WorldGenBigTree(true) : new WorldGenTrees(true);
int i1 = 0;
@@ -0,0 +1,62 @@
--- ../src-base/minecraft/net/minecraft/block/BlockSkull.java
+++ ../src-work/minecraft/net/minecraft/block/BlockSkull.java
@@ -2,6 +2,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.Random;
import net.minecraft.block.material.Material;
@@ -108,8 +109,6 @@
return p_149692_1_;
}
- public void func_149690_a(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_) {}
-
public void func_149681_a(World p_149681_1_, int p_149681_2_, int p_149681_3_, int p_149681_4_, int p_149681_5_, EntityPlayer p_149681_6_)
{
if (p_149681_6_.field_71075_bZ.field_75098_d)
@@ -118,29 +117,38 @@
p_149681_1_.func_72921_c(p_149681_2_, p_149681_3_, p_149681_4_, p_149681_5_, 4);
}
+ this.func_149697_b(p_149681_1_, p_149681_2_, p_149681_3_, p_149681_4_, p_149681_5_, 0);
+
super.func_149681_a(p_149681_1_, p_149681_2_, p_149681_3_, p_149681_4_, p_149681_5_, p_149681_6_);
}
public void func_149749_a(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
{
- if (!p_149749_1_.field_72995_K)
+ super.func_149749_a(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
+ }
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, int p_149749_6_, int fortune)
+ {
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
{
if ((p_149749_6_ & 8) == 0)
{
ItemStack itemstack = new ItemStack(Items.field_151144_bL, 1, this.func_149643_k(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_));
TileEntitySkull tileentityskull = (TileEntitySkull)p_149749_1_.func_147438_o(p_149749_2_, p_149749_3_, p_149749_4_);
+ if (tileentityskull == null) return ret;
+
if (tileentityskull.func_145904_a() == 3 && tileentityskull.func_145907_c() != null && tileentityskull.func_145907_c().length() > 0)
{
itemstack.func_77982_d(new NBTTagCompound());
itemstack.func_77978_p().func_74778_a("SkullOwner", tileentityskull.func_145907_c());
}
- this.func_149642_a(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, itemstack);
+ ret.add(itemstack);
}
-
- super.func_149749_a(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
}
+ return ret;
}
public Item func_149650_a(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
@@ -0,0 +1,82 @@
--- ../src-base/minecraft/net/minecraft/block/BlockSnow.java
+++ ../src-work/minecraft/net/minecraft/block/BlockSnow.java
@@ -73,7 +73,7 @@
public boolean func_149742_c(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
{
Block block = p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_ - 1, p_149742_4_);
- return block != Blocks.field_150432_aD && block != Blocks.field_150403_cj ? (block.func_149688_o() == Material.field_151584_j ? true : (block == this && (p_149742_1_.func_72805_g(p_149742_2_, p_149742_3_ - 1, p_149742_4_) & 7) == 7 ? true : block.func_149662_c() && block.field_149764_J.func_76230_c())) : false;
+ return block != Blocks.field_150432_aD && block != Blocks.field_150403_cj ? (block.isLeaves(p_149742_1_, p_149742_2_, p_149742_3_ - 1, p_149742_4_) ? true : (block == this && (p_149742_1_.func_72805_g(p_149742_2_, p_149742_3_ - 1, p_149742_4_) & 7) == 7 ? true : block.func_149662_c() && block.field_149764_J.func_76230_c())) : false;
}
public void func_149695_a(World p_149695_1_, int p_149695_2_, int p_149695_3_, int p_149695_4_, Block p_149695_5_)
@@ -85,7 +85,6 @@
{
if (!this.func_149742_c(p_150155_1_, p_150155_2_, p_150155_3_, p_150155_4_))
{
- this.func_149697_b(p_150155_1_, p_150155_2_, p_150155_3_, p_150155_4_, p_150155_1_.func_72805_g(p_150155_2_, p_150155_3_, p_150155_4_), 0);
p_150155_1_.func_147468_f(p_150155_2_, p_150155_3_, p_150155_4_);
return false;
}
@@ -97,10 +96,8 @@
public void func_149636_a(World p_149636_1_, EntityPlayer p_149636_2_, int p_149636_3_, int p_149636_4_, int p_149636_5_, int p_149636_6_)
{
- int i1 = p_149636_6_ & 7;
- this.func_149642_a(p_149636_1_, p_149636_3_, p_149636_4_, p_149636_5_, new ItemStack(Items.field_151126_ay, i1 + 1, 0));
+ super.func_149636_a(p_149636_1_, p_149636_2_, p_149636_3_, p_149636_4_, p_149636_5_, p_149636_6_);
p_149636_1_.func_147468_f(p_149636_3_, p_149636_4_, p_149636_5_);
- p_149636_2_.func_71064_a(StatList.field_75934_C[Block.func_149682_b(this)], 1);
}
public Item func_149650_a(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
@@ -110,14 +107,13 @@
public int func_149745_a(Random p_149745_1_)
{
- return 0;
+ return 1;
}
public void func_149674_a(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_)
{
if (p_149674_1_.func_72972_b(EnumSkyBlock.Block, p_149674_2_, p_149674_3_, p_149674_4_) > 11)
{
- this.func_149697_b(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_, p_149674_1_.func_72805_g(p_149674_2_, p_149674_3_, p_149674_4_), 0);
p_149674_1_.func_147468_f(p_149674_2_, p_149674_3_, p_149674_4_);
}
}
@@ -127,4 +123,34 @@
{
return p_149646_5_ == 1 ? true : super.func_149646_a(p_149646_1_, p_149646_2_, p_149646_3_, p_149646_4_, p_149646_5_);
}
+
+ /**
+ * Metadata and fortune sensitive version, this replaces the old (int meta, Random rand)
+ * version in 1.1.
+ *
+ * @param meta Blocks Metadata
+ * @param fortune Current item fortune level
+ * @param random Random number generator
+ * @return The number of items to drop
+ */
+ public int quantityDropped(int meta, int fortune, Random random)
+ {
+ return (meta & 7) + 1;
+ }
+
+ /**
+ * Determines if a new block can be replace the space occupied by this one,
+ * Used in the player's placement code to make the block act like water, and lava.
+ *
+ * @param world The current world
+ * @param x X Position
+ * @param y Y position
+ * @param z Z position
+ * @return True if the block is replaceable by another block
+ */
+ public boolean isReplaceable(IBlockAccess world, int x, int y, int z)
+ {
+ int meta = world.func_72805_g(x, y, z);
+ return meta >= 7 ? false : field_149764_J.func_76222_j();
+ }
}
@@ -0,0 +1,79 @@
--- ../src-base/minecraft/net/minecraft/block/BlockStem.java
+++ ../src-work/minecraft/net/minecraft/block/BlockStem.java
@@ -2,6 +2,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.ArrayList;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -14,6 +15,7 @@
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import static net.minecraftforge.common.util.ForgeDirection.*;
public class BlockStem extends BlockBush implements IGrowable
{
@@ -101,7 +103,7 @@
Block block = p_149674_1_.func_147439_a(j1, p_149674_3_ - 1, k1);
- if (p_149674_1_.func_147439_a(j1, p_149674_3_, k1).field_149764_J == Material.field_151579_a && (block == Blocks.field_150458_ak || block == Blocks.field_150346_d || block == Blocks.field_150349_c))
+ if (p_149674_1_.func_147437_c(j1, p_149674_3_, k1) && (block.canSustainPlant(p_149674_1_, j1, p_149674_3_ - 1, k1, UP, this) || block == Blocks.field_150346_d || block == Blocks.field_150349_c))
{
p_149674_1_.func_147449_b(j1, p_149674_3_, k1, this.field_149877_a);
}
@@ -144,11 +146,11 @@
Block block8 = p_149875_1_.func_147439_a(l, p_149875_3_ - 1, i1);
float f1 = 0.0F;
- if (block8 == Blocks.field_150458_ak)
+ if (block8.canSustainPlant(p_149875_1_, l, p_149875_3_ - 1, i1, UP, this))
{
f1 = 1.0F;
- if (p_149875_1_.func_72805_g(l, p_149875_3_ - 1, i1) > 0)
+ if (block8.isFertile(p_149875_1_, l, p_149875_3_ - 1, i1))
{
f1 = 3.0F;
}
@@ -211,11 +213,12 @@
return l < 7 ? -1 : (p_149873_1_.func_147439_a(p_149873_2_ - 1, p_149873_3_, p_149873_4_) == this.field_149877_a ? 0 : (p_149873_1_.func_147439_a(p_149873_2_ + 1, p_149873_3_, p_149873_4_) == this.field_149877_a ? 1 : (p_149873_1_.func_147439_a(p_149873_2_, p_149873_3_, p_149873_4_ - 1) == this.field_149877_a ? 2 : (p_149873_1_.func_147439_a(p_149873_2_, p_149873_3_, p_149873_4_ + 1) == this.field_149877_a ? 3 : -1))));
}
+ @SuppressWarnings("unused")
public void func_149690_a(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_)
{
super.func_149690_a(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, p_149690_6_, p_149690_7_);
- if (!p_149690_1_.field_72995_K)
+ if (false && !p_149690_1_.field_72995_K)
{
Item item = null;
@@ -282,4 +285,23 @@
{
this.func_149874_m(p_149853_1_, p_149853_3_, p_149853_4_, p_149853_5_);
}
+
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune)
+ {
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
+
+ Item item = null;
+ item = field_149877_a == Blocks.field_150423_aK ? Items.field_151080_bb : item;
+ item = field_149877_a == Blocks.field_150440_ba ? Items.field_151081_bc : item;
+
+ for (int i = 0; item != null && i < 3; i++)
+ {
+ if (world.field_73012_v.nextInt(15) <= meta)
+ ret.add(new ItemStack(item));
+ }
+
+ return ret;
+ }
}
@@ -0,0 +1,83 @@
--- ../src-base/minecraft/net/minecraft/block/BlockTallGrass.java
+++ ../src-work/minecraft/net/minecraft/block/BlockTallGrass.java
@@ -2,6 +2,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import net.minecraft.block.material.Material;
@@ -17,8 +18,10 @@
import net.minecraft.world.ColorizerGrass;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.ForgeHooks;
+import net.minecraftforge.common.IShearable;
-public class BlockTallGrass extends BlockBush implements IGrowable
+public class BlockTallGrass extends BlockBush implements IGrowable, IShearable
{
private static final String[] field_149871_a = new String[] {"deadbush", "tallgrass", "fern"};
@SideOnly(Side.CLIENT)
@@ -53,7 +56,7 @@
public boolean func_149718_j(World p_149718_1_, int p_149718_2_, int p_149718_3_, int p_149718_4_)
{
- return this.func_149854_a(p_149718_1_.func_147439_a(p_149718_2_, p_149718_3_ - 1, p_149718_4_));
+ return super.func_149718_j(p_149718_1_, p_149718_2_, p_149718_3_, p_149718_4_);
}
@SideOnly(Side.CLIENT)
@@ -71,7 +74,7 @@
public Item func_149650_a(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
{
- return p_149650_2_.nextInt(8) == 0 ? Items.field_151014_N : null;
+ return null;
}
public int func_149679_a(int p_149679_1_, Random p_149679_2_)
@@ -81,13 +84,7 @@
public void func_149636_a(World p_149636_1_, EntityPlayer p_149636_2_, int p_149636_3_, int p_149636_4_, int p_149636_5_, int p_149636_6_)
{
- if (!p_149636_1_.field_72995_K && p_149636_2_.func_71045_bC() != null && p_149636_2_.func_71045_bC().func_77973_b() == Items.field_151097_aZ)
{
- p_149636_2_.func_71064_a(StatList.field_75934_C[Block.func_149682_b(this)], 1);
- this.func_149642_a(p_149636_1_, p_149636_3_, p_149636_4_, p_149636_5_, new ItemStack(Blocks.field_150329_H, 1, p_149636_6_));
- }
- else
- {
super.func_149636_a(p_149636_1_, p_149636_2_, p_149636_3_, p_149636_4_, p_149636_5_, p_149636_6_);
}
}
@@ -143,4 +140,28 @@
Blocks.field_150398_cm.func_149889_c(p_149853_1_, p_149853_3_, p_149853_4_, p_149853_5_, b0, 2);
}
}
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune)
+ {
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
+ if (world.field_73012_v.nextInt(8) != 0) return ret;
+ ItemStack seed = ForgeHooks.getGrassSeed(world);
+ if (seed != null) ret.add(seed);
+ return ret;
+ }
+
+ @Override
+ public boolean isShearable(ItemStack item, IBlockAccess world, int x, int y, int z)
+ {
+ return true;
+ }
+
+ @Override
+ public ArrayList<ItemStack> onSheared(ItemStack item, IBlockAccess world, int x, int y, int z, int fortune)
+ {
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
+ ret.add(new ItemStack(this, 1, world.func_72805_g(x, y, z)));
+ return ret;
+ }
}
@@ -0,0 +1,108 @@
--- ../src-base/minecraft/net/minecraft/block/BlockTorch.java
+++ ../src-work/minecraft/net/minecraft/block/BlockTorch.java
@@ -10,6 +10,7 @@
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
+import static net.minecraftforge.common.util.ForgeDirection.*;
public class BlockTorch extends Block
{
@@ -51,13 +52,17 @@
else
{
Block block = p_150107_1_.func_147439_a(p_150107_2_, p_150107_3_, p_150107_4_);
- return block == Blocks.field_150422_aJ || block == Blocks.field_150386_bk || block == Blocks.field_150359_w || block == Blocks.field_150463_bK;
+ return block.canPlaceTorchOnTop(p_150107_1_, p_150107_2_, p_150107_3_, p_150107_4_);
}
}
public boolean func_149742_c(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
{
- return p_149742_1_.func_147445_c(p_149742_2_ - 1, p_149742_3_, p_149742_4_, true) ? true : (p_149742_1_.func_147445_c(p_149742_2_ + 1, p_149742_3_, p_149742_4_, true) ? true : (p_149742_1_.func_147445_c(p_149742_2_, p_149742_3_, p_149742_4_ - 1, true) ? true : (p_149742_1_.func_147445_c(p_149742_2_, p_149742_3_, p_149742_4_ + 1, true) ? true : this.func_150107_m(p_149742_1_, p_149742_2_, p_149742_3_ - 1, p_149742_4_))));
+ return p_149742_1_.isSideSolid(p_149742_2_ - 1, p_149742_3_, p_149742_4_, EAST, true) ||
+ p_149742_1_.isSideSolid(p_149742_2_ + 1, p_149742_3_, p_149742_4_, WEST, true) ||
+ p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_, p_149742_4_ - 1, SOUTH, true) ||
+ p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_, p_149742_4_ + 1, NORTH, true) ||
+ func_150107_m(p_149742_1_, p_149742_2_, p_149742_3_ - 1, p_149742_4_);
}
public int func_149660_a(World p_149660_1_, int p_149660_2_, int p_149660_3_, int p_149660_4_, int p_149660_5_, float p_149660_6_, float p_149660_7_, float p_149660_8_, int p_149660_9_)
@@ -69,22 +74,22 @@
j1 = 5;
}
- if (p_149660_5_ == 2 && p_149660_1_.func_147445_c(p_149660_2_, p_149660_3_, p_149660_4_ + 1, true))
+ if (p_149660_5_ == 2 && p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_, p_149660_4_ + 1, NORTH, true))
{
j1 = 4;
}
- if (p_149660_5_ == 3 && p_149660_1_.func_147445_c(p_149660_2_, p_149660_3_, p_149660_4_ - 1, true))
+ if (p_149660_5_ == 3 && p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_, p_149660_4_ - 1, SOUTH, true))
{
j1 = 3;
}
- if (p_149660_5_ == 4 && p_149660_1_.func_147445_c(p_149660_2_ + 1, p_149660_3_, p_149660_4_, true))
+ if (p_149660_5_ == 4 && p_149660_1_.isSideSolid(p_149660_2_ + 1, p_149660_3_, p_149660_4_, WEST, true))
{
j1 = 2;
}
- if (p_149660_5_ == 5 && p_149660_1_.func_147445_c(p_149660_2_ - 1, p_149660_3_, p_149660_4_, true))
+ if (p_149660_5_ == 5 && p_149660_1_.isSideSolid(p_149660_2_ - 1, p_149660_3_, p_149660_4_, EAST, true))
{
j1 = 1;
}
@@ -106,19 +111,19 @@
{
if (p_149726_1_.func_72805_g(p_149726_2_, p_149726_3_, p_149726_4_) == 0)
{
- if (p_149726_1_.func_147445_c(p_149726_2_ - 1, p_149726_3_, p_149726_4_, true))
+ if (p_149726_1_.isSideSolid(p_149726_2_ - 1, p_149726_3_, p_149726_4_, EAST, true))
{
p_149726_1_.func_72921_c(p_149726_2_, p_149726_3_, p_149726_4_, 1, 2);
}
- else if (p_149726_1_.func_147445_c(p_149726_2_ + 1, p_149726_3_, p_149726_4_, true))
+ else if (p_149726_1_.isSideSolid(p_149726_2_ + 1, p_149726_3_, p_149726_4_, WEST, true))
{
p_149726_1_.func_72921_c(p_149726_2_, p_149726_3_, p_149726_4_, 2, 2);
}
- else if (p_149726_1_.func_147445_c(p_149726_2_, p_149726_3_, p_149726_4_ - 1, true))
+ else if (p_149726_1_.isSideSolid(p_149726_2_, p_149726_3_, p_149726_4_ - 1, SOUTH, true))
{
p_149726_1_.func_72921_c(p_149726_2_, p_149726_3_, p_149726_4_, 3, 2);
}
- else if (p_149726_1_.func_147445_c(p_149726_2_, p_149726_3_, p_149726_4_ + 1, true))
+ else if (p_149726_1_.isSideSolid(p_149726_2_, p_149726_3_, p_149726_4_ + 1, NORTH, true))
{
p_149726_1_.func_72921_c(p_149726_2_, p_149726_3_, p_149726_4_, 4, 2);
}
@@ -143,22 +148,22 @@
int l = p_150108_1_.func_72805_g(p_150108_2_, p_150108_3_, p_150108_4_);
boolean flag = false;
- if (!p_150108_1_.func_147445_c(p_150108_2_ - 1, p_150108_3_, p_150108_4_, true) && l == 1)
+ if (!p_150108_1_.isSideSolid(p_150108_2_ - 1, p_150108_3_, p_150108_4_, EAST, true) && l == 1)
{
flag = true;
}
- if (!p_150108_1_.func_147445_c(p_150108_2_ + 1, p_150108_3_, p_150108_4_, true) && l == 2)
+ if (!p_150108_1_.isSideSolid(p_150108_2_ + 1, p_150108_3_, p_150108_4_, WEST, true) && l == 2)
{
flag = true;
}
- if (!p_150108_1_.func_147445_c(p_150108_2_, p_150108_3_, p_150108_4_ - 1, true) && l == 3)
+ if (!p_150108_1_.isSideSolid(p_150108_2_, p_150108_3_, p_150108_4_ - 1, SOUTH, true) && l == 3)
{
flag = true;
}
- if (!p_150108_1_.func_147445_c(p_150108_2_, p_150108_3_, p_150108_4_ + 1, true) && l == 4)
+ if (!p_150108_1_.isSideSolid(p_150108_2_, p_150108_3_, p_150108_4_ + 1, NORTH, true) && l == 4)
{
flag = true;
}
@@ -0,0 +1,49 @@
--- ../src-base/minecraft/net/minecraft/block/BlockTrapDoor.java
+++ ../src-work/minecraft/net/minecraft/block/BlockTrapDoor.java
@@ -11,9 +11,12 @@
import net.minecraft.util.Vec3;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
public class BlockTrapDoor extends Block
{
+ /** Set this to allow trapdoors to remain free-floating */
+ public static boolean disableValidation = false;
private static final String __OBFID = "CL_00000327";
protected BlockTrapDoor(Material p_i45434_1_)
@@ -163,7 +166,7 @@
--i1;
}
- if (!func_150119_a(p_149695_1_.func_147439_a(i1, p_149695_3_, j1)))
+ if (!(func_150119_a(p_149695_1_.func_147439_a(i1, p_149695_3_, j1)) || p_149695_1_.isSideSolid(i1, p_149695_3_, j1, ForgeDirection.getOrientation((l & 3) + 2))))
{
p_149695_1_.func_147468_f(p_149695_2_, p_149695_3_, p_149695_4_);
this.func_149697_b(p_149695_1_, p_149695_2_, p_149695_3_, p_149695_4_, l, 0);
@@ -218,6 +221,7 @@
public boolean func_149707_d(World p_149707_1_, int p_149707_2_, int p_149707_3_, int p_149707_4_, int p_149707_5_)
{
+ if (disableValidation) return true;
if (p_149707_5_ == 0)
{
return false;
@@ -248,7 +252,7 @@
--p_149707_2_;
}
- return func_150119_a(p_149707_1_.func_147439_a(p_149707_2_, p_149707_3_, p_149707_4_));
+ return func_150119_a(p_149707_1_.func_147439_a(p_149707_2_, p_149707_3_, p_149707_4_)) || p_149707_1_.isSideSolid(p_149707_2_, p_149707_3_, p_149707_4_, ForgeDirection.UP);
}
}
@@ -259,6 +263,7 @@
private static boolean func_150119_a(Block p_150119_0_)
{
+ if (disableValidation) return true;
return p_150119_0_.field_149764_J.func_76218_k() && p_150119_0_.func_149686_d() || p_150119_0_ == Blocks.field_150426_aN || p_150119_0_ instanceof BlockSlab || p_150119_0_ instanceof BlockStairs;
}
}
@@ -0,0 +1,96 @@
--- ../src-base/minecraft/net/minecraft/block/BlockTripWireHook.java
+++ ../src-work/minecraft/net/minecraft/block/BlockTripWireHook.java
@@ -9,6 +9,9 @@
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+import static net.minecraftforge.common.util.ForgeDirection.*;
+
public class BlockTripWireHook extends Block
{
private static final String __OBFID = "CL_00000329";
@@ -47,34 +50,41 @@
public boolean func_149707_d(World p_149707_1_, int p_149707_2_, int p_149707_3_, int p_149707_4_, int p_149707_5_)
{
- return p_149707_5_ == 2 && p_149707_1_.func_147439_a(p_149707_2_, p_149707_3_, p_149707_4_ + 1).func_149721_r() ? true : (p_149707_5_ == 3 && p_149707_1_.func_147439_a(p_149707_2_, p_149707_3_, p_149707_4_ - 1).func_149721_r() ? true : (p_149707_5_ == 4 && p_149707_1_.func_147439_a(p_149707_2_ + 1, p_149707_3_, p_149707_4_).func_149721_r() ? true : p_149707_5_ == 5 && p_149707_1_.func_147439_a(p_149707_2_ - 1, p_149707_3_, p_149707_4_).func_149721_r()));
+ ForgeDirection dir = ForgeDirection.getOrientation(p_149707_5_);
+ return (dir == NORTH && p_149707_1_.isSideSolid(p_149707_2_, p_149707_3_, p_149707_4_ + 1, NORTH)) ||
+ (dir == SOUTH && p_149707_1_.isSideSolid(p_149707_2_, p_149707_3_, p_149707_4_ - 1, SOUTH)) ||
+ (dir == WEST && p_149707_1_.isSideSolid(p_149707_2_ + 1, p_149707_3_, p_149707_4_, WEST )) ||
+ (dir == EAST && p_149707_1_.isSideSolid(p_149707_2_ - 1, p_149707_3_, p_149707_4_, EAST ));
}
public boolean func_149742_c(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
{
- return p_149742_1_.func_147439_a(p_149742_2_ - 1, p_149742_3_, p_149742_4_).func_149721_r() ? true : (p_149742_1_.func_147439_a(p_149742_2_ + 1, p_149742_3_, p_149742_4_).func_149721_r() ? true : (p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_, p_149742_4_ - 1).func_149721_r() ? true : p_149742_1_.func_147439_a(p_149742_2_, p_149742_3_, p_149742_4_ + 1).func_149721_r()));
+ return p_149742_1_.isSideSolid(p_149742_2_ - 1, p_149742_3_, p_149742_4_, EAST ) ||
+ p_149742_1_.isSideSolid(p_149742_2_ + 1, p_149742_3_, p_149742_4_, WEST ) ||
+ p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_, p_149742_4_ - 1, SOUTH) ||
+ p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_, p_149742_4_ + 1, NORTH);
}
public int func_149660_a(World p_149660_1_, int p_149660_2_, int p_149660_3_, int p_149660_4_, int p_149660_5_, float p_149660_6_, float p_149660_7_, float p_149660_8_, int p_149660_9_)
{
byte b0 = 0;
- if (p_149660_5_ == 2 && p_149660_1_.func_147445_c(p_149660_2_, p_149660_3_, p_149660_4_ + 1, true))
+ if (p_149660_5_ == 2 && p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_, p_149660_4_ + 1, NORTH, true))
{
b0 = 2;
}
- if (p_149660_5_ == 3 && p_149660_1_.func_147445_c(p_149660_2_, p_149660_3_, p_149660_4_ - 1, true))
+ if (p_149660_5_ == 3 && p_149660_1_.isSideSolid(p_149660_2_, p_149660_3_, p_149660_4_ - 1, SOUTH, true))
{
b0 = 0;
}
- if (p_149660_5_ == 4 && p_149660_1_.func_147445_c(p_149660_2_ + 1, p_149660_3_, p_149660_4_, true))
+ if (p_149660_5_ == 4 && p_149660_1_.isSideSolid(p_149660_2_ + 1, p_149660_3_, p_149660_4_, WEST, true))
{
b0 = 1;
}
- if (p_149660_5_ == 5 && p_149660_1_.func_147445_c(p_149660_2_ - 1, p_149660_3_, p_149660_4_, true))
+ if (p_149660_5_ == 5 && p_149660_1_.isSideSolid(p_149660_2_ - 1, p_149660_3_, p_149660_4_, EAST, true))
{
b0 = 3;
}
@@ -97,22 +107,22 @@
int i1 = l & 3;
boolean flag = false;
- if (!p_149695_1_.func_147439_a(p_149695_2_ - 1, p_149695_3_, p_149695_4_).func_149721_r() && i1 == 3)
+ if (!p_149695_1_.isSideSolid(p_149695_2_ - 1, p_149695_3_, p_149695_4_, EAST) && i1 == 3)
{
flag = true;
}
- if (!p_149695_1_.func_147439_a(p_149695_2_ + 1, p_149695_3_, p_149695_4_).func_149721_r() && i1 == 1)
+ if (!p_149695_1_.isSideSolid(p_149695_2_ + 1, p_149695_3_, p_149695_4_, WEST) && i1 == 1)
{
flag = true;
}
- if (!p_149695_1_.func_147439_a(p_149695_2_, p_149695_3_, p_149695_4_ - 1).func_149721_r() && i1 == 0)
+ if (!p_149695_1_.isSideSolid(p_149695_2_, p_149695_3_, p_149695_4_ - 1, SOUTH) && i1 == 0)
{
flag = true;
}
- if (!p_149695_1_.func_147439_a(p_149695_2_, p_149695_3_, p_149695_4_ + 1).func_149721_r() && i1 == 2)
+ if (!p_149695_1_.isSideSolid(p_149695_2_, p_149695_3_, p_149695_4_ + 1, NORTH) && i1 == 2)
{
flag = true;
}
@@ -133,7 +143,7 @@
boolean flag3 = (p_150136_6_ & 8) == 8;
boolean flag4 = !p_150136_5_;
boolean flag5 = false;
- boolean flag6 = !World.func_147466_a(p_150136_1_, p_150136_2_, p_150136_3_ - 1, p_150136_4_);
+ boolean flag6 = !p_150136_1_.isSideSolid(p_150136_2_, p_150136_3_ - 1, p_150136_4_, UP);
int l1 = Direction.field_71583_a[k1];
int i2 = Direction.field_71581_b[k1];
int j2 = 0;
@@ -0,0 +1,61 @@
--- ../src-base/minecraft/net/minecraft/block/BlockVine.java
+++ ../src-work/minecraft/net/minecraft/block/BlockVine.java
@@ -2,9 +2,11 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import java.util.ArrayList;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@@ -16,8 +18,10 @@
import net.minecraft.world.ColorizerFoliage;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.ForgeHooks;
+import net.minecraftforge.common.IShearable;
-public class BlockVine extends Block
+public class BlockVine extends Block implements IShearable
{
private static final String __OBFID = "CL_00000330";
@@ -375,14 +379,28 @@
public void func_149636_a(World p_149636_1_, EntityPlayer p_149636_2_, int p_149636_3_, int p_149636_4_, int p_149636_5_, int p_149636_6_)
{
- if (!p_149636_1_.field_72995_K && p_149636_2_.func_71045_bC() != null && p_149636_2_.func_71045_bC().func_77973_b() == Items.field_151097_aZ)
{
- p_149636_2_.func_71064_a(StatList.field_75934_C[Block.func_149682_b(this)], 1);
- this.func_149642_a(p_149636_1_, p_149636_3_, p_149636_4_, p_149636_5_, new ItemStack(Blocks.field_150395_bd, 1, 0));
- }
- else
- {
super.func_149636_a(p_149636_1_, p_149636_2_, p_149636_3_, p_149636_4_, p_149636_5_, p_149636_6_);
}
}
+
+ @Override
+ public boolean isShearable(ItemStack item, IBlockAccess world, int x, int y, int z)
+ {
+ return true;
+ }
+
+ @Override
+ public ArrayList<ItemStack> onSheared(ItemStack item, IBlockAccess world, int x, int y, int z, int fortune)
+ {
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
+ ret.add(new ItemStack(this, 1));
+ return ret;
+ }
+
+ @Override
+ public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity)
+ {
+ return true;
+ }
}
@@ -0,0 +1,288 @@
--- ../src-base/minecraft/net/minecraft/client/Minecraft.java
+++ ../src-work/minecraft/net/minecraft/client/Minecraft.java
@@ -135,6 +135,14 @@
import net.minecraft.world.storage.ISaveFormat;
import net.minecraft.world.storage.ISaveHandler;
import net.minecraft.world.storage.WorldInfo;
+import net.minecraftforge.client.ForgeHooksClient;
+import net.minecraftforge.client.GuiIngameForge;
+import net.minecraftforge.client.event.GuiOpenEvent;
+import net.minecraftforge.common.ForgeHooks;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.ForgeEventFactory;
+import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
+import net.minecraftforge.event.world.WorldEvent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.lwjgl.LWJGLException;
@@ -246,7 +254,7 @@
this.func_71389_H();
this.field_71449_j = p_i1014_1_;
field_147123_G.info("Setting user: " + p_i1014_1_.func_111285_a());
- field_147123_G.info("(Session ID is " + p_i1014_1_.func_111286_b() + ")");
+ //logger.info("(Session ID is " + par1Session.getSessionID() + ")"); //don't print the session to the console.. that's stupid...
this.field_71459_aj = p_i1014_5_;
this.field_71443_c = p_i1014_2_;
this.field_71440_d = p_i1014_3_;
@@ -419,7 +427,7 @@
try
{
- Display.create((new PixelFormat()).withDepthBits(24));
+ ForgeHooksClient.createDisplay();
}
catch (LWJGLException lwjglexception)
{
@@ -518,7 +526,7 @@
this.field_71452_i = new EffectRenderer(this.field_71441_e, this.field_71446_o);
FMLClientHandler.instance().finishMinecraftLoading();
this.func_71361_d("Post startup");
- this.field_71456_v = new GuiIngame(this);
+ this.field_71456_v = new GuiIngameForge(this);
if (this.field_71475_ae != null)
{
@@ -701,11 +709,6 @@
public void func_147108_a(GuiScreen p_147108_1_)
{
- if (this.field_71462_r != null)
- {
- this.field_71462_r.func_146281_b();
- }
-
if (p_147108_1_ == null && this.field_71441_e == null)
{
p_147108_1_ = new GuiMainMenu();
@@ -715,6 +718,17 @@
p_147108_1_ = new GuiGameOver();
}
+ GuiScreen old = this.field_71462_r;
+ GuiOpenEvent event = new GuiOpenEvent(p_147108_1_);
+
+ if (MinecraftForge.EVENT_BUS.post(event)) return;
+
+ p_147108_1_ = event.gui;
+ if (old != null && p_147108_1_ != old)
+ {
+ old.func_146281_b();
+ }
+
if (p_147108_1_ instanceof GuiMainMenu)
{
this.field_71474_y.field_74330_P = false;
@@ -1296,7 +1310,7 @@
if (this.field_71439_g.func_82246_f(i, j, k))
{
- this.field_71452_i.func_78867_a(i, j, k, this.field_71476_x.field_72310_e);
+ this.field_71452_i.addBlockHitEffects(i, j, k, this.field_71476_x);
this.field_71439_g.func_71038_i();
}
}
@@ -1377,11 +1391,12 @@
int j = this.field_71476_x.field_72312_c;
int k = this.field_71476_x.field_72309_d;
- if (this.field_71441_e.func_147439_a(i, j, k).func_149688_o() != Material.field_151579_a)
+ if (!this.field_71441_e.func_147439_a(i, j, k).isAir(field_71441_e, i, j, k))
{
int l = itemstack != null ? itemstack.field_77994_a : 0;
- if (this.field_71442_b.func_78760_a(this.field_71439_g, this.field_71441_e, itemstack, i, j, k, this.field_71476_x.field_72310_e, this.field_71476_x.field_72307_f))
+ boolean result = !ForgeEventFactory.onPlayerInteract(field_71439_g, Action.RIGHT_CLICK_BLOCK, i, j, k, this.field_71476_x.field_72310_e, this.field_71441_e).isCanceled();
+ if (result && this.field_71442_b.func_78760_a(this.field_71439_g, this.field_71441_e, itemstack, i, j, k, this.field_71476_x.field_72310_e, this.field_71476_x.field_72307_f))
{
flag = false;
this.field_71439_g.func_71038_i();
@@ -1408,7 +1423,8 @@
{
ItemStack itemstack1 = this.field_71439_g.field_71071_by.func_70448_g();
- if (itemstack1 != null && this.field_71442_b.func_78769_a(this.field_71439_g, this.field_71441_e, itemstack1))
+ boolean result = !ForgeEventFactory.onPlayerInteract(field_71439_g, Action.RIGHT_CLICK_AIR, 0, 0, 0, -1, this.field_71441_e).isCanceled();
+ if (result && itemstack1 != null && this.field_71442_b.func_78769_a(this.field_71439_g, this.field_71441_e, itemstack1))
{
this.field_71460_t.field_78516_c.func_78445_c();
}
@@ -1607,6 +1623,8 @@
while (Mouse.next())
{
+ if (ForgeHooksClient.postMouseEvent()) continue;
+
i = Mouse.getEventButton();
if (field_142025_a && i == 0 && (Keyboard.isKeyDown(29) || Keyboard.isKeyDown(157)))
@@ -2080,6 +2098,11 @@
public void func_71353_a(WorldClient p_71353_1_, String p_71353_2_)
{
+ if (field_71441_e != null)
+ {
+ MinecraftForge.EVENT_BUS.post(new WorldEvent.Unload(field_71441_e));
+ }
+
if (p_71353_1_ == null)
{
NetHandlerPlayClient nethandlerplayclient = this.func_147114_u();
@@ -2092,6 +2115,18 @@
if (this.field_71437_Z != null)
{
this.field_71437_Z.func_71263_m();
+ if (field_71461_s != null)
+ {
+ this.field_71461_s.func_73719_c(I18n.func_135052_a("forge.client.shutdown.internal"));
+ }
+ while (!field_71437_Z.func_71241_aa())
+ {
+ try
+ {
+ Thread.sleep(10);
+ }
+ catch (InterruptedException ie) {}
+ }
}
this.field_71437_Z = null;
@@ -2240,113 +2275,10 @@
if (this.field_71476_x != null)
{
boolean flag = this.field_71439_g.field_71075_bZ.field_75098_d;
- int i = 0;
- boolean flag1 = false;
- Item item;
int j;
- if (this.field_71476_x.field_72313_a == MovingObjectPosition.MovingObjectType.BLOCK)
- {
- j = this.field_71476_x.field_72311_b;
- int k = this.field_71476_x.field_72312_c;
- int l = this.field_71476_x.field_72309_d;
- Block block = this.field_71441_e.func_147439_a(j, k, l);
-
- if (block.func_149688_o() == Material.field_151579_a)
- {
- return;
- }
-
- item = block.func_149694_d(this.field_71441_e, j, k, l);
-
- if (item == null)
- {
- return;
- }
-
- flag1 = item.func_77614_k();
- Block block1 = item instanceof ItemBlock && !block.func_149648_K() ? Block.func_149634_a(item) : block;
- i = block1.func_149643_k(this.field_71441_e, j, k, l);
- }
- else
- {
- if (this.field_71476_x.field_72313_a != MovingObjectPosition.MovingObjectType.ENTITY || this.field_71476_x.field_72308_g == null || !flag)
- {
- return;
- }
-
- if (this.field_71476_x.field_72308_g instanceof EntityPainting)
- {
- item = Items.field_151159_an;
- }
- else if (this.field_71476_x.field_72308_g instanceof EntityLeashKnot)
- {
- item = Items.field_151058_ca;
- }
- else if (this.field_71476_x.field_72308_g instanceof EntityItemFrame)
- {
- EntityItemFrame entityitemframe = (EntityItemFrame)this.field_71476_x.field_72308_g;
- ItemStack itemstack = entityitemframe.func_82335_i();
-
- if (itemstack == null)
- {
- item = Items.field_151160_bD;
- }
- else
- {
- item = itemstack.func_77973_b();
- i = itemstack.func_77960_j();
- flag1 = true;
- }
- }
- else if (this.field_71476_x.field_72308_g instanceof EntityMinecart)
- {
- EntityMinecart entityminecart = (EntityMinecart)this.field_71476_x.field_72308_g;
-
- if (entityminecart.func_94087_l() == 2)
- {
- item = Items.field_151109_aJ;
- }
- else if (entityminecart.func_94087_l() == 1)
- {
- item = Items.field_151108_aI;
- }
- else if (entityminecart.func_94087_l() == 3)
- {
- item = Items.field_151142_bV;
- }
- else if (entityminecart.func_94087_l() == 5)
- {
- item = Items.field_151140_bW;
- }
- else if (entityminecart.func_94087_l() == 6)
- {
- item = Items.field_151095_cc;
- }
- else
- {
- item = Items.field_151143_au;
- }
- }
- else if (this.field_71476_x.field_72308_g instanceof EntityBoat)
- {
- item = Items.field_151124_az;
- }
- else
- {
- item = Items.field_151063_bx;
- i = EntityList.func_75619_a(this.field_71476_x.field_72308_g);
- flag1 = true;
-
- if (i <= 0 || !EntityList.field_75627_a.containsKey(Integer.valueOf(i)))
- {
- return;
- }
- }
- }
-
- this.field_71439_g.field_71071_by.func_146030_a(item, i, flag1, flag);
-
+ if (!ForgeHooks.onPickBlock(this.field_71476_x, this.field_71439_g, this.field_71441_e)) return;
+ // We delete this code wholly instead of commenting it out, to make sure we detect changes in it between MC versions
if (flag)
{
j = this.field_71439_g.field_71069_bz.field_75151_b.size() - 9 + this.field_71439_g.field_71071_by.field_70461_c;
@@ -2513,8 +2445,15 @@
p_70001_1_.func_76472_a("gl_max_texture_size", Integer.valueOf(func_71369_N()));
}
+ //Forge: Adds a optimization to the getGLMaximumTextureSize, only calculate it once.
+ private static int max_texture_size = -1;
public static int func_71369_N()
{
+ if (max_texture_size != -1)
+ {
+ return max_texture_size;
+ }
+
for (int i = 16384; i > 0; i >>= 1)
{
GL11.glTexImage2D(GL11.GL_PROXY_TEXTURE_2D, 0, GL11.GL_RGBA, i, i, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, (ByteBuffer)null);
@@ -2522,6 +2461,7 @@
if (j != 0)
{
+ max_texture_size = i;
return i;
}
}
@@ -0,0 +1,52 @@
--- ../src-base/minecraft/net/minecraft/client/audio/SoundManager.java
+++ ../src-work/minecraft/net/minecraft/client/audio/SoundManager.java
@@ -35,6 +35,10 @@
import paulscode.sound.codecs.CodecJOrbis;
import paulscode.sound.libraries.LibraryLWJGLOpenAL;
+import net.minecraftforge.client.*;
+import net.minecraftforge.client.event.sound.*;
+import net.minecraftforge.common.MinecraftForge;
+
@SideOnly(Side.CLIENT)
public class SoundManager
{
@@ -69,6 +73,7 @@
{
SoundSystemConfig.addLibrary(LibraryLWJGLOpenAL.class);
SoundSystemConfig.setCodec("ogg", CodecJOrbis.class);
+ MinecraftForge.EVENT_BUS.post(new SoundSetupEvent(this));
}
catch (SoundSystemException soundsystemexception)
{
@@ -80,6 +85,7 @@
{
this.func_148613_b();
this.func_148608_i();
+ MinecraftForge.EVENT_BUS.post(new SoundLoadEvent(this));
}
private synchronized void func_148608_i()
@@ -302,6 +308,9 @@
}
else
{
+ p_148611_1_ = ForgeHooksClient.playSound(this, p_148611_1_);
+ if (p_148611_1_ == null) return;
+
SoundEventAccessorComposite soundeventaccessorcomposite = this.field_148622_c.func_147680_a(p_148611_1_.func_147650_b());
if (soundeventaccessorcomposite == null)
@@ -343,10 +352,12 @@
if (soundpoolentry.func_148648_d())
{
this.field_148620_e.newStreamingSource(false, s, func_148612_a(resourcelocation), resourcelocation.toString(), flag, p_148611_1_.func_147649_g(), p_148611_1_.func_147654_h(), p_148611_1_.func_147651_i(), p_148611_1_.func_147656_j().func_148586_a(), f1);
+ MinecraftForge.EVENT_BUS.post(new PlayStreamingSourceEvent(this, p_148611_1_, s));
}
else
{
this.field_148620_e.newSource(false, s, func_148612_a(resourcelocation), resourcelocation.toString(), flag, p_148611_1_.func_147649_g(), p_148611_1_.func_147654_h(), p_148611_1_.func_147651_i(), p_148611_1_.func_147656_j().func_148586_a(), f1);
+ MinecraftForge.EVENT_BUS.post(new PlaySoundSourceEvent(this, p_148611_1_, s));
}
field_148621_b.debug(field_148623_a, "Playing sound {} for event {} as channel {}", new Object[] {soundpoolentry.func_148652_a(), soundeventaccessorcomposite.func_148729_c(), s});
@@ -0,0 +1,12 @@
--- ../src-base/minecraft/net/minecraft/client/entity/EntityOtherPlayerMP.java
+++ ../src-work/minecraft/net/minecraft/client/entity/EntityOtherPlayerMP.java
@@ -151,7 +151,8 @@
}
}
- public float func_70047_e()
+ @Override
+ public float getDefaultEyeHeight()
{
return 1.82F;
}
@@ -0,0 +1,85 @@
--- ../src-base/minecraft/net/minecraft/client/entity/EntityPlayerSP.java
+++ ../src-work/minecraft/net/minecraft/client/entity/EntityPlayerSP.java
@@ -50,6 +50,9 @@
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Session;
import net.minecraft.world.World;
+import net.minecraftforge.client.ForgeHooksClient;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.entity.PlaySoundAtEntityEvent;
@SideOnly(Side.CLIENT)
public class EntityPlayerSP extends AbstractClientPlayer
@@ -325,7 +328,7 @@
f *= 1.0F - f1 * 0.15F;
}
- return f;
+ return ForgeHooksClient.getOffsetFOV(this, f);
}
public void func_71053_j()
@@ -479,20 +482,45 @@
return this.field_70170_p.func_147439_a(p_71153_1_, p_71153_2_, p_71153_3_).func_149721_r();
}
+ private boolean isHeadspaceFree(int x, int y, int z, int height)
+ {
+ for (int i1 = 0; i1 < height; i1++)
+ {
+ if (func_71153_f(x, y + i1, z + 1)) return false;
+ }
+ return true;
+ }
+
protected boolean func_145771_j(double p_145771_1_, double p_145771_3_, double p_145771_5_)
{
+ if (this.field_70145_X)
+ {
+ return false;
+ }
int i = MathHelper.func_76128_c(p_145771_1_);
int j = MathHelper.func_76128_c(p_145771_3_);
int k = MathHelper.func_76128_c(p_145771_5_);
double d3 = p_145771_1_ - (double)i;
double d4 = p_145771_5_ - (double)k;
- if (this.func_71153_f(i, j, k) || this.func_71153_f(i, j + 1, k))
+ int entHeight = Math.max(Math.round(this.field_70131_O), 1);
+
+ boolean inTranslucentBlock = true;
+
+ for (int i1 = 0; i1 < entHeight; i1++)
{
- boolean flag = !this.func_71153_f(i - 1, j, k) && !this.func_71153_f(i - 1, j + 1, k);
- boolean flag1 = !this.func_71153_f(i + 1, j, k) && !this.func_71153_f(i + 1, j + 1, k);
- boolean flag2 = !this.func_71153_f(i, j, k - 1) && !this.func_71153_f(i, j + 1, k - 1);
- boolean flag3 = !this.func_71153_f(i, j, k + 1) && !this.func_71153_f(i, j + 1, k + 1);
+ if (!this.func_71153_f(i, j + i1, k))
+ {
+ inTranslucentBlock = false;
+ }
+ }
+
+ if (inTranslucentBlock)
+ {
+ boolean flag = !isHeadspaceFree(i - 1, j, k, entHeight);
+ boolean flag1 = !isHeadspaceFree(i + 1, j, k, entHeight);
+ boolean flag2 = !isHeadspaceFree(i, j, k - 1, entHeight);
+ boolean flag3 = !isHeadspaceFree(i, j, k + 1, entHeight);
byte b0 = -1;
double d5 = 9999.0D;
@@ -576,6 +604,12 @@
public void func_85030_a(String p_85030_1_, float p_85030_2_, float p_85030_3_)
{
+ PlaySoundAtEntityEvent event = new PlaySoundAtEntityEvent(this, p_85030_1_, p_85030_2_, p_85030_3_);
+ if (MinecraftForge.EVENT_BUS.post(event))
+ {
+ return;
+ }
+ p_85030_1_ = event.name;
this.field_70170_p.func_72980_b(this.field_70165_t, this.field_70163_u - (double)this.field_70129_M, this.field_70161_v, p_85030_1_, p_85030_2_, p_85030_3_, false);
}
@@ -0,0 +1,56 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiChat.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiChat.java
@@ -1,6 +1,7 @@
package net.minecraft.client.gui;
import com.google.common.collect.Lists;
+import com.google.common.collect.ObjectArrays;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.File;
@@ -24,6 +25,7 @@
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IChatComponent;
+import net.minecraftforge.client.ClientCommandHandler;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.lwjgl.input.Keyboard;
@@ -131,6 +133,7 @@
public void func_146403_a(String p_146403_1_)
{
this.field_146297_k.field_71456_v.func_146158_b().func_146239_a(p_146403_1_);
+ if (ClientCommandHandler.instance.func_71556_a(field_146297_k.field_71439_g, p_146403_1_) == 1) return;
this.field_146297_k.field_71439_g.func_71165_d(p_146403_1_);
}
@@ -305,13 +308,14 @@
this.field_146297_k.field_71456_v.func_146158_b().func_146234_a(new ChatComponentText(stringbuilder.toString()), 1);
}
- this.field_146415_a.func_146191_b((String)this.field_146412_t.get(this.field_146413_s++));
+ this.field_146415_a.func_146191_b(EnumChatFormatting.func_110646_a((String)this.field_146412_t.get(this.field_146413_s++)));
}
private void func_146405_a(String p_146405_1_, String p_146405_2_)
{
if (p_146405_1_.length() >= 1)
{
+ ClientCommandHandler.instance.autoComplete(p_146405_1_, p_146405_2_);
this.field_146297_k.field_71439_g.field_71174_a.func_147297_a(new C14PacketTabComplete(p_146405_1_));
this.field_146414_r = true;
}
@@ -433,6 +437,13 @@
String[] astring1 = p_146406_1_;
int i = p_146406_1_.length;
+ String[] complete = ClientCommandHandler.instance.latestAutoComplete;
+ if (complete != null)
+ {
+ astring1 = ObjectArrays.concat(complete, astring1, String.class);
+ i = astring1.length;
+ }
+
for (int j = 0; j < i; ++j)
{
String s = astring1[j];
@@ -0,0 +1,20 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiCreateWorld.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiCreateWorld.java
@@ -320,7 +320,7 @@
}
else if (p_146284_1_.field_146127_k == 8)
{
- this.field_146297_k.func_147108_a(new GuiCreateFlatWorld(this, this.field_146334_a));
+ WorldType.field_77139_a[field_146331_K].onCustomizeButton(field_146297_k, this);
}
}
}
@@ -338,7 +338,7 @@
this.field_146326_C.field_146125_m = this.field_146344_y;
this.field_146320_D.field_146125_m = this.field_146344_y;
this.field_146321_E.field_146125_m = this.field_146344_y;
- this.field_146322_F.field_146125_m = this.field_146344_y && WorldType.field_77139_a[this.field_146331_K] == WorldType.field_77138_c;
+ this.field_146322_F.field_146125_m = this.field_146344_y && WorldType.field_77139_a[this.field_146331_K].isCustomizable();
if (this.field_146344_y)
{
@@ -0,0 +1,14 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiIngameMenu.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiIngameMenu.java
@@ -59,9 +59,11 @@
this.field_146297_k.func_71381_h();
break;
case 5:
+ if (this.field_146297_k.field_71439_g != null)
this.field_146297_k.func_147108_a(new GuiAchievements(this, this.field_146297_k.field_71439_g.func_146107_m()));
break;
case 6:
+ if (this.field_146297_k.field_71439_g != null)
this.field_146297_k.func_147108_a(new GuiStats(this, this.field_146297_k.field_71439_g.func_146107_m()));
break;
case 7:
@@ -0,0 +1,18 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiMainMenu.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiMainMenu.java
@@ -30,6 +30,7 @@
import net.minecraft.world.demo.DemoWorldServer;
import net.minecraft.world.storage.ISaveFormat;
import net.minecraft.world.storage.WorldInfo;
+import net.minecraftforge.client.ForgeHooksClient;
import org.apache.commons.io.Charsets;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -614,6 +615,7 @@
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);
}
}
+ ForgeHooksClient.renderMainMenu(this, field_146289_q, field_146294_l, field_146295_m);
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);
@@ -0,0 +1,86 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiScreen.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiScreen.java
@@ -17,6 +17,10 @@
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
+import net.minecraftforge.client.event.GuiScreenEvent.ActionPerformedEvent;
+import net.minecraftforge.client.event.GuiScreenEvent.InitGuiEvent;
+import net.minecraftforge.common.MinecraftForge;
+
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
@@ -111,7 +115,8 @@
}
}
- this.func_146283_a(list, p_146285_2_, p_146285_3_);
+ FontRenderer font = p_146285_1_.func_77973_b().getFontRenderer(p_146285_1_);
+ drawHoveringText(list, p_146285_2_, p_146285_3_, (font == null ? field_146289_q : font));
}
protected void func_146279_a(String p_146279_1_, int p_146279_2_, int p_146279_3_)
@@ -121,6 +126,11 @@
protected void func_146283_a(List p_146283_1_, int p_146283_2_, int p_146283_3_)
{
+ drawHoveringText(p_146283_1_, p_146283_2_, p_146283_3_, field_146289_q);
+ }
+
+ protected void drawHoveringText(List p_146283_1_, int p_146283_2_, int p_146283_3_, FontRenderer font)
+ {
if (!p_146283_1_.isEmpty())
{
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
@@ -133,7 +143,7 @@
while (iterator.hasNext())
{
String s = (String)iterator.next();
- int l = this.field_146289_q.func_78256_a(s);
+ int l = font.func_78256_a(s);
if (l > k)
{
@@ -178,7 +188,7 @@
for (int i2 = 0; i2 < p_146283_1_.size(); ++i2)
{
String s1 = (String)p_146283_1_.get(i2);
- this.field_146289_q.func_78261_a(s1, j2, k2, -1);
+ font.func_78261_a(s1, j2, k2, -1);
if (i2 == 0)
{
@@ -207,9 +217,14 @@
if (guibutton.func_146116_c(this.field_146297_k, p_73864_1_, p_73864_2_))
{
- this.field_146290_a = guibutton;
- guibutton.func_146113_a(this.field_146297_k.func_147118_V());
- this.func_146284_a(guibutton);
+ ActionPerformedEvent.Pre event = new ActionPerformedEvent.Pre(this, guibutton, this.field_146292_n);
+ if (MinecraftForge.EVENT_BUS.post(event))
+ break;
+ this.field_146290_a = event.button;
+ event.button.func_146113_a(this.field_146297_k.func_147118_V());
+ this.func_146284_a(event.button);
+ if (this.equals(this.field_146297_k.field_71462_r))
+ MinecraftForge.EVENT_BUS.post(new ActionPerformedEvent.Post(this, event.button, this.field_146292_n));
}
}
}
@@ -234,8 +249,12 @@
this.field_146289_q = p_146280_1_.field_71466_p;
this.field_146294_l = p_146280_2_;
this.field_146295_m = p_146280_3_;
- this.field_146292_n.clear();
- this.func_73866_w_();
+ if (!MinecraftForge.EVENT_BUS.post(new InitGuiEvent.Pre(this, this.field_146292_n)))
+ {
+ this.field_146292_n.clear();
+ this.func_73866_w_();
+ }
+ MinecraftForge.EVENT_BUS.post(new InitGuiEvent.Post(this, this.field_146292_n));
}
public void func_73866_w_() {}
@@ -0,0 +1,39 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiSlot.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiSlot.java
@@ -294,16 +294,7 @@
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_FOG);
Tessellator tessellator = Tessellator.field_78398_a;
- this.field_148161_k.func_110434_K().func_110577_a(Gui.field_110325_k);
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
- float f1 = 32.0F;
- tessellator.func_78382_b();
- tessellator.func_78378_d(2105376);
- tessellator.func_78374_a((double)this.field_148152_e, (double)this.field_148154_c, 0.0D, (double)((float)this.field_148152_e / f1), (double)((float)(this.field_148154_c + (int)this.field_148169_q) / f1));
- tessellator.func_78374_a((double)this.field_148151_d, (double)this.field_148154_c, 0.0D, (double)((float)this.field_148151_d / f1), (double)((float)(this.field_148154_c + (int)this.field_148169_q) / f1));
- tessellator.func_78374_a((double)this.field_148151_d, (double)this.field_148153_b, 0.0D, (double)((float)this.field_148151_d / f1), (double)((float)(this.field_148153_b + (int)this.field_148169_q) / f1));
- tessellator.func_78374_a((double)this.field_148152_e, (double)this.field_148153_b, 0.0D, (double)((float)this.field_148152_e / f1), (double)((float)(this.field_148153_b + (int)this.field_148169_q) / f1));
- tessellator.func_78381_a();
+ drawContainerBackground(tessellator);
l1 = this.field_148152_e + this.field_148155_a / 2 - this.func_148139_c() / 2 + 2;
i2 = this.field_148153_b + 4 - (int)this.field_148169_q;
@@ -475,4 +466,18 @@
{
return this.field_148149_f;
}
+
+ protected void drawContainerBackground(Tessellator tessellator)
+ {
+ this.field_148161_k.func_110434_K().func_110577_a(Gui.field_110325_k);
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
+ float f1 = 32.0F;
+ tessellator.func_78382_b();
+ tessellator.func_78378_d(2105376);
+ tessellator.func_78374_a((double)this.field_148152_e, (double)this.field_148154_c, 0.0D, (double)((float)this.field_148152_e / f1), (double)((float)(this.field_148154_c + (int)this.field_148169_q) / f1));
+ tessellator.func_78374_a((double)this.field_148151_d, (double)this.field_148154_c, 0.0D, (double)((float)this.field_148151_d / f1), (double)((float)(this.field_148154_c + (int)this.field_148169_q) / f1));
+ tessellator.func_78374_a((double)this.field_148151_d, (double)this.field_148153_b, 0.0D, (double)((float)this.field_148151_d / f1), (double)((float)(this.field_148153_b + (int)this.field_148169_q) / f1));
+ tessellator.func_78374_a((double)this.field_148152_e, (double)this.field_148153_b, 0.0D, (double)((float)this.field_148152_e / f1), (double)((float)(this.field_148153_b + (int)this.field_148169_q) / f1));
+ tessellator.func_78381_a();
+ }
}
@@ -0,0 +1,91 @@
--- ../src-base/minecraft/net/minecraft/client/gui/achievement/GuiAchievements.java
+++ ../src-work/minecraft/net/minecraft/client/gui/achievement/GuiAchievements.java
@@ -24,6 +24,9 @@
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
+import java.util.LinkedList;
+import java.util.List;
+import net.minecraftforge.common.AchievementPage;
@SideOnly(Side.CLIENT)
public class GuiAchievements extends GuiScreen implements IProgressMeter
@@ -50,6 +53,10 @@
private boolean field_146558_F = true;
private static final String __OBFID = "CL_00000722";
+ private int currentPage = -1;
+ private GuiButton button;
+ private LinkedList<Achievement> minecraftAchievements = new LinkedList<Achievement>();
+
public GuiAchievements(GuiScreen p_i45026_1_, StatFileWriter p_i45026_2_)
{
this.field_146562_a = p_i45026_1_;
@@ -58,6 +65,14 @@
short short2 = 141;
this.field_146569_s = this.field_146567_u = this.field_146565_w = (double)(AchievementList.field_76004_f.field_75993_a * 24 - short1 / 2 - 12);
this.field_146568_t = this.field_146566_v = this.field_146573_x = (double)(AchievementList.field_76004_f.field_75991_b * 24 - short2 / 2);
+ minecraftAchievements.clear();
+ for (Object achievement : AchievementList.field_76007_e)
+ {
+ if (!AchievementPage.isAchievementInPages((Achievement)achievement))
+ {
+ minecraftAchievements.add((Achievement)achievement);
+ }
+ }
}
public void func_73866_w_()
@@ -65,6 +80,7 @@
this.field_146297_k.func_147114_u().func_147297_a(new C16PacketClientStatus(C16PacketClientStatus.EnumState.REQUEST_STATS));
this.field_146292_n.clear();
this.field_146292_n.add(new GuiOptionButton(1, this.field_146294_l / 2 + 24, this.field_146295_m / 2 + 74, 80, 20, I18n.func_135052_a("gui.done", new Object[0])));
+ this.field_146292_n.add(button = new GuiButton(2, (field_146294_l - field_146555_f) / 2 + 24, field_146295_m / 2 + 74, 125, 20, AchievementPage.getTitle(currentPage)));
}
protected void func_146284_a(GuiButton p_146284_1_)
@@ -75,6 +91,16 @@
{
this.field_146297_k.func_147108_a(this.field_146562_a);
}
+
+ if (p_146284_1_.field_146127_k == 2)
+ {
+ currentPage++;
+ if (currentPage >= AchievementPage.getAchievementPages().size())
+ {
+ currentPage = -1;
+ }
+ button.field_146126_j = AchievementPage.getTitle(currentPage);
+ }
}
}
@@ -339,11 +365,12 @@
int j4;
int l4;
- for (i3 = 0; i3 < AchievementList.field_76007_e.size(); ++i3)
+ List<Achievement> achievementList = (currentPage == -1 ? minecraftAchievements : AchievementPage.getAchievementPage(currentPage).getAchievements());
+ for (i3 = 0; i3 < achievementList.size(); ++i3)
{
- Achievement achievement1 = (Achievement)AchievementList.field_76007_e.get(i3);
+ Achievement achievement1 = achievementList.get(i3);
- if (achievement1.field_75992_c != null)
+ if (achievement1.field_75992_c != null && achievementList.contains(achievement1.field_75992_c))
{
j3 = achievement1.field_75993_a * 24 - k + 11;
k3 = achievement1.field_75991_b * 24 - l + 11;
@@ -400,9 +427,9 @@
int i5;
int j5;
- for (l4 = 0; l4 < AchievementList.field_76007_e.size(); ++l4)
+ for (l4 = 0; l4 < achievementList.size(); ++l4)
{
- Achievement achievement2 = (Achievement)AchievementList.field_76007_e.get(l4);
+ Achievement achievement2 = (Achievement)achievementList.get(l4);
i5 = achievement2.field_75993_a * 24 - k;
j5 = achievement2.field_75991_b * 24 - l;
@@ -0,0 +1,44 @@
--- ../src-base/minecraft/net/minecraft/client/gui/inventory/GuiContainer.java
+++ ../src-work/minecraft/net/minecraft/client/gui/inventory/GuiContainer.java
@@ -6,6 +6,7 @@
import java.util.Iterator;
import java.util.Set;
import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderHelper;
@@ -112,7 +113,11 @@
}
}
+ //Forge: Force lighting to be disabled as there are some issue where lighting would
+ //incorrectly be applied based on items that are in the inventory.
+ GL11.glDisable(GL11.GL_LIGHTING);
this.func_146979_b(p_73863_1_, p_73863_2_);
+ GL11.glEnable(GL11.GL_LIGHTING);
InventoryPlayer inventoryplayer = this.field_146297_k.field_71439_g.field_71071_by;
ItemStack itemstack = this.field_147012_x == null ? inventoryplayer.func_70445_o() : this.field_147012_x;
@@ -176,8 +181,11 @@
GL11.glTranslatef(0.0F, 0.0F, 32.0F);
this.field_73735_i = 200.0F;
field_146296_j.field_77023_b = 200.0F;
- field_146296_j.func_82406_b(this.field_146289_q, this.field_146297_k.func_110434_K(), p_146982_1_, p_146982_2_, p_146982_3_);
- field_146296_j.func_94148_a(this.field_146289_q, this.field_146297_k.func_110434_K(), p_146982_1_, p_146982_2_, p_146982_3_ - (this.field_147012_x == null ? 0 : 8), p_146982_4_);
+ FontRenderer font = null;
+ if (p_146982_1_ != null) font = p_146982_1_.func_77973_b().getFontRenderer(p_146982_1_);
+ if (font == null) font = field_146289_q;
+ field_146296_j.func_82406_b(font, this.field_146297_k.func_110434_K(), p_146982_1_, p_146982_2_, p_146982_3_);
+ field_146296_j.func_94148_a(font, this.field_146297_k.func_110434_K(), p_146982_1_, p_146982_2_, p_146982_3_ - (this.field_147012_x == null ? 0 : 8), p_146982_4_);
this.field_73735_i = 0.0F;
field_146296_j.field_77023_b = 0.0F;
}
@@ -458,6 +466,7 @@
protected void func_146286_b(int p_146286_1_, int p_146286_2_, int p_146286_3_)
{
+ super.func_146286_b(p_146286_1_, p_146286_2_, p_146286_3_); //Forge, Call parent to release buttons
Slot slot = this.func_146975_c(p_146286_1_, p_146286_2_);
int l = this.field_147003_i;
int i1 = this.field_147009_r;
@@ -0,0 +1,265 @@
--- ../src-base/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java
+++ ../src-work/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java
@@ -49,6 +49,8 @@
private boolean field_147057_D;
private CreativeCrafting field_147059_E;
private static final String __OBFID = "CL_00000752";
+ private static int tabPage = 0;
+ private int maxPages = 0;
public GuiContainerCreative(EntityPlayer p_i1088_1_)
{
@@ -185,7 +187,7 @@
return;
}
- if (itemstack1 != null && itemstack2 != null && itemstack1.func_77969_a(itemstack2))
+ if (itemstack1 != null && itemstack2 != null && itemstack1.func_77969_a(itemstack2) && ItemStack.func_77970_a(itemstack1, itemstack2)) //Forge: Bugfix, Compare NBT data, allow for deletion of enchanted books, MC-12770
{
if (p_146984_3_ == 0)
{
@@ -260,6 +262,13 @@
this.func_147050_b(CreativeTabs.field_78032_a[i]);
this.field_147059_E = new CreativeCrafting(this.field_146297_k);
this.field_146297_k.field_71439_g.field_71069_bz.func_75132_a(this.field_147059_E);
+ int tabCount = CreativeTabs.field_78032_a.length;
+ if (tabCount > 12)
+ {
+ field_146292_n.add(new GuiButton(101, field_147003_i, field_147009_r - 50, 20, 20, "<"));
+ field_146292_n.add(new GuiButton(102, field_147003_i + field_146999_f - 20, field_147009_r - 50, 20, 20, ">"));
+ maxPages = ((tabCount - 12) / 10) + 1;
+ }
}
else
{
@@ -281,7 +290,7 @@
protected void func_73869_a(char p_73869_1_, int p_73869_2_)
{
- if (field_147058_w != CreativeTabs.field_78027_g.func_78021_a())
+ if (!CreativeTabs.field_78032_a[field_147058_w].hasSearchBar())
{
if (GameSettings.func_100015_a(this.field_146297_k.field_71474_y.field_74310_D))
{
@@ -318,6 +327,15 @@
{
GuiContainerCreative.ContainerCreative containercreative = (GuiContainerCreative.ContainerCreative)this.field_147002_h;
containercreative.field_148330_a.clear();
+
+ CreativeTabs tab = CreativeTabs.field_78032_a[field_147058_w];
+ if (tab.hasSearchBar() && tab != CreativeTabs.field_78027_g)
+ {
+ tab.func_78018_a(containercreative.field_148330_a);
+ updateFilteredItems(containercreative);
+ return;
+ }
+
Iterator iterator = Item.field_150901_e.iterator();
while (iterator.hasNext())
@@ -329,7 +347,13 @@
item.func_150895_a(item, (CreativeTabs)null, containercreative.field_148330_a);
}
}
+ updateFilteredItems(containercreative);
+ }
+ //split from above for custom search tabs
+ private void updateFilteredItems(GuiContainerCreative.ContainerCreative containercreative)
+ {
+ Iterator iterator;
Enchantment[] aenchantment = Enchantment.field_77331_b;
int j = aenchantment.length;
@@ -383,7 +407,7 @@
{
CreativeTabs creativetabs = CreativeTabs.field_78032_a[field_147058_w];
- if (creativetabs.func_78019_g())
+ if (creativetabs != null && creativetabs.func_78019_g())
{
GL11.glDisable(GL11.GL_BLEND);
this.field_146289_q.func_78276_b(I18n.func_135052_a(creativetabs.func_78024_c(), new Object[0]), 8, 6, 4210752);
@@ -403,7 +427,7 @@
{
CreativeTabs creativetabs = acreativetabs[k1];
- if (this.func_147049_a(creativetabs, l, i1))
+ if (creativetabs != null && this.func_147049_a(creativetabs, l, i1))
{
return;
}
@@ -426,7 +450,7 @@
{
CreativeTabs creativetabs = acreativetabs[k1];
- if (this.func_147049_a(creativetabs, l, i1))
+ if (creativetabs != null && this.func_147049_a(creativetabs, l, i1))
{
this.func_147050_b(creativetabs);
return;
@@ -439,11 +463,13 @@
private boolean func_147055_p()
{
+ if (CreativeTabs.field_78032_a[field_147058_w] == null) return false;
return field_147058_w != CreativeTabs.field_78036_m.func_78021_a() && CreativeTabs.field_78032_a[field_147058_w].func_78017_i() && ((GuiContainerCreative.ContainerCreative)this.field_147002_h).func_148328_e();
}
private void func_147050_b(CreativeTabs p_147050_1_)
{
+ if (p_147050_1_ == null) return;
int i = field_147058_w;
field_147058_w = p_147050_1_.func_78021_a();
GuiContainerCreative.ContainerCreative containercreative = (GuiContainerCreative.ContainerCreative)this.field_147002_h;
@@ -512,7 +538,7 @@
if (this.field_147062_A != null)
{
- if (p_147050_1_ == CreativeTabs.field_78027_g)
+ if (p_147050_1_.hasSearchBar())
{
this.field_147062_A.func_146189_e(true);
this.field_147062_A.func_146205_d(false);
@@ -608,23 +634,45 @@
super.func_73863_a(p_73863_1_, p_73863_2_, p_73863_3_);
CreativeTabs[] acreativetabs = CreativeTabs.field_78032_a;
- int i2 = acreativetabs.length;
+ int start = tabPage * 10;
+ int i2 = Math.min(acreativetabs.length, ((tabPage + 1) * 10) + 2);
+ if (tabPage != 0) start += 2;
+ boolean rendered = false;
- for (int j2 = 0; j2 < i2; ++j2)
+ for (int j2 = start; j2 < i2; ++j2)
{
CreativeTabs creativetabs = acreativetabs[j2];
+ if (creativetabs == null) continue;
if (this.func_147052_b(creativetabs, p_73863_1_, p_73863_2_))
{
+ rendered = true;
break;
}
}
+ if (!rendered && func_147052_b(CreativeTabs.field_78027_g, p_73863_1_, p_73863_2_))
+ {
+ func_147052_b(CreativeTabs.field_78036_m, p_73863_1_, p_73863_2_);
+ }
+
if (this.field_147064_C != null && field_147058_w == CreativeTabs.field_78036_m.func_78021_a() && this.func_146978_c(this.field_147064_C.field_75223_e, this.field_147064_C.field_75221_f, 16, 16, p_73863_1_, p_73863_2_))
{
this.func_146279_a(I18n.func_135052_a("inventory.binSlot", new Object[0]), p_73863_1_, p_73863_2_);
}
+ if (maxPages != 0)
+ {
+ String page = String.format("%d / %d", tabPage + 1, maxPages + 1);
+ int width = field_146289_q.func_78256_a(page);
+ GL11.glDisable(GL11.GL_LIGHTING);
+ this.field_73735_i = 300.0F;
+ field_146296_j.field_77023_b = 300.0F;
+ field_146289_q.func_78276_b(page, field_147003_i + (field_146999_f / 2) - (width / 2), field_147009_r - 44, -1);
+ this.field_73735_i = 0.0F;
+ field_146296_j.field_77023_b = 0.0F;
+ }
+
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glDisable(GL11.GL_LIGHTING);
}
@@ -693,17 +741,37 @@
int k = acreativetabs.length;
int l;
- for (l = 0; l < k; ++l)
+ int start = tabPage * 10;
+ k = Math.min(acreativetabs.length, ((tabPage + 1) * 10 + 2));
+ if (tabPage != 0) start += 2;
+
+ for (l = start; l < k; ++l)
{
CreativeTabs creativetabs1 = acreativetabs[l];
this.field_146297_k.func_110434_K().func_110577_a(field_147061_u);
+ if (creativetabs1 == null) continue;
+
if (creativetabs1.func_78021_a() != field_147058_w)
{
this.func_147051_a(creativetabs1);
}
}
+ if (tabPage != 0)
+ {
+ if (creativetabs != CreativeTabs.field_78027_g)
+ {
+ this.field_146297_k.func_110434_K().func_110577_a(field_147061_u);
+ func_147051_a(CreativeTabs.field_78027_g);
+ }
+ if (creativetabs != CreativeTabs.field_78036_m)
+ {
+ this.field_146297_k.func_110434_K().func_110577_a(field_147061_u);
+ func_147051_a(CreativeTabs.field_78036_m);
+ }
+ }
+
this.field_146297_k.func_110434_K().func_110577_a(new ResourceLocation("textures/gui/container/creative_inventory/tab_" + creativetabs.func_78015_f()));
this.func_73729_b(this.field_147003_i, this.field_147009_r, 0, 0, this.field_146999_f, this.field_147000_g);
this.field_147062_A.func_146194_f();
@@ -718,6 +786,14 @@
this.func_73729_b(i1, k + (int)((float)(l - k - 17) * this.field_147067_x), 232 + (this.func_147055_p() ? 0 : 12), 0, 12, 15);
}
+ if (creativetabs == null || creativetabs.getTabPage() != tabPage)
+ {
+ if (creativetabs != CreativeTabs.field_78027_g && creativetabs != CreativeTabs.field_78036_m)
+ {
+ return;
+ }
+ }
+
this.func_147051_a(creativetabs);
if (creativetabs == CreativeTabs.field_78036_m)
@@ -728,6 +804,15 @@
protected boolean func_147049_a(CreativeTabs p_147049_1_, int p_147049_2_, int p_147049_3_)
{
+ if (p_147049_1_.getTabPage() != tabPage)
+ {
+ if (p_147049_1_ != CreativeTabs.field_78027_g &&
+ p_147049_1_ != CreativeTabs.field_78036_m)
+ {
+ return false;
+ }
+ }
+
int k = p_147049_1_.func_78020_k();
int l = 28 * k;
byte b0 = 0;
@@ -828,6 +913,7 @@
}
GL11.glDisable(GL11.GL_LIGHTING);
+ GL11.glColor3f(1F, 1F, 1F); //Forge: Reset color in case Items change it.
this.func_73729_b(l, i1, j, k, 28, b0);
this.field_73735_i = 100.0F;
field_146296_j.field_77023_b = 100.0F;
@@ -854,6 +940,15 @@
{
this.field_146297_k.func_147108_a(new GuiStats(this, this.field_146297_k.field_71439_g.func_146107_m()));
}
+
+ if (p_146284_1_.field_146127_k == 101)
+ {
+ tabPage = Math.max(tabPage - 1, 0);
+ }
+ else if (p_146284_1_.field_146127_k == 102)
+ {
+ tabPage = Math.min(tabPage + 1, maxPages);
+ }
}
public int func_147056_g()
Loaded 100 of 467 files, more files were not shown because too many files have changed in this diff. Show more