Compare commits

..
1257 Commits
Author SHA1 Message Date
mezz d2d9da6af7 Version 5.8.1 Release 2018-07-15 13:42:27 -07:00
temp1011 a9819781d0 Clean up some condition checking (#2191) 2018-07-12 22:11:41 +02:00
temp1011 055834b63a Fix some crashes when disabling fluids #2188 (#2190) 2018-07-12 22:11:29 +02:00
temp1011 e244a0c82c Fix cocoon tile name (#2181) 2018-07-12 22:10:21 +02:00
temp1011 ef96f754d8 fix uncraftable capsules with apiculture disabled #2183 (#2184) 2018-07-11 15:34:30 +02:00
Nedelosk 32270601e7 Merge remote-tracking branch 'origin/mc-1.12' into mc 2018-07-11 15:28:20 +02:00
Nedelosk 823305dd94 Fix #2165, #2186, #2166 De-Sync of all inventory containers and guis 2018-07-11 15:27:56 +02:00
Konstantin bbf80a4320 Update ru_ru.lang (#2122) 2018-07-11 14:21:08 +02:00
Urey. Xue 4057537027 Update zh_cn.lang (#2187) 2018-07-11 14:20:38 +02:00
temp1011 3a294b79a7 Fix buildcraft dependencies (#2180) 2018-07-10 00:00:40 +02:00
temp1011 206d483422 Fix tree gen #2178 (#2179) 2018-07-08 15:14:23 +02:00
Nedelosk 6d51d53da1 Add interface for more easy handling of charcoal pile walls 2018-07-06 01:43:28 +02:00
Nedelosk 1ee6c05494 Update JEI and add farming JEI Category 2018-07-05 17:12:20 +02:00
therealfarfetchd 8feb3500a4 BuildCraft support (#2158) 2018-06-28 21:54:17 +02:00
Nedelosk 4515aa513a Update TileEntityDataFixable log from 'info' to 'debug' 2018-06-28 21:48:21 +02:00
Nedelosk c06057ddd0 Merge branch 'mc-1.12' of https://github.com/ForestryMC/ForestryMC into tile-test 2018-06-28 21:43:16 +02:00
Nedelosk 9b4a4c2b1d Fix Tile Entity Registration 2018-06-28 18:23:45 +02:00
temp1011 2b3d21b05d prevent effect damage underwater (#2149) 2018-06-27 03:06:57 +02:00
temp1011 cb43bbee52 fix broken texture in butterfly model #2171 (#2173) 2018-06-27 03:06:46 +02:00
temp1011 b92a1a10e9 add kill count to butterfly kill command (#2174) 2018-06-27 03:06:38 +02:00
Urey. Xue 8a431e56ef Update zh_cn.lang (#2169) 2018-06-23 23:01:51 +02:00
Nedelosk f73b48695e Merge remote-tracking branch 'origin/mc-1.12' into bug-1.12 2018-06-22 11:25:19 +02:00
Nedelosk 0454fea0a8 Fix broken Flower Cache synchronisation to the client and disk 2018-06-22 11:25:03 +02:00
temp1011 4ff772954e fix a bug in hasFlowersCache (#2168) 2018-06-19 19:48:32 +02:00
temp1011 d8304d5d7e fix log not formatting correctly #2023 (#2164) 2018-06-19 19:48:24 +02:00
Nedelosk a12cfff9d9 Clean Up Analyzer Provider 2018-06-16 17:50:56 +02:00
Nedelosk d34ad60d31 Fix #2159 Minecart Apiary Gui Crash 2018-06-16 17:46:27 +02:00
Nedelosk 508b26ca45 Update ForestryPacket.java 2018-06-15 10:30:37 +02:00
Nedelosk 255bd9da99 Fix #2157 Crash on attempt to break Dehumidifier while camouflaged as block from Chisel 2018-06-14 20:09:35 +02:00
Nedelosk 5cedc2adca Merge branch 'mc-1.12' of https://github.com/ForestryMC/ForestryMC into dev 2018-06-14 19:36:39 +02:00
Nedelosk c968278d27 Fix #2160 Remove @SideOnly(Side.CLIENT) from IAlyzerPlugin 2018-06-14 19:36:20 +02:00
src_resources 2392785daa Better zh_cn.lang translation file update. (#2146)
Better zh_cn.lang translation file update.
2018-06-14 18:10:57 +02:00
temp1011 e82691165f Add config for global biome blacklisting for trees and bees (#2150) 2018-06-14 18:09:54 +02:00
temp1011 e54cd57162 clean up some config comments (#2153) 2018-06-14 18:07:42 +02:00
temp1011 0a3a933b77 Cleanup (#2138) 2018-06-14 18:07:31 +02:00
Nedelosk 10dbed1406 Merge pull request #2151 from rosebeats/mc-1.12
fixed the localization names for the StorageJeiPlugin
2018-06-14 18:05:48 +02:00
Nedelosk b515870cb4 Merge remote-tracking branch 'origin/mc-1.12' into dev 2018-06-14 18:02:36 +02:00
Nedelosk 30010d2554 Improve and Clean Up Gui Elements 2018-06-14 18:01:27 +02:00
rosebeats 317d9abfda fixed the localization names for the StorageJeiPlugin 2018-06-07 21:14:09 -04:00
Nedelosk 7df3a94916 Merge pull request #2142 from temp1011/plugin-compat
fix ic2 crash with apiculture #2139
2018-05-28 22:58:09 +02:00
temp1011 8158562974 fix ic2 crash with apiculture #2139 2018-05-28 14:28:55 +01:00
temp1011 a96ce6c873 use new maven for teslaAPI (#2133) 2018-05-28 14:06:39 +02:00
temp1011 6efbdd747d Improve Industrialcraft2 plugin (#2057) 2018-05-28 14:05:32 +02:00
Jason Carrete 82dd0e5eed Update frames.json (#2137) 2018-05-27 11:57:29 +02:00
Nedelosk 64c0590bef Fix Manual Multi-Farms placing humus 2018-05-17 15:28:49 +02:00
Nedelosk 691ccd578e Fix #1525 Balance Electric Engine Circuits 2018-05-11 12:27:58 +02:00
Nedelosk 98cd99aa4e Fix #1914 Forestry Not Playing Right with Fast Leaf Rendering Options. 2018-05-11 12:17:12 +02:00
Nedelosk cd8e78f60a Merge remote-tracking branch 'origin/mc-1.12' into dev 2018-05-11 11:37:21 +02:00
Nedelosk 5ed536da7c Fix #2021 Multifarm configurable without board bug 2018-05-11 11:19:07 +02:00
temp1011 96ca20c784 Add configuration for crates (#2047) 2018-05-11 11:04:11 +02:00
Dmitriy Medvedev 764d969bb4 Fixed Backpacks Localization (#2120) 2018-05-11 11:02:55 +02:00
temp1011 a26a86fe99 use mod log rather than fml log (#2129) 2018-05-11 11:02:43 +02:00
Nedelosk ebe6580aaf Fix #2130 Can't insert Immersive engineering industrial hemp into crop multifarm block 2018-05-11 11:01:02 +02:00
Nedelosk e90ab8caf6 Merge branch 'mc-1.12' of https://github.com/ForestryMC/ForestryMC into dev 2018-05-04 15:04:20 +02:00
Nedelosk efdffd31c8 Fix #2113 Conduits / Itemducts not working with alveary 2018-05-04 15:04:07 +02:00
mezz fa515f0941 Fix #2114 Limit crafting operations to 64 crafts per shift-click 2018-05-02 21:57:28 -07:00
temp1011 78c033a7d2 Clean up code (#2053) 2018-05-01 19:48:06 +02:00
temp1011 4975fa80c3 Make tree gen be configurable (#2046) 2018-05-01 18:42:46 +02:00
temp1011 aa642a3ee8 small fix for a JEI log error (#2110) 2018-05-01 18:42:24 +02:00
Nedelosk b19809bd3c Merge branch 'mc-1.12' of https://github.com/ForestryMC/ForestryMC into dev 2018-05-01 18:42:01 +02:00
temp1011 b566a1befd small fix comb recipes (#2112) 2018-05-01 18:41:49 +02:00
Nedelosk 88c9270316 Fix #2082 Unable to put fuel into the fermenter 2018-05-01 18:41:32 +02:00
Nedelosk f52cc3893b Add lang file back 2018-04-29 12:27:25 +02:00
Nedelosk b7578e3a11 Remove lang files 2018-04-29 12:26:58 +02:00
Nedelosk c124a34533 Remove outdated lang files and lowercase the names of the other files 2018-04-29 12:24:44 +02:00
Nedelosk ae038b23f2 Update Lang files to 1.12 2018-04-29 12:11:34 +02:00
mezz df29777b49 Update README.md 2018-04-28 15:34:43 -07:00
mezz a786d71cfd Rename LANG.md to README.md 2018-04-28 15:33:41 -07:00
temp1011 2b757ae91a Move lang files in to the main project (#2104) 2018-04-28 15:23:56 -07:00
Nedelosk decc351e04 Fix Machine Hit Particles 2018-04-28 14:16:33 +02:00
Nedelosk 98806129bc Merge branch 'mc-1.12' of https://github.com/ForestryMC/ForestryMC into dev 2018-04-28 09:49:31 +02:00
Nedelosk 55c01f4cea Fix #1503 Machine Breaking Particle Speed 2018-04-28 09:48:07 +02:00
temp1011 38447d4d13 Start removing metadata from code in preparation for 1.13 (#2068) 2018-04-27 13:51:41 +02:00
temp1011 348149f4d6 Add config to let capsules be reusable (#2066)
* Add config option to make capsules non consumable

* Fix naming
2018-04-27 13:51:22 +02:00
Jose dfb4504cde Tweak ash texture (#1902)
* Make ash less confusing

* Updated textures
2018-04-27 13:51:13 +02:00
temp1011 f12c6d2d11 Add IMC for registering flowers (#2027) 2018-04-27 13:51:04 +02:00
temp1011 0ff0aa802c Tech reborn plugin (#2078)
* Add Plugin Tech Reborn
2018-04-27 13:50:38 +02:00
temp1011 fd25e0822d fix crash when raytrace result is null #2090 (#2105) 2018-04-27 13:49:57 +02:00
temp1011 649c13f5f0 fix wrong localisation key for habitat locator #2100 (#2106) 2018-04-27 13:49:51 +02:00
Nedelosk 630dcde28a Add missing code 2018-04-20 17:43:56 +02:00
Nedelosk d4dee797d7 Fix book entry loading after reloading the resource manager 2018-04-20 17:35:01 +02:00
Nedelosk 47ff5d9ad1 Fix #2094, Fix #2096 Wrong entry order and Clean Up resource loading 2018-04-20 15:01:31 +02:00
Nedelosk 6ff1d8b8d7 Fix #2095 Duplicated Book Entries 2018-04-20 14:05:02 +02:00
Nedelosk 934ffde12a Merge remote-tracking branch 'origin/mc-1.12' into dev 2018-04-16 20:30:39 +02:00
Nedelosk 6c806c377a Fix #2087 Issue with guide book 2018-04-16 20:30:09 +02:00
temp1011 24c8add7fc Update README (#2080) 2018-04-14 16:42:08 -07:00
temp1011 8c39ad956e Optimise Worldgen Hives (#2063) 2018-04-14 16:41:25 -07:00
Nedelosk 36ccd5c3e1 Fix #2077 Crash from disabling the Arboriculture Module 2018-04-09 18:55:51 +02:00
Nedelosk d621d8a5df Add more methods to ModuleHelper 2018-04-06 16:14:13 +02:00
Nedelosk 76d77b4784 Clean Up Book 2018-04-06 15:57:39 +02:00
Nedelosk 6efbd6e158 Add missing Side Only Annotations Fix #2076 2018-04-06 00:45:53 +02:00
temp1011 aa45da81ba Fix extra drop from greenhouse window (#2072) 2018-04-05 21:22:48 +02:00
temp1011 3cd1c30dbc Update Forge and Mappings (#2075) 2018-04-05 21:21:48 +02:00
Nedelosk 8ba478d758 Add Guide Book and Analyzer Screen (#2073) 2018-04-05 21:20:16 +02:00
Nedelosk b5a8740e4a Merge pull request #2016 from temp1011/engine-output
Stop peat fired engine outputting ash through power side
2018-03-30 18:23:19 +02:00
Nedelosk 8f6b056776 Merge pull request #2051 from temp1011/remove-chisel-plugin
Remove Chisel Plugin
2018-03-30 18:22:24 +02:00
Nedelosk d72ba48a1a Merge pull request #2055 from temp1011/butterfly-gamerule
Make butterflies obey mob spawning gamerules
2018-03-30 18:21:50 +02:00
Nedelosk c0a3e2240f Merge pull request #2054 from temp1011/block-xp-drop
Use different method to drop xp from Apatite Ore
2018-03-30 18:21:39 +02:00
temp1011 46f78ce7b3 Make butterflies obey mob spawning gamerules 2018-03-24 02:13:28 +00:00
temp1011 b0bc8429ac Don't drop xp orbs into world directly 2018-03-24 01:52:15 +00:00
temp1011 9c44111665 Remove Chisel Plugin 2018-03-23 22:18:37 +00:00
mezz 54a9da917d Replace Forestry IRC link with discord badge 2018-03-17 23:51:56 -07:00
temp1011 bcafbcbc32 resolve conflict 2018-03-14 18:53:30 +00:00
Nedelosk 2ce018d84b Merge pull request #1998 from asiekierka/mc-1.12
minor ShapedRecipeCustom optimization
2018-03-14 17:06:35 +01:00
Nedelosk 0638822b74 Merge pull request #2006 from temp1011/self-breeding
Add self-pollination of leaves near bees
2018-03-14 17:06:24 +01:00
Nedelosk 2b8d905e0e Merge branch 'mc-1.12' into self-breeding 2018-03-14 17:06:16 +01:00
Nedelosk d0f28a32b2 Merge pull request #2012 from temp1011/repairable-armour
Make Apiarist Armour Repairable
2018-03-14 17:04:20 +01:00
Nedelosk b74e142ce1 Merge pull request #2025 from temp1011/flowerpot-flowers
Add potted plants as flowers for bees
2018-03-14 17:03:47 +01:00
Nedelosk 3d95b9f6d9 Merge pull request #2032 from temp1011/charcoal-block-oredict
Register Charcoal Block with Ore Dictionary
2018-03-14 17:03:00 +01:00
Nedelosk 571d158809 Merge remote-tracking branch 'origin/mc-1.12' into mc-1.12 2018-03-14 17:02:11 +01:00
Nedelosk 9cd6bfcfa8 Merge pull request #2033 from temp1011/fix-jei-errors
Fix JEI errors for disabled modules
2018-03-14 17:01:44 +01:00
Nedelosk ebc70ab22a Fix #2037 Add Comparator Support for Engines 2018-03-14 16:45:38 +01:00
Nedelosk e3e4a4341d Fix #2042 Another crash with butterflies 2018-03-14 15:35:49 +01:00
Nedelosk 918e4f0099 Fix #2040 Villager AI Crashes Server 2018-03-14 15:25:00 +01:00
temp1011 123bed88a2 Add AI for Apiarist to Replace Bees in Village Bee Houses (#2001) 2018-03-12 21:09:09 -07:00
temp1011 9de446cc4e Fix Broken Ore Dictionary Registration 2018-03-11 19:29:39 +00:00
temp1011 f328efa4e9 Fix JEI errors for disabled modules 2018-03-11 17:40:16 +00:00
temp1011 cdb5ddeb6a Register Charcoal Block with Ore Dictionary 2018-03-11 16:56:47 +00:00
temp1011 7f83c387e3 Remove test, use Enum instead of ordinal 2018-03-06 23:54:34 +00:00
temp1011 95c52f3607 Add potted plants as flowers for bees 2018-03-06 15:32:23 +00:00
temp1011 19a30bdb91 Stop peat fired engine outputting ash through power side 2018-03-01 15:52:00 +00:00
temp1011 1b262d6604 Improve logic 2018-02-28 19:33:09 +00:00
temp1011 ca73687940 Make Apiarist Armour Repairable 2018-02-26 22:39:57 +00:00
temp1011 ed2f06c514 formatting, re-include config 2018-02-26 21:44:12 +00:00
temp1011 bef36c15b0 Move self pollination into main pollination method
- Only happens if normal pollination can't occur
- Will not cause return otherwise would worsen chance for cross pollination
2018-02-26 21:39:19 +00:00
temp1011 7dba583c26 Add self-pollination of leaves near bees 2018-02-24 18:04:17 +00:00
Adrian Siekierka 3168639c89 minor ShapedRecipeCustom optimization 2018-02-19 11:59:44 +01:00
Nedelosk e9019fd8c3 Fix #1997 Actually Additions Integration 2018-02-18 09:58:55 +01:00
Nedelosk d43cc63367 Close #1859, Close #1858 Add Natura huge glowshrooms farm support 2018-02-17 15:54:49 +01:00
Nedelosk 89e8ec8e38 Update Lang 2018-02-17 14:27:23 +01:00
Nedelosk f270231e67 Fix "X-Ray" Leaves and wrong leaf particle color 2018-02-17 14:25:11 +01:00
Nedelosk 34be92d462 Fix #1959 Forestry leaves causing server crash 2018-02-16 18:56:25 +01:00
Nedelosk eea193aa83 Fix #1962 Wood Pile fire spread might be a bit too aggressive 2018-02-16 18:51:33 +01:00
Nedelosk d6a5827f0b Fix #1974 Add Support for Animania wool types in recipes 2018-02-16 18:46:13 +01:00
Nedelosk a093e7c094 Fix #1982 Wrong drop Greenhouse Window 2018-02-16 18:34:17 +01:00
Nedelosk 4ea0795063 Fix #1975 Farm blocks change type on world reload 2018-02-16 18:01:31 +01:00
Nedelosk 31b83ea852 Fix #1963 Forestry leaves confuse minimap mods 2018-02-16 17:55:40 +01:00
Nedelosk 0f494d4ac7 Merge remote-tracking branch 'origin/mc-1.12' into mc-1.12 2018-02-16 17:12:27 +01:00
Nedelosk 0cfddef397 Fix #1984 Server crash when placing an arboretum 2018-02-16 17:12:10 +01:00
Nedelosk e4478bc296 Merge pull request #1968 from temp1011/more-blacklisting
Add whitelist for generation based on dimension
2018-02-16 17:09:45 +01:00
Nedelosk 6a921c78fb Merge pull request #1986 from temp1011/modules-disable
Fix a disabled module crash
2018-02-16 17:09:28 +01:00
Nedelosk 5f9e0f30fd Merge remote-tracking branch 'origin/mc-1.12' into mc-1.12 2018-02-16 17:08:04 +01:00
Nedelosk 355ba9a7ed Fix #1993, Fix #1972 Managed Succulent Farm doesn't work and Farm multiblock causing chunks to be loaded 2018-02-16 17:07:40 +01:00
Nedelosk 424bc8910d Fix #1988 Arborist's Chests causing suffocation damage 2018-02-16 16:50:39 +01:00
Nedelosk 6eab284cd1 Fix #1989 "X-Ray" Leaves 2018-02-16 16:37:17 +01:00
temp1011 1745a7e946 More correct method 2018-02-11 11:52:59 +00:00
temp1011 74e381f184 formatting 2018-02-11 11:24:07 +00:00
temp1011 0b2589b007 Fix crash if HarvestCraft present but Apiculture disabled 2018-02-11 11:22:35 +00:00
Nedelosk d29187746d Merge pull request #1980 from temp1011/gear-fix
Oredict for bronze gear in sorting pipe recipe
2018-02-10 13:11:35 +01:00
temp1011 26d538cb50 Add oredict for bronze gear in sorting pipe recipe 2018-02-08 11:19:34 +00:00
Nedelosk d48fca4652 Fix #1969 Multiblock farms server-crash 2018-02-03 23:17:38 +01:00
temp1011 211ab566a7 Fix return statement 2018-02-03 18:32:24 +00:00
temp1011 bb7a42dff5 Woops 2018-02-03 18:21:31 +00:00
temp1011 31bcc661cd Added whitelist for dimension generation too 2018-02-03 18:13:53 +00:00
temp1011 43a29e7ec8 Merge branch 'mc-1.12' of https://github.com/temp1011/ForestryMC into mc-1.12 2018-02-03 11:57:09 +00:00
temp1011 13905ee4a9 merge (#1)
* Reintroduce the old-style farm

* Remove Unused Files

* Fix #1945 Database duping trees / bees

* Fix broken model baker uvs

* Improve Farm Logic System and add ring farm layout

* Rebalance electron tubes and add ender farm

* Improve fertilizer config and Clean Up

* Clean Up API

* Add missing farm logic localisation

* Add missing fluid handler capability to the planter

* Remove unneeded GL state changes

* Update Lang

* Fix #1955 Add Filter Sorting to fix a server sided bug

* Make cultivation farms more expensive

* Round fertilizer values

* Add deprecated circuit replacement and Version 5.8
2018-02-03 11:55:03 +00:00
Nedelosk 2b9b105211 Add deprecated circuit replacement and Version 5.8 2018-02-03 12:45:27 +01:00
Nedelosk 8b10349309 Merge pull request #1948 from ForestryMC/farm
Reintroduce the old-style farm and Rebalance electron tubes
2018-02-03 12:10:48 +01:00
Nedelosk 0d26b6b2f2 Merge pull request #1965 from temp1011/mc-1.12
Add IMC messages for dimension blacklist
2018-02-03 12:08:05 +01:00
temp1011 3e5de52efd fix imports 2018-02-02 00:18:41 +00:00
temp1011 e30e9f4ab9 Add IMC messages for mods to blacklist dimensions in 2018-02-02 00:07:59 +00:00
Nedelosk 05d1eb87ce Round fertilizer values 2018-01-28 22:54:35 +01:00
Nedelosk 7679dfc393 Make cultivation farms more expensive 2018-01-28 18:38:29 +01:00
Nedelosk bb52acc67c Fix #1955 Add Filter Sorting to fix a server sided bug 2018-01-23 16:24:56 +01:00
Nedelosk 3caf8cbfef Update Lang 2018-01-23 15:36:38 +01:00
Nedelosk 207f15ed0b Remove unneeded GL state changes 2018-01-23 15:29:30 +01:00
Nedelosk c5178be225 Add missing fluid handler capability to the planter 2018-01-22 19:54:14 +01:00
Nedelosk cd7250604e Add missing farm logic localisation 2018-01-22 18:56:25 +01:00
Nedelosk 533c9d0b2a Clean Up API 2018-01-20 21:29:07 +01:00
Nedelosk c00fa15f0e Improve fertilizer config and Clean Up 2018-01-20 21:00:21 +01:00
Nedelosk ce3dea42e3 Pull from branch 'mc-1.12' 2018-01-20 19:28:34 +01:00
Nedelosk 287cb8cb87 Rebalance electron tubes and add ender farm 2018-01-20 18:05:31 +01:00
Nedelosk 10fec50457 Improve Farm Logic System and add ring farm layout 2018-01-20 02:35:33 +01:00
Nedelosk 43c61c18c0 Fix broken model baker uvs 2018-01-15 19:23:54 +01:00
Nedelosk dca593f7d8 Fix #1945 Database duping trees / bees 2018-01-15 19:18:59 +01:00
Nedelosk 4c874fcf7d Update Lang 2018-01-15 19:12:54 +01:00
Nedelosk e62a2f1199 Merge branch 'mc-1.12' of https://github.com/ForestryMC/ForestryMC into pipe-1.12 2018-01-15 19:05:11 +01:00
Nedelosk 8ab94e6741 Improve genetic filter implementation 2018-01-15 19:03:52 +01:00
Nedelosk 1278c09064 Move the filter logic to a separate interface 2018-01-15 19:03:51 +01:00
Nedelosk ed0b884bce Change default filter rule 2018-01-15 19:03:50 +01:00
Nedelosk 85f413f857 Improve Filter collision box 2018-01-15 19:03:49 +01:00
Nedelosk 3cc298b0f1 Remove unused texture 2018-01-15 19:03:49 +01:00
Nedelosk 8b0d54f3ec Add sorting block (Genetic Filter) 2018-01-15 19:03:48 +01:00
temp1011 40445462f1 Add more Dimension Config Blacklists for world generation (#1942) 2018-01-14 12:16:36 -08:00
temp1011 8eea336fdb Removing overworked bees mechanic, cap production modifier at 16x (#1946) 2018-01-14 12:15:45 -08:00
Nedelosk 521514f3d2 Remove Unused Files 2018-01-14 02:53:56 +01:00
Nedelosk cc50a05f43 Reintroduce the old-style farm 2018-01-14 02:35:12 +01:00
Nedelosk 1fc56c3b20 Merge pull request #1941 from phillipasmith1995/mc-1.12
Adds dimension blacklist for hive generation.
2018-01-08 17:17:18 +01:00
phillipasmith1995 9cee882788 Adds dimension blacklist for hive generation. 2018-01-08 09:24:17 -06:00
phillipasmith1995 9404f769bb Merge branch 'mc-1.12' of https://github.com/phillipasmith1995/ForestryMC into mc-1.12
# Conflicts:
#	src/main/java/forestry/apiculture/HiveConfig.java
2018-01-08 09:21:51 -06:00
phillipasmith1995 7b8b317ffe Adds dimension blacklist for hive generation. 2018-01-08 09:18:49 -06:00
phillipasmith1995 b40a6d4ec9 Adds dimension blacklist for hive generation. 2018-01-08 00:52:34 -06:00
Nedelosk 42865951a9 Move the worktable into a separate module 2018-01-07 02:18:11 +01:00
Nedelosk a058c3f8c9 Merge remote-tracking branch 'origin/mc-1.12' into 1.12 2018-01-07 00:21:00 +01:00
Nedelosk a83e428d29 Merge pull request #1938 from temp1011/analyzerpowerconfig
Add power config for Analyzer
2018-01-07 00:20:37 +01:00
temp1011 9c41566485 Should be all of them (hopefully) 2018-01-06 23:18:34 +00:00
temp1011 842b9c7199 Add power config for analyzer 2018-01-06 22:51:36 +00:00
Nedelosk cbb0c15783 Fix #1061 Squeezer is very "liberal" regarding oredict in Recipes 2018-01-06 23:23:46 +01:00
Nedelosk cbc6f9acff Update Lang Git-Module 2018-01-06 22:39:08 +01:00
Nedelosk 03ecce51cc Fix #1937 Backpacks do not hold previously defined items 2018-01-06 22:33:29 +01:00
Nedelosk 644145ac92 Fix #1399 Add Hive Generation Blacklist 2018-01-06 22:19:37 +01:00
Nedelosk 850a7e2919 Fix #1884 Tin can / wax capsule cannot pick up fluid blocks in world 2018-01-06 20:56:15 +01:00
Nedelosk 1f54359836 Fix Crate Registration 2018-01-06 17:14:08 +01:00
Nedelosk debde28aba Merge remote-tracking branch 'origin/mc-1.12' into 1.12 2018-01-06 16:51:38 +01:00
Nedelosk a2aa07c917 Fix #1916 Client Crash with new version 2018-01-06 16:51:13 +01:00
Nedelosk 3c9572eb83 Fix #1874 Crash when adding bee to BQM quest / chestloot 2018-01-06 16:21:47 +01:00
Nedelosk 03fd954781 Merge pull request #1930 from temp1011/mc-1.12
Some minor additions
2018-01-06 16:07:20 +01:00
Nedelosk 2002dff3c9 Fix #1920 Crate registration only on client side 2018-01-06 15:57:16 +01:00
temp1011 d9ade6dae0 No biome check 2018-01-06 14:34:20 +00:00
Nedelosk 3b547c1b87 Fix #1919 Butterfly Model throws NullPointerException 2018-01-06 14:39:43 +01:00
Nedelosk 05070982dc Improve Database Recipe 2018-01-06 13:20:35 +01:00
temp1011 9833dbb01f Merge branch 'mc-1.12' into mc-1.12 2018-01-05 18:10:22 +00:00
temp1011 e67ef8adec Merge branch 'mc-1.12' into mc-1.12 2018-01-05 16:56:54 +00:00
temp1011 b5b4ff2de6 Fix hive flammability
Hive placed in the overworld burned whereas hive placed in nether did not in my tests. Hopefully this works better.
2018-01-05 16:13:40 +00:00
Nedelosk f78e21e31a Merge remote-tracking branch 'origin/mc-1.12' into 1.12 2018-01-05 16:42:56 +01:00
Nedelosk 457962c716 Fix #1932 Client Tile Updates Depending On Apiculture Module 2018-01-05 16:36:00 +01:00
temp1011 7a0dde1140 Woops 2018-01-02 20:36:16 +00:00
temp1011 5f7f7fbed6 add damage option to hives based on config 2017-12-30 23:24:45 +00:00
temp1011 c107c75cbe update config in apiculture 2017-12-30 23:22:19 +00:00
temp1011 8ed4fa8d7b make non hellish hives flammable 2017-12-30 00:09:41 +00:00
mezz 5a10d8a0b2 Fix "Invalid property value detected" error logs from Buildcraft 2017-12-26 19:30:14 -08:00
Nedelosk 16c3fae45d Fix #1918 Fix #1912 packet handler issue with latest Forge (14.23.1.2574+) 2017-12-18 20:25:21 +01:00
Nedelosk b3be6a8f02 Fix Broken Sockets 2017-12-17 16:07:12 +01:00
Nedelosk aac4d730d6 Merge remote-tracking branch 'origin/mc-1.12' into 1.12 2017-12-17 15:45:32 +01:00
Nedelosk dacd2741a3 Fix #1907 Electric engine doesn't update configuration properly 2017-12-17 15:41:01 +01:00
Nedelosk 2f47114015 Fix #1901 Custom Backpack Model Registration 2017-12-17 15:26:43 +01:00
Nedelosk b7ae349314 Fix #1906 Willow leaves can be used to create an x-ray 2017-12-17 10:38:20 +01:00
Remy A fbea338462 Fix resurrected ender dragons having no AI (#1908) 2017-12-12 21:48:56 -08:00
mezz b07e5a1556 Revert "Slightly improve render performance of genetic items (bee, trees, etc)"
This reverts commit 3df3d9121e.
2017-11-29 22:00:21 -08:00
Nedelosk 13f49fc930 Merge remote-tracking branch 'origin/mc-1.12' into 1.12 2017-11-24 00:04:05 +01:00
Nedelosk 3c4b025c74 Fix #1893 False Module Container ID 2017-11-24 00:03:41 +01:00
mezz 3df3d9121e Slightly improve render performance of genetic items (bee, trees, etc) 2017-11-11 22:04:39 -08:00
mezz 58ab49d66e Stop viscous fluids from making water flowing sounds 2017-11-11 20:51:27 -08:00
Nedelosk 37893d8aca Fix #1890 NPE with Quark 2017-11-08 20:33:59 +01:00
Nedelosk 9814601ff2 Fix backward compatibility 2017-11-03 23:10:10 +01:00
Nedelosk 11e8a06a48 Clean Up Module System 2017-11-03 22:38:13 +01:00
Nedelosk 26f44a2862 Fix Module System 2017-11-03 21:34:21 +01:00
Nedelosk 3073473b0e Fix Api 2017-11-03 19:55:25 +01:00
Nedelosk 61af8ba6c9 Improve Module System 2017-11-03 18:40:44 +01:00
Nedelosk 3e60c43b30 Merge remote-tracking branch 'origin/mc-1.12' into mc-1.12 2017-11-03 17:01:50 +01:00
Nedelosk e9ae149ba2 Fix GreenhouseEventHandler 2017-11-03 16:58:31 +01:00
Nedelosk b62ec72422 Change the plugin system to a module system and split up modules
-Changed plugin system to a module
-Renamed forestry plugins to modules
-Mod integration plugins are still called plugins
-Moved the woodpile from the arboriculture module to the charcoal module
-Moved the backpacks from the storage module to the backpacks module
-Moved the crates from the storage module to the creates module
-Added the database module with a new storage block for individuals
-Added a species plugin interface to handle the database gui
-Added some alyzer methods to the species plugin to move the alyzer
integration later to it
2017-11-03 16:56:02 +01:00
Nedelosk 50ef3d8b2c Update Lang 2017-11-03 16:46:09 +01:00
Nedelosk a0e15f76ca Move some classes to the api and fix broken api classes 2017-11-03 16:09:17 +01:00
Nedelosk e7766d3ad9 Remove experimental code 2017-11-02 16:12:06 +01:00
Nedelosk 4e096e7338 Remove unused resources 2017-11-02 16:06:17 +01:00
Nedelosk 88fd031fb4 Change the plugin system to a module system and slit up modules
-Moved the woodpile from the arboriculture module to the charcoal module
-Moved the backpacks from the storage module to the backpacks module
-Moved the crates from the storage module to the creates module
-Added the database module with a new storage for individuals
-Added a gui element system to improve the alyzer api
-Added a species plugin interface to handle the database gui
-Added some alyzer methods to the species plugin to move the alyzer
integration later to it
2017-11-02 16:03:33 +01:00
Nedelosk ee272de168 Fix #1866 Block State Interaction Issues With Pokecube and Forestry 2017-10-12 11:55:06 +02:00
Nedelosk 1faaa6e297 Merge remote-tracking branch 'origin/mc-1.12' into mc-1.12 2017-10-07 14:44:34 +02:00
Nedelosk 6c86447891 Fix Mystical Agriculture Inferium Seeds and update Integration 2017-10-07 14:41:13 +02:00
Nedelosk 905e81c2b9 Fix #1860 Mystical Agriculture Integration (Could not find item) 2017-10-07 14:25:20 +02:00
Nedelosk 25bb682f7d Fix #1856 Non Glass Fluids in Thermionic Fabricator are not getting used up. 2017-10-07 14:15:38 +02:00
Nedelosk 18e10f617c Fix #1863 Bottler does not empty bottles 2017-10-07 14:08:30 +02:00
mezz e0a0ab5594 Add modId to alleles and use new Forge item.getCreatorModId feature 2017-10-03 00:03:46 -07:00
Nedelosk 29d96db1e8 Merge remote-tracking branch 'origin/mc-1.12' into mc-1.12 2017-09-30 16:16:12 +02:00
Nedelosk 3769ec42d2 Fix #1857 Couldn't find resource table forestry:chests/village_naturalist 2017-09-30 16:15:52 +02:00
mezz d0c1133304 Update for 1.12.2 2017-09-18 20:33:56 -07:00
Nedelosk c3ff59fbfb Remove expensive check 2017-09-18 15:26:03 +02:00
Nedelosk aa52b063b7 Fix two Greenhouse Crashes 2017-09-18 15:08:58 +02:00
Nedelosk a74b3c87c4 Fix #1854 Crash on load if the greenhouse plugin is disabled 2017-09-18 13:50:07 +02:00
Nedelosk 6c38a6a28e Fix Greenhouse Climatisers 2017-09-15 13:50:38 +02:00
Nedelosk db49d305f4 Add PreInit Event to the Api 2017-09-10 16:14:32 +02:00
Nedelosk 5df7b9252b Remove Error Message 2017-09-10 01:26:00 +02:00
Nedelosk f4d0979bb1 Fix Climate Sources 2017-09-10 00:20:50 +02:00
Nedelosk 199200cb01 Fix #1425 Add Milk Capsule Cake Recipe 2017-09-09 22:24:37 +02:00
Nedelosk 419cebef33 Fix #1680 Display almost all butterflies 2017-09-09 20:44:19 +02:00
Nedelosk 716167e3ec Fix #1375 Split up the loot tables for every plugin 2017-09-09 20:18:19 +02:00
Nedelosk 60debc45f3 Update Lang 2017-09-09 01:12:03 +02:00
Nedelosk 2c04d42717 Improve Climate Source Circuits 2017-09-09 00:45:38 +02:00
Nedelosk 9e21ed9670 Update Version and Forge 2017-09-08 22:56:48 +02:00
Nedelosk 095e710bec Merge branch 'mc-1.12' of https://github.com/ForestryMC/ForestryMC into Greenhouse 2017-09-08 22:48:31 +02:00
Nedelosk 888c5268d5 Merge branch 'mc-1.12' of https://github.com/ForestryMC/ForestryMC into Greenhouse 2017-09-08 22:48:13 +02:00
Nedelosk 1180c16f45 Improve Climate Sources 2017-09-08 22:43:24 +02:00
mezz dea1fb144a Fix #1434 Fix #1551 Make hives spawn existing flowers only, up to 10 2017-09-07 23:41:59 -07:00
mezz a01190a242 Fix #1679 use fractions of world height to define ore generation levels 2017-09-07 21:41:15 -07:00
mezz 0ebced9609 Fix #1845 API has references to internal classes 2017-09-07 19:23:59 -07:00
Nedelosk ab4489c5aa Improve Climate Modifier Widget 2017-09-07 16:44:28 +02:00
Nedelosk d2ea1d820c Add Climate Modifier Widget 2017-09-07 15:23:43 +02:00
Nedelosk 4d0dfd837e Make Climate state creation only accessible through ClimateStates 2017-09-06 19:33:13 +02:00
Nedelosk e07f10d981 Clean Up Greenhouse Climate 2017-09-06 17:38:00 +02:00
Nedelosk d48e9484b8 Merge branch 'mc-1.12' of https://github.com/ForestryMC/ForestryMC into Greenhouse 2017-09-06 16:27:11 +02:00
mezz b9924ea98b Fix #1843 Improve performance of worldgen hives 2017-09-06 00:35:54 -07:00
mezz 5707d27598 Fix #1577 Hives load new chunks when retrogen is active 2017-09-04 14:46:56 -07:00
mezz 42bde9e576 Fix #1836 Update minimum required JEI version 2017-09-04 14:10:55 -07:00
mezz 76f09be39d Close #1838 Make IHiveFrame's getBeeModifier() ItemStack aware 2017-09-04 13:52:32 -07:00
Nedelosk 3aa328a522 Clean Up Climatisers 2017-09-02 18:07:46 +02:00
Nedelosk 2b0f5bfdf4 Clean Up 2017-09-02 17:28:13 +02:00
Nedelosk bbe6f919c4 Merge branch 'mc-1.12' of https://github.com/ForestryMC/ForestryMC into mc-1.12 2017-09-02 16:01:22 +02:00
Nedelosk 4441d78eb2 Improve Time Modifier 2017-09-02 15:56:10 +02:00
LachimHeigrim e6cb758e0e Fix #1827 Allow Natura nether saplings to be autofarmed in arboreal farm (#1829) 2017-09-01 19:58:46 -07:00
Nedelosk 6d774de5a6 Clean Up Climate Bar 2017-09-01 12:49:29 +02:00
Nedelosk 0a2ca1febc Fix Camouflage 2017-08-31 17:19:51 +02:00
Nedelosk 6d3ff67efd Fix Greenhouse Target State NPE 2017-08-31 16:47:08 +02:00
Nedelosk d37a52dcf4 Merge branch 'mc-1.12' of https://github.com/ForestryMC/ForestryMC into mc-1.12 2017-08-31 16:38:20 +02:00
Nedelosk c03fa0e955 Improve Climate State 2017-08-31 16:29:46 +02:00
mezz b3549edf51 Fix #1833 Item in players hand get deleted by farm planting 2017-08-29 22:14:47 -07:00
mezz e09d159935 Fix breeding data desync after changing dimensions 2017-08-29 20:55:31 -07:00
Nedelosk 66f0da433e Fix Targeted state 2017-08-29 19:08:26 +02:00
Nedelosk 4cb2610b1c Fix #1830 Carpenter removes the wrong item 2017-08-28 16:03:12 +02:00
mezz c44f11cf09 Update dependencies 2017-08-27 14:56:59 -07:00
mezz b69c31ed8a Clean up generics for Forestry ItemBlocks 2017-08-25 21:14:13 -07:00
mezz 6a2231f8fb Fix a crash when escritoire loads with a specimen already in it 2017-08-22 23:00:27 -07:00
mezz a3a6c71c42 Fix #1762 Swapping specimens in the escritoire has strange effects 2017-08-22 22:46:13 -07:00
mezz 8d5c0c6f8b Fix #1806 Allow sapling's products to work as hint items in escritoire 2017-08-22 22:37:35 -07:00
mezz 56603fd00c Fix #1813 Saplings do not drop when removed by water of piston 2017-08-22 22:10:47 -07:00
mezz ed69411d2e Fix #1815 Stop MultiFarm from converting vanilla saplings 2017-08-22 21:45:55 -07:00
Nedelosk d8c8aec2ee Move Climate Bar to the top of the gui 2017-08-21 21:16:36 +02:00
mezz e1d017f077 Fix #1819 Crash when growing short Sipiri trees 2017-08-20 22:24:53 -07:00
mezz 9269af7a13 Update to 1.12.1 2017-08-18 20:17:18 -07:00
Nedelosk 8ffdba5021 Fix build script 2017-08-17 13:59:39 +02:00
Nedelosk e00aecd886 Fix #1807 Honeycomb block uncraftable 2017-08-16 19:26:15 +02:00
Nedelosk 98f859f2fb Add a log message to the Create Model 2017-08-16 14:48:11 +02:00
mezz 55a15d23b2 Fix Pam's harvestcraft integration 2017-08-14 21:19:29 -07:00
Nedelosk 38189388f6 Move Greenhouse classes out of the api 2017-08-14 20:57:34 +02:00
Nedelosk 8bb1b74b1c Merge branch 'Greenhouse' of https://github.com/ForestryMC/ForestryMC into mc-1.12 2017-08-14 19:58:11 +02:00
Nedelosk 465d32af25 Merge branch 'mc-1.12' of https://github.com/ForestryMC/ForestryMC into mc-1.12 2017-08-14 19:57:20 +02:00
Nedelosk 13b8a023a3 Merge branch 'mc-1.11' into Greenhouse 2017-08-14 19:55:09 +02:00
Nedelosk 54ca3488df Update Greenhouse Code to 1.12 2017-08-14 19:51:09 +02:00
Nedelosk 26bf69effc Merge branch 'Greenhouse' of https://github.com/ForestryMC/ForestryMC into mc-1.12 2017-08-14 19:50:34 +02:00
mezz 307580aed8 Mark as working on 1.12.1 on CurseForge 2017-08-13 22:06:46 -07:00
Nedelosk d2d93004e0 Merge pull request #1801 from asiekierka/mc-1.12
Reduce SimpleModel memory usage
2017-08-13 18:21:02 +02:00
Adrian Siekierka e1df424bfd reduce SimpleModel memory usage 2017-08-13 16:35:26 +02:00
Robert Obermeier 6a75347b05 Add Red Orchid support to farm (#1800) 2017-08-12 17:09:00 -07:00
Robert Obermeier cfd513ea80 Fix Natura support (#1794) 2017-08-12 15:50:31 -07:00
Robert Obermeier edcc47a6b3 Fix #1753 Add generalized sapling support (#1798) 2017-08-12 14:44:16 -07:00
mezz 6593118f3d Fix #1787 Wood logs drop the wrong item when harvested with silk touch 2017-08-12 12:39:59 -07:00
mezz 8f29faa28a Fix #1787 Wood logs drop the wrong item when harvested with silk touch 2017-08-12 12:37:11 -07:00
Robert Obermeier fd724d147a Fix #1789 The End has no hives. (#1795) 2017-08-11 20:56:12 -07:00
mezz 1e6716f8ec #1687 Fix crash when genetics items are missing nbt 2017-08-06 12:13:37 -07:00
mezz 787395494c Fix tree generation with Mystcraft 2017-07-29 21:35:50 -07:00
Nedelosk b0b6ffb963 Remove unused code 2017-07-30 01:57:33 +02:00
Nedelosk d3d57ab0df Clean Up 2017-07-30 01:40:27 +02:00
Nedelosk 375515937d Cache Overlay Model 2017-07-30 01:22:51 +02:00
mezz b2e1b2dc9b Fix tree generation with Mystcraft 2017-07-29 15:42:34 -07:00
Nedelosk 6c869cab98 Add climate data 2017-07-29 22:40:56 +02:00
Nedelosk 212f857692 Add ash recipe 2017-07-29 22:05:20 +02:00
Nedelosk c40adda51c Fix PluginCore 2017-07-29 17:48:05 +02:00
Nedelosk 35f7ba6153 Merge branch 'mc-1.11' of https://github.com/ForestryMC/ForestryMC into Greenhouse 2017-07-29 17:46:36 +02:00
Nedelosk 327b7bba87 Improve Greenhouse and fix Wood Pile 2017-07-29 17:38:47 +02:00
mezz defc47000b Fix client visual glitch with worktable 2017-07-29 00:56:34 -07:00
mezz 694cd8103a Fix client visual glitch with worktable 2017-07-29 00:52:48 -07:00
mezz f50e7281c5 Fix serious issues with the worktable
Fix #1677 Fix #1768 Fix #1558 Fix #1519 Fix #1403
2017-07-29 00:52:48 -07:00
mezz 0a37ad0666 First beta version 2017-07-28 23:31:04 -07:00
mezz 13d4907bff #1687 Fix crash when genetics items are missing nbt 2017-07-28 23:28:43 -07:00
mezz 78725009c1 Fix #1777 crash on load from backpacks 2017-07-28 23:13:51 -07:00
mezz a1bc9144bd Fix #1768 fix serious issues with the worktable 2017-07-27 22:39:49 -07:00
Nedelosk 1034111985 Fix #1772 crash if forestry.factory=false 2017-07-28 00:12:01 +02:00
Nedelosk b897056824 Fix #1772 crash if forestry.factory=false 2017-07-28 00:11:03 +02:00
Nedelosk 0c27bf850c Add OreDictionary support for the Fermenter 2017-07-27 15:40:52 +02:00
Nedelosk 87563b6c97 Merge remote-tracking branch 'origin/mc-1.12' into mc-1.12 2017-07-25 16:01:11 +02:00
Nedelosk 62d6294da2 Fix Fertilizer Config from 1.10 to 1.11 / 1.12 2017-07-25 16:01:01 +02:00
Nedelosk 78489a6146 Fix Fertilizer Config from 1.10 to 1.11 / 1.12 2017-07-25 15:59:37 +02:00
Robert Obermeier b4d71543db Move hives into biome decoration generation
fixes #1760
2017-07-24 22:33:21 -07:00
Nedelosk b4db0f32e4 Fix #1731 All 45 slot backpacks have localisation issues. 2017-07-24 02:06:58 +02:00
Nedelosk 8ad42a8918 Fix #1686 1.11.2 Config changes in GUI reset to values in file 2017-07-24 01:59:01 +02:00
Nedelosk 96ed44a186 Add Better with Mods Integration and Fix IE, Roots and Rustic Integration 2017-07-24 00:12:36 +02:00
Nedelosk 4e17804997 Add Roots Integration 2017-07-23 21:39:16 +02:00
Nedelosk e391d06f32 Add Rustic Integration 2017-07-23 20:37:56 +02:00
Nedelosk 353fcb1ba7 Port Mystical Agriculture Integration 2017-07-23 17:35:23 +02:00
mezz 73db1a608a Fix #1741 Fix recipes for farm blocks only allow quartz 2017-07-17 23:41:18 -07:00
Nedelosk 322327e1f4 Update Update formatting-settings.jar
- Changed CONTINUATION_INDENT_SIZE from 8 to 4
2017-07-16 13:46:14 +02:00
Brennan Ward 1c6b60122e Update to AA r115 2017-07-15 17:51:15 -07:00
Nedelosk c2ca77ecae Update formatting-settings.jar 2017-07-15 18:00:34 +02:00
mezz 441f57d027 Test using deobfProvided instead of deobfCompile 2017-07-13 22:42:01 -07:00
mezz 1e7a042b53 Fix missing item/block event handling 2017-07-12 22:47:26 -07:00
mezz 2e0bb5a3b2 Fix JEI dependency info 2017-07-09 21:03:29 -07:00
mezz bf08336bc5 Fix JEI dependency info 2017-07-09 21:02:15 -07:00
mezz 62cbf31ac2 Version 5.4.3 2017-07-03 17:22:56 -07:00
mezz a2eac214b4 Minor cleanup 2017-07-03 17:22:39 -07:00
Nedelosk 32933ce90b Merge remote-tracking branch 'origin/mc-1.12' into mc-1.12 2017-07-04 02:15:42 +02:00
Nedelosk 44cdc191fc Fix #1732 Forestry - Blocks all look the same when placed 2017-07-04 02:15:30 +02:00
mezz e4f77e42d3 Fix #1237 Fireproof blocks work as fuel 2017-07-03 16:52:45 -07:00
mezz 9f91832c7e Experiment updating Gradle Wrapper to 4.0 2017-07-03 15:26:50 -07:00
mezz 6d4af0fb5d Version 5.4.2 2017-07-03 00:17:10 -07:00
mezz 4345739a87 Merge remote-tracking branch 'origin/mc-1.11' into mc-1.12 2017-07-03 00:15:34 -07:00
mezz 0a881a81f8 Fix worktable crafting (#1728) 2017-07-03 00:12:58 -07:00
mezz b066f7ad4c Create proper recipe registry names 2017-07-03 00:06:31 -07:00
mezz a19380347a Fix missing textures on butterfly items (#1730) 2017-07-02 21:31:49 -07:00
mezz 9bc1211e57 Fix missing textures on machine tabs (#1730) 2017-07-02 21:31:29 -07:00
mezz cbce5d0fc0 Cleanup 2017-07-02 21:31:03 -07:00
mezz b20b56c5d4 Update Forge 2017-07-02 21:30:40 -07:00
mezz 27041c205c Fix #1723 Items show in the wrong creative tabs 2017-07-02 01:00:28 -07:00
mezz 00504d4096 Version 5.4.1 2017-07-02 00:51:29 -07:00
mezz ed0c5e1a7e Move away from deprecated JEI classes 2017-07-02 00:51:06 -07:00
mezz ddf90f4ee0 Update Forge to Recommended Build 2017-07-02 00:47:37 -07:00
mezz 39290512cf Fix GUIs drawing without the black background 2017-06-26 20:02:45 -07:00
Nedelosk 09ea20729d Improve Wood Model Loader 2017-06-26 14:00:41 +02:00
Nedelosk 736e6c5fa2 Change wood texture json file name 2017-06-25 15:33:00 +02:00
Nedelosk e96f4fc8a0 Fix Fence Gate Model 2017-06-25 11:55:25 +02:00
mezz bbe1f539dd Update cursegradle plugin 2017-06-24 22:22:42 -07:00
mezz 1fcaacd41b Stop using some deprecated methods and classes 2017-06-24 22:10:55 -07:00
mezz 7306764c51 Initial update to Minecraft 1.12 2017-06-24 21:49:47 -07:00
Nedelosk d3c7280f3f Fix #1712 1.11.2 Ferementer does not work when sappinessHigh 2017-06-23 20:23:38 +02:00
Nedelosk 2c6ed06574 More Recipe Clean Up 2017-06-23 18:56:30 +02:00
Nedelosk 81e2e18089 Clean Up Carpenter and Fabricator RecipeManagers 2017-06-23 18:50:51 +02:00
Nedelosk 7b7e7eb7e7 Update formatting-settings to 1.11.2
Changed IMPORT_LAYOUT cpw.mods.fml to net.minecraftforge.fml
2017-06-23 18:30:39 +02:00
Nedelosk 944aaf3297 Fix #1715 Forestry 1.11.2 trees spawn even when disabled in config 2017-06-22 14:57:47 +02:00
Nedelosk 5a5793f243 Fix forestry slab brightness 2017-06-22 14:54:40 +02:00
Nedelosk 5e41a4d2c0 Fix #1676 Soldering Iron usage has insufficient server-side validation 2017-06-21 22:01:46 +02:00
Nedelosk c4ac0bc7a5 Fix #1685 1.11.2 crashing when rendering item 2017-06-21 21:53:11 +02:00
Nedelosk 5549cfaaa1 Fix #1674 Forestry logs do not triggers Getting Wood Achievement 2017-06-21 21:45:56 +02:00
Nedelosk ae4d246c59 Fix #1690 Backpack does not resupply the offhand 2017-06-21 21:45:22 +02:00
Nedelosk 2622557a00 Fix #1702 Slabs not blocking light 2017-06-21 20:58:42 +02:00
Nedelosk 339abedeee Fix 1.11 Bees do damage on peaceful mode 2017-06-21 20:47:03 +02:00
Nedelosk 149b35224a Fix #1714 Wax cast negative durability 2017-06-21 20:34:38 +02:00
Nedelosk d148279224 Fix Bottler JEI integration 2017-06-18 01:45:53 +02:00
Nedelosk 554fe8bad1 Add tintindex to the door models 2017-06-17 13:59:00 +02:00
Nedelosk 27e8259ff6 Move the bee allele register event to the preInit 2017-06-15 19:50:48 +02:00
mezz 3a51df154a Update JEI integration 2017-06-06 23:50:11 -07:00
mezz a3c79c0427 Fix leaves spawning near 0,0,0 2017-06-04 13:34:59 -07:00
mezz f569a04797 Fix backpack pickup handler 2017-05-10 15:27:01 -07:00
mezz 610ddfed12 Update dependencies 2017-05-10 15:18:53 -07:00
mezz 438883bb8e Change IAllele.getName to IAllele.getAlleleName to fix obfuscation bugs 2017-05-10 00:06:30 -07:00
mezz 828dd63acd Fix #1681 Worldgen leaves are not decaying 2017-05-07 17:40:31 -07:00
mezz f7cc35d949 Add new default leaf block without tile entity for worldgen trees #1661 2017-05-03 17:15:58 -07:00
AlexIIL ec9004b50b Fix names in BC|Transport compat
As with the update to 1.11 BC|Transport now has a modid of "buildcrafttransport", and the pipeWaterproof has been renamed to "waterproof".

You *might* want to rename this plugin from "BuildCraft 6 Transport" to "BuildCraft 8 Transport" - but that's minor.

The api for getting BC items is [here](https://github.com/BuildCraft/BuildCraftAPI/blob/8.0.x/api/buildcraft/api/BCItems.java#L123), so thet's where the registry names came from (and they won't be changed in 8.0.x or 7.99.x) in case I've made a mistake.
2017-04-29 13:19:25 -07:00
Nedelosk 8b4c1a5dab Fix #1667 Unable to open Electrical Engine GUI 2017-04-22 00:18:02 +02:00
Nedelosk 853355062e Fix #1666 Crash 1.11.2 2017-04-21 22:34:00 +02:00
Nedelosk 834e3ed55a Readd Ic2 Integration 2017-04-21 22:30:37 +02:00
Nedelosk 5b2b0bfc95 Fix #1657 Charcoal Pit - Silk Touch 2017-04-11 21:35:02 +02:00
Nedelosk 4fae8c26d9 Allow other mods to register fruit blocks 2017-04-10 01:19:49 +02:00
Nedelosk 0aa4a0f794 Add AlleleRegisterEvent 2017-04-10 00:23:39 +02:00
Nedelosk ac0864303c Clean Up Climate Region 2017-04-08 20:46:57 +02:00
Nedelosk 8811b24811 Merge branch 'mc-1.11' of https://github.com/ForestryMC/ForestryMC into mc-1.11 2017-04-08 19:37:15 +02:00
Nedelosk 904293f407 Move go home to get getBlockPathWeight 2017-04-08 19:37:07 +02:00
mezz 3e175aa8e6 Use improved Forge LootTableLoadEvent, remove hacky LootTableLoader 2017-04-07 22:09:44 -07:00
Nedelosk c4ecdde110 Fix #1426 A way to change how much sand an tree multifarm gives when a tree grows 2017-04-07 21:44:20 +02:00
Nedelosk 4aa978023d Fix #1539 Immersive engineering Ethanol doesn’t work with Bio Generator 2017-04-07 19:46:46 +02:00
Nedelosk 50009786d8 Fix #1546 Electric Engine via MFSU 2017-04-07 19:10:19 +02:00
Nedelosk 032d706fc4 Fix #1594 EnderLillySeeds not accept for farm 2017-04-07 18:37:52 +02:00
Nedelosk dcd9e90898 Fix butterfly pollen 2017-04-07 18:29:03 +02:00
Nedelosk bab3479cde Add Cache to greenhouse nursery and clean up 2017-04-07 17:45:45 +02:00
Nedelosk a5b79c97d2 Improve greenhouse recipes 2017-04-07 14:12:42 +02:00
Nedelosk 05d6dc3d4a Fix greenhouse door model 2017-04-07 13:29:25 +02:00
Nedelosk 6e2ed37e80 Fix #1652 A way to make Cobwebs out of Silk Wisps and fix greenhouse item models 2017-04-07 13:21:39 +02:00
Nedelosk c840945706 Add missing changes 2017-04-07 13:10:28 +02:00
Nedelosk ca7d6dbc66 Add honey comb blocks and improve greenhouse nursery 2017-04-07 12:55:34 +02:00
Nedelosk 81ef5d536f Add missing changes 2017-04-06 01:11:27 +02:00
Nedelosk f911100c3d Clean Up and update version 2017-04-06 00:17:41 +02:00
Nedelosk 386f0645a5 Fix #627 Make a simpler API interface for IFarmLogic and improve the farm api 2017-04-06 00:13:15 +02:00
Nedelosk 91d46d1331 Fix #1440 Chisel Blocks do not render when used as Camo for Forestry Greenhouse blocks 2017-04-05 20:57:19 +02:00
Nedelosk e1eb4d25fb Fix Biogas Engine not noticing its generated power is being used 2017-04-05 15:54:57 +02:00
Nedelosk 72234d9b5d Fix #1537 Peat Engine not noticing its generated power is being used 2017-04-05 15:52:39 +02:00
Nedelosk 97f21bfda8 Fix #1643 gave wrong comb and now world wont load 2017-04-05 13:58:41 +02:00
Nedelosk c8c30073a2 Fix #1647 Method canDrain always returns true 2017-04-05 13:48:49 +02:00
mezz dc27154c1f Update JEI integration 2017-04-03 17:20:38 -07:00
SirSengir 5b15e6f405 Allow short mead cans/capsules to be drunk. 2017-03-26 20:51:20 +02:00
SirSengir 2530a7fb15 Remove mead as well. 2017-03-26 16:18:48 +02:00
SirSengir 4ec1381fbe Merge branch 'mc-1.11' of https://github.com/ForestryMC/ForestryMC into mc-1.11 2017-03-26 16:10:26 +02:00
SirSengir d97f6f69b0 Remove the infuser and associated gui. Port recipes to potions. 2017-03-26 16:10:12 +02:00
mezz c8fcb292d4 Fix sided config options 2017-03-26 06:20:21 -07:00
Nedelosk e075fe8fbf Fix #1640 Clientside crash when trying to access Statistics "Items" screen 2017-03-26 14:26:23 +02:00
Nedelosk 5ce9b9f65b Fix #1639 Thermionic Fabricator & Glass Pane 2017-03-26 14:22:54 +02:00
Nedelosk 2c9a30db73 Fix #1639 Thermionic Fabricator & Glass Pane 2017-03-26 14:21:31 +02:00
Nedelosk 4a31215ce1 Fix #1624 Crashing 2017-03-17 21:15:52 +01:00
Nedelosk 4da5e86813 Remove butterfly hatch and add butterfly nursery 2017-03-17 20:26:43 +01:00
Nedelosk 66bdedd65b Fix #1621 Some Butterflies have missing textures 2017-03-10 23:37:08 +01:00
mezz 0149013579 Use TileUtil for getting tiles from the world 2017-03-10 00:16:44 -08:00
mezz bebf5b3aec Fix canNurse because butterflies cannot convert vanilla leaves 2017-03-09 23:26:37 -08:00
mezz 0356a3f479 Prevent butterflies from converting vanilla leaves to Forestry leaves 2017-03-09 22:32:43 -08:00
Nedelosk d29aa13377 Fix #1616 Smarter tree generation 2017-03-07 22:25:18 +01:00
Nedelosk c2313c7569 Fix cocoon 2017-03-07 21:19:37 +01:00
Nedelosk bb28a6db48 Fix #1592 Carpenter recipe for Portable Analyzer asks for Magenta Stained Glass Pane 2017-03-06 19:55:12 +01:00
Nedelosk f61f7a0aff Remove walnut and chestnut from the tree generation list 2017-03-06 17:53:36 +01:00
Nedelosk 84f01de7f9 Improve cocoon positions 2017-03-06 16:45:08 +01:00
Nedelosk ced6f3cbf2 Fix #872 Clean Up and add tree generaton 2017-03-06 15:49:12 +01:00
Nedelosk bbec31fc6e Fix #1573 Butterfly shift stats don't match analyzer stats 2017-03-05 16:37:11 +01:00
Nedelosk 67024ffb2b Fix #1394 Add podzol as an alternative to mycelium 2017-03-05 16:27:28 +01:00
Nedelosk 1945c4ff70 Fix #1484 Add podzol recipe to the moistener 2017-03-05 15:57:15 +01:00
Nedelosk 7a1e35e05f Fix #1569 Can't See Capsule/Can Recipes 2017-03-05 14:55:35 +01:00
Nedelosk 06adb53944 Fix #1610 1.11.2 - Multiblocks not assembling? 2017-03-03 22:14:43 +01:00
Nedelosk 919ce8238b Fix #1590 [1.11.2] Tin tubes creating in the carpenter without tin. 2017-02-26 20:54:48 +01:00
Nedelosk 6f285d1c88 Fix #1608 Thermionic Fabricator crash 2017-02-26 20:26:51 +01:00
Nedelosk af9ddb4928 Fix server packets on singeplayer 2017-02-26 20:17:52 +01:00
Nedelosk 1d2f3f16ab Fix #1582 Error in log related to forestry 2017-02-25 20:53:31 +01:00
Nedelosk 7f63ae8450 Fix #1600 backpackt2.png not found 2017-02-25 20:33:01 +01:00
Nedelosk 77ecd03416 Fix #1607 Wrong calculation for stamps in letters 2017-02-25 19:48:37 +01:00
Nedelosk 56a907dbec Fix Cocoon 2017-02-19 21:59:28 +01:00
mezz e93633d999 Add proper @SideOnly(Side.CLIENT) annotations
with help from Minecraft Dev Plugin
https://plugins.jetbrains.com/idea/plugin/8327-minecraft-development
2017-02-14 21:12:09 -08:00
mezz fc0d144508 Fix #1595 DataParameter ID issue caused by Forestry carts 2017-02-12 17:05:22 -08:00
mezz 252dd8ab22 Add IAlleleRegistry#addValidAlleleTypes 2017-02-08 22:51:46 -08:00
mezz 6ef41d4cd8 Allow IWoodTypes besides EnumForestryWoodType to use Forestry models 2017-02-08 22:31:40 -08:00
mezz 0b08780964 Fix pipetting small amounts of liquid 2017-02-08 22:31:40 -08:00
Nedelosk 1cf24982fd Merge pull request #1588 from Ellpeck/mc-1.11
fix Actually Additions integration
2017-02-04 17:03:17 +01:00
Ellpeck 9555005ac0 fix actually additions integration 2017-02-04 16:59:56 +01:00
Nedelosk 00b4b6552c Fix #1568 Oredict carpenter problem 2017-01-31 14:23:22 +01:00
Nedelosk 23a9af3020 Fix TreeFactory 2017-01-24 11:13:34 +01:00
Nedelosk 84a14811d8 Merge branch 'mc-1.11' of https://github.com/ForestryMC/ForestryMC into mc-1.11 2017-01-24 11:11:32 +01:00
Nedelosk 7b340fdb49 Add ILeafProvider 2017-01-24 11:11:24 +01:00
mezz 9044a72aee Fix #1572 All trees have apple oak leaves 2017-01-21 19:35:17 -08:00
mezz cc40bd1cc3 Expose WoodAccess registration to the API 2017-01-20 23:00:33 -08:00
mezz a13e63cb2d Fix #1566 Incompatibility with Schematica 2017-01-14 11:08:47 -08:00
Nedelosk 6cb3b73200 Add minecraft curseforge link 2017-01-12 16:34:25 +01:00
Nedelosk 7c8d81470d Add issue template and clean up .gitignore 2017-01-12 16:01:26 +01:00
Nedelosk ef3f64fdd9 Upadate README.md to 1.11 2017-01-12 15:51:07 +01:00
Nedelosk fdd6d75d0e Improve cocoons 2017-01-12 15:44:30 +01:00
Nedelosk 46bb2cdccd Add missing code 2017-01-12 15:37:41 +01:00
Nedelosk aa21b31392 Clean Up Wood Textures 2017-01-12 15:19:21 +01:00
Nedelosk 6a12e19798 Clean Up Wood Model Loader 2017-01-12 13:29:31 +01:00
mezz 81dd20b41c Prevent exception from accessing tile entities from ChunkCache 2017-01-09 12:25:33 -08:00
mezz 0b491f26fc Fix #1561 Crash when using the carpenter 2017-01-08 03:36:43 -08:00
mezz bb0a0343c1 Fix #1563 Crash when viewing bee trades with a villager 2017-01-08 03:20:40 -08:00
mezz 17e38e7c5e Fix #1565 Farm crash when farmland on at least one side is missing 2017-01-08 03:01:06 -08:00
Nedelosk 0ad3baecda Fix #1564 Gamecrash while trying to craft golden electron tube 2017-01-08 01:06:26 +01:00
mezz a72971e042 Fix #1562 Carpenter recipes not showing properly in JEI 2017-01-07 01:10:16 -08:00
mezz b5e24e84cb Fix #1560 network sync issue for genome tracker when player logs in 2017-01-06 23:53:24 -08:00
Nedelosk c210886400 Fix #1559 2017-01-05 16:16:10 +01:00
Nedelosk 1bdbb7e9f8 Clean Up Models, Jei and IInduvidual translators 2017-01-04 23:26:47 +01:00
Nedelosk f91c0574ad Clean Up 2017-01-03 17:01:30 +01:00
Nedelosk 50f0efb7a0 Update Module 2017-01-03 02:35:57 +01:00
Nedelosk 3d932700cd Fix carpenter and thermionic fabricator recipes 2017-01-03 02:32:45 +01:00
Nedelosk 6a00a65aac Update lang Module 2017-01-02 23:22:06 +01:00
Nedelosk 1b781684a0 Improve charcoal pile 2017-01-02 23:21:48 +01:00
mezz f2d280a861 Clean up backpack resupply handler 2017-01-02 12:08:11 -08:00
Nedelosk 87ce642235 Make that the multiblocks error renderers are only work with naturalist eyes 2017-01-01 20:19:15 +01:00
Nedelosk b297bbb2c4 Fix #1556 Log Piles Missing Models 2017-01-01 20:15:13 +01:00
Nedelosk 931e518ca2 Add multiblock tooltips and error game overlay renderer 2017-01-01 04:09:29 +01:00
Nedelosk 7ff4944281 Clean Up greenhouse 2017-01-01 03:06:36 +01:00
mezz 9d8c616b67 Add block and item migration from 1.10 to 1.11 names 2016-12-31 01:14:13 -08:00
mezz 17afceab6a Fix fruit allele registration 2016-12-31 00:51:16 -08:00
mezz 306bae490c Move away from deprecated methods 2016-12-31 00:08:02 -08:00
mezz d8e735ef3b API javadoc cleanup, use NonNullList for ItemStack lists 2016-12-30 23:39:42 -08:00
Nedelosk 55919a135e Add GreenhouseLogicTerrain and adding multiblock error renderer 2016-12-30 03:44:41 +01:00
Nedelosk 02f5c7121d Merge branch 'mc-1.11' of https://github.com/ForestryMC/ForestryMC into mc-1.11 2016-12-30 00:21:18 +01:00
mezz ed1907ddea Update to 1.11.2 2016-12-29 10:44:26 -08:00
mezz 0a0bdfa978 Fix networking for worktable and escritoire 2016-12-29 00:15:25 -08:00
mezz 4abbc92472 Clean up more null issues 2016-12-28 23:55:10 -08:00
Nedelosk 1fa461430e Fix #1554 1.10.2 Game Crash and Ticking Block Exception when using Reanimation effect on Skeleton and Zombie Drops 2016-12-28 18:35:40 -08:00
Nedelosk d60bdd5f93 Merge branch 'mc-1.11' of https://github.com/ForestryMC/ForestryMC into mc-1.11 2016-12-29 00:01:04 +01:00
Nedelosk f39ff51ca8 Fix #1554 1.10.2 Game Crash and Ticking Block Exception when using Reanimation effect on Skeleton and Zombie Drops 2016-12-28 23:57:57 +01:00
mezz 35f9b95f37 Clean up more null/nonnull, refactor gui ledgers 2016-12-26 08:08:08 -08:00
Nedelosk b2d4e6eaba Fix greenhouse lang 2016-12-26 04:10:29 +01:00
Nedelosk 5bd4ba3cd5 Add an climate pillar on the left side of the greenhouse gui 2016-12-25 15:54:41 +01:00
Nedelosk d4f9c69538 Improve greenhouse and add new greenhouse gui texture 2016-12-25 02:20:44 +01:00
Nedelosk ea976ebb2f Remove unloaded climate regions 2016-12-24 03:14:14 +01:00
Nedelosk c5798af241 Clean Up 2016-12-24 02:57:15 +01:00
Nedelosk e0bff8ec64 Clean Up and improve greenhouse climate system 2016-12-24 02:54:12 +01:00
mezz 8bf6b19a63 Remove redundant Nonnull annotations (everything is Nonnull by default) 2016-12-22 19:45:08 -08:00
mezz abf6ccb3ed Fix slot backgrounds 2016-12-22 19:26:19 -08:00
mezz d55b91df48 Fix error Ledger texture 2016-12-22 19:26:09 -08:00
mezz 1b865a0589 Update lang keys 2016-12-22 19:25:57 -08:00
mezz a2c12f3841 Fix missing resources 2016-12-22 19:18:00 -08:00
Nedelosk 08c99cb0ca Clean Up ModelBaker and start to clean up greenhouse 2016-12-23 03:44:30 +01:00
mezz 8cfafec6f9 Automatic code reformatting 2016-12-22 16:53:55 -08:00
mezz 9611ae08ae Update for 1.11. Missing assets, unstable. 2016-12-22 16:47:56 -08:00
Nedelosk 30d7365518 Fix #1508 Bee buildup during pause 2016-12-22 13:24:12 +01:00
Nedelosk 56800af94d Fix #1477 Electrical Engine places backwards 2016-12-22 03:17:35 +01:00
Nedelosk 043571b659 Improve farm control 2016-12-22 02:56:55 +01:00
Nedelosk 7fd2776147 Fix gamemode commit 2016-12-22 02:50:44 +01:00
Nedelosk d4c2d7220d Fix #580, Fix #1479 Add a way to register items to work as fertilizer in farms in a config 2016-12-22 02:47:00 +01:00
Nedelosk d392666dc4 Add missing methods 2016-12-20 06:48:35 +01:00
mezz 07b88d36fc Check that fluids are not null when auto-dumping from bottler 2016-12-19 16:33:33 -08:00
Nedelosk 408d1dc7c3 Fix #1521 IC2 + Foresty crash 2016-12-19 19:20:47 +01:00
Nedelosk 7b1aead339 Fix #1509 Alveary ignores rain 2016-12-19 19:15:28 +01:00
Nedelosk 21969649a2 Fix #1542 SidedInvWrapper used when facing is null 2016-12-19 17:12:06 +01:00
Nedelosk f9b8b89340 Adding a debug message 2016-12-12 14:21:12 +01:00
Nedelosk 65712adcb3 Delete 9864a84a13 2016-12-10 10:26:42 +01:00
Nedelosk 9864a84a13 Make that the climate event handler only work on the server thread 2016-12-10 10:24:46 +01:00
Nedelosk 8f9ae45147 Fix greenhouse climate info 2016-12-10 10:20:45 +01:00
mezz 2965f28403 Fix #1522 log spam with Reliquary void tear 2016-12-01 21:28:37 -08:00
Nirek-K cb93c217e0 Fix #1520 Add Chorus flower/plant to End flower. 2016-11-30 11:53:04 -06:00
mezz 219e9bf355 Fix EntityItemPickupEvent when there are multiple modded handlers 2016-11-29 12:44:13 -08:00
mezz 43a2f0ae76 Fix farm picking up items off Immersive Engineering conveyors 2016-11-25 12:24:15 -08:00
mezz 098b739dca Fix crash with TOP looking at new papaya fruit pods 2016-11-16 21:57:17 -08:00
mezz 4dfa29b1ad Add more null annotations 2016-11-16 21:56:31 -08:00
mezz 60d2820ed6 Update Forge and MCP 2016-11-12 19:12:57 -08:00
Nedelosk 91ec6cff9b Fix #1504 [1.10.2] [5.2.15.296] Butterflies gravitating towards 0,0 where huge swarms are found 2016-11-13 00:30:11 +01:00
mezz 1775e59880 Fix #1507 Crash with Energy Transfer to Mekanism 2016-11-11 20:38:59 -08:00
mezz f62745b233 Clean up bottler updateServerSide 2016-11-11 20:38:59 -08:00
mezz 1d6293c788 Clean up bottler canDump 2016-11-11 20:38:58 -08:00
mezz 3fd07f2a7a Clean up bottler JEI recipes 2016-11-11 20:38:58 -08:00
marcin212 856e800e0e Add Immersive Engineering compat (#1506) 2016-11-11 13:11:58 -08:00
Nirek-K d9561fd7af Re-Add Harvestcraft plugin, covers everything it did in 1.7 (new things will have to be suggested/added later) 2016-11-11 03:07:27 -06:00
Nirek-K e0623f7d57 Minor logic fixes for orchard, to get it to see crops again. 2016-11-07 18:31:12 -06:00
Nirek-K d48b979ac3 Add Actuallly Additions crops also to orchard.
Add Actuallly Additions crops also to orchard.
2016-11-07 10:25:27 -06:00
mezz 63494c40a7 Fix #1497 Chisel integration with digging backpack 2016-11-06 17:15:18 -08:00
mezz 2c57aef3b3 Fix backpack IMC handling 2016-11-06 17:14:06 -08:00
mezz 1392823fae Fix #1498 Crash when Arboriculture plugin is disabled 2016-11-06 16:55:12 -08:00
mezz 67693961ac Change address texture back to 32x32 to avoid breaking texture packs 2016-11-06 16:42:25 -08:00
mezz 8ad8597ff0 Fix #1499 Server Error when trying to access a GUI 2016-11-06 13:59:42 -08:00
mezz 4c8d5e2f43 Move Forestry GUI icons to a new TextureMap 2016-11-06 01:51:43 -08:00
mezz d04713339c Fix the build 2016-11-04 18:40:58 -07:00
Nedelosk 844aea7431 Improve butterfly item texture atlas and model, Fix #1312 2016-11-05 02:26:59 +01:00
mezz 53a9bf458e Update JEI version 2016-11-03 22:44:45 -07:00
mezz 2ae52451b2 Implement JEI lookups on fluid tanks 2016-11-03 21:24:42 -07:00
Speiger d3054c33e7 Improve Crate Renderer (#1493) 2016-11-01 15:43:03 -07:00
mezz bf61462a2a Rename centrifuge gui texture for compat with older texture packs 2016-10-31 20:59:42 -07:00
marcin212 41f3ae4b1f Allow multipass rendering for sapling 2016-10-30 17:21:13 -07:00
mezz b1d7c1721d Add strict null checking for ActuallyAdditions plugin 2016-10-30 15:01:33 -07:00
Ellpeck 2944165741 Added Actually Additions compatibility 2016-10-30 15:01:33 -07:00
Nedelosk e316526675 Fix Charcoal Pile 2016-10-30 13:35:09 +01:00
Nedelosk 411cbd913c Fix #1473 New Bottler issues 2016-10-30 13:32:55 +01:00
Nedelosk 2191d00f3d Fix #1487 Random crash in WeightedRandomModel 2016-10-30 12:54:25 +01:00
Nedelosk a02af0ddf2 Fix #1490 Crash in 1.10.2 when trying to render a Hill Cherry sapling 2016-10-30 12:51:58 +01:00
Nedelosk a8e4f5dde7 Fix #1476 Wood Pile processes instantly 2016-10-30 12:40:22 +01:00
mezz 85718b1df8 Fix and improve Bottler JEI integration 2016-10-29 18:22:40 -07:00
mezz 781b4d883b Fix #1486 Crash from candle block 2016-10-26 13:55:55 -07:00
Nedelosk c5c056750a Fix butterfly 2016-10-25 00:50:58 +02:00
Nedelosk 3b8af4e4c9 Fix IPollinatable and New Version 2016-10-25 00:47:49 +02:00
Nedelosk f58938ff32 Improve IPollinatable 2016-10-25 00:27:26 +02:00
Nedelosk a05bc13852 Fix Climate Handler and add climate test mod for devs 2016-10-22 17:37:49 +02:00
Nedelosk 1cd3e15ef9 Make climate update to a Runnable 2016-10-20 02:44:57 +02:00
Nedelosk 1ac7a7de42 Add Fluid Container Output and processing Slots to the Bottler 2016-10-19 18:58:55 +02:00
Nedelosk 90ed57c742 Merge branch 'mc-1.10' of https://github.com/ForestryMC/ForestryMC into mc-1.10 2016-10-19 13:01:26 +02:00
Nedelosk 94b0b44f51 Fix inverted climate infos 2016-10-19 13:00:56 +02:00
mezz c0fafc20da Improve bee hive performance (#1470) 2016-10-18 17:35:03 -07:00
mezz 4f85236475 Fix #1470 Prevent bees from loading new chunks 2016-10-18 16:15:44 -07:00
Nedelosk 41ab1ea374 Update Version 2016-10-19 00:34:11 +02:00
Nedelosk 52b8d56ff0 Make that the ash drop of the kiln is never 0 2016-10-19 00:04:17 +02:00
Nedelosk a61879daff Fix Alveary 2016-10-18 23:25:20 +02:00
Nedelosk e71edd5855 Fix #1469 Wrong climate info when apiary is placed in greenhouse. 2016-10-18 23:18:15 +02:00
Nedelosk 321e316665 Fix #1456 Breaking a Swarm Hive with Botania's Bore Lens crashes the game 2016-10-18 22:05:44 +02:00
Nedelosk aca6ed1fd8 Add CircuitBoard to colour.properties and Fix #1468 [1.10.2-5.2.14.283] Server side crash 2016-10-18 21:00:16 +02:00
Nedelosk b135593733 Fix #1466 Add Malisis Doors to camouflage Blacklist 2016-10-18 20:31:14 +02:00
Nedelosk ac7fe4b2d2 Fix #1467 Green House Camouflage Glitch 2016-10-18 19:58:01 +02:00
Nedelosk 5e0e045053 Fix #1465 1.10.2-5.2.14.276 - Electrical Engines no longer allow levers to attach to the back 2016-10-18 17:53:23 +02:00
Nedelosk f01dab6f58 Fix #1420 Tweak the effects of three placed fluids 2016-10-18 17:47:07 +02:00
Nedelosk 9385a4caca Fix and Add model caches and Fix #1102Invisible butterflies in itemframes 2016-10-18 17:27:24 +02:00
Nedelosk 582c8d64df Fix greenhouse tiles 2016-10-18 16:20:30 +02:00
Nedelosk 26c40b2006 Fix #1447 Flickering Greenhouse 2016-10-18 16:15:49 +02:00
Nedelosk b7eaaf6804 Fix #1460 Empty bucket can't be pulled out of (i.e.) Biogas engine 2016-10-18 15:56:09 +02:00
Nedelosk 3f07e68952 Fix #1071 Butterflies spread out of control 2016-10-18 15:42:12 +02:00
Nedelosk 2b40762934 Fix #1459 Greenhouse Door Crash w/ Malisis' Doors Mod Doors 2016-10-18 15:28:36 +02:00
Nedelosk dcaf6e144f Fix #1294 JEI Integration for Thermionic Fab and Carpenter 2016-10-18 15:12:59 +02:00
Nedelosk 413e1b9a0d Fix #1439 Cocoons config bug in 1.10.2 2016-10-18 14:13:28 +02:00
Nedelosk 64f64f2b5c Fix #1441 Centrifuge preview slot should show item being centrifuged, not its result 2016-10-18 14:10:30 +02:00
Nedelosk 2d25754731 Fix 1444 Apiarist's Chest collision box is acting weird., Fix # 1422 Cacoons cause suffocation if you walk into them 2016-10-18 13:58:47 +02:00
Nedelosk 2df6cfb7f7 Fix #1455 Igniting a Wood Pile built by a fake player crashes the game 2016-10-18 13:40:11 +02:00
Nedelosk 2d0ca49359 Fix 1408 Floating desert acacia "trees" appear in the middle of nowere 2016-10-18 13:04:54 +02:00
Nedelosk d567138365 Fix #1463, Fix #1457 Make charcoal drop with % chance, remove custom charcoals. 2016-10-18 11:57:27 +02:00
Nedelosk 72380251f3 Fix #1432 multiblock.error.small.x when right-clicking Wood Piles 2016-10-10 10:17:55 +02:00
Nedelosk 05a263826e Fix #1438 Crash after Breaking Chest 2016-10-10 10:13:17 +02:00
Nedelosk 61aa8bdcf0 Fix #1437 Drone in the analyzer 2016-10-10 10:06:53 +02:00
Nedelosk e0694842b6 Improve Camouflage Packet 2016-10-10 10:00:58 +02:00
mezz ff9942d0bc Fix "upper half" wood slabs having the wrong wood type 2016-10-08 20:05:43 -07:00
mezz dcf7776cc1 Fix #1451 Crash when placing decorative leaf blocks 2016-10-08 19:55:20 -07:00
mezz a0d355d0aa Fix some nullable annotation errors 2016-10-07 21:49:54 -07:00
mezz 649a061b6e Fix ModelBlockCached not resetting after a texture remap 2016-10-07 21:28:57 -07:00
mezz 2ca743a931 Clean up ModelBlockCached slightly 2016-10-07 21:28:25 -07:00
mezz 76a34a603b Update ApicultureJeiPlugin to stop using deprecated methods 2016-10-07 17:22:19 -07:00
mezz 68651939e7 Fix crash when getting wood blocks with invalid variants 2016-10-07 15:42:20 -07:00
Adrian Siekierka 9dcc818a17 Add model caching (#1449) 2016-10-07 15:10:09 -07:00
mezz 5e3c23e4eb Bump version 2016-10-02 17:52:43 -07:00
mezz d8ffc5c4b8 Fix #1403 worktable bug with items it can't craft 2016-10-02 17:52:35 -07:00
mezz 737f64eeab Fix uppercase variable name 2016-10-02 15:18:11 -07:00
mezz 0db27d83b0 Add worktable to JEI's Crafting Table items 2016-10-02 15:17:59 -07:00
mezz f57de19b06 Fix #1442 Let BeeHousings detect biome changes 2016-10-02 15:17:32 -07:00
mezz 1fed58fae5 Bump version 2016-09-30 23:29:41 -07:00
mezz 1d8d61daf1 Fix missing Squeezer recipes in JEI 2016-09-30 23:29:15 -07:00
mezz 65bd93749c Fix missing itemHandler capability for Farm hatch 2016-09-28 21:49:58 -07:00
mezz ac48b4b5c6 Update JEI integration 2016-09-27 02:53:06 -07:00
Nedelosk 3be3ecfc8a Fix #1436 Placing lit candles does not cause a lighting update, Fix #1435 Freshly crafted candle items are not the same as just-broken candle items. 2016-09-24 15:48:56 +02:00
mezz 10aae6b6bc Clean up IBeeHousing slightly 2016-09-19 21:12:58 -07:00
mezz d84560926c Make IArmorNaturalist into a capability 2016-09-19 21:12:58 -07:00
mezz ab3de49198 Make IArmorApiarist into a capability 2016-09-19 21:12:57 -07:00
Nedelosk b2b743398c Adding a preview slot to the centrifuge 2016-09-19 20:28:52 +02:00
Nedelosk 52f233e84a Fix the clockwork engine 2016-09-18 01:30:58 +02:00
Nedelosk 2f2ec91670 Fix #1253 2016-09-18 00:20:11 +02:00
Nedelosk 2e2fa8e6df Removed a comment because it is not true anymore 2016-09-17 23:41:02 +02:00
Nedelosk 3de6e0c5b7 Bump version 2016-09-17 23:27:51 +02:00
Nedelosk 0f4ba8d8fa Clean Up 2016-09-17 23:26:58 +02:00
Nedelosk 9570d26c83 Fix #1429 [API-TreeManager] TreeManager doesn't work properly 2016-09-17 23:19:39 +02:00
Nedelosk 01dc4f2bfe Fix the alyzer plugin api 2016-09-17 23:18:53 +02:00
Nedelosk 80de4d6490 Fix #1427 Engines do not show RF/t output properly 2016-09-17 22:50:46 +02:00
Nedelosk 253e9f18ed Fix #1078 Adding a work Cycle for every pending product 2016-09-17 22:23:11 +02:00
Nedelosk bbda5c8ba9 Fix #1419 Disabled greenhouse in plugins (as they're buggy) and having crash with 'cocoon's 2016-09-17 22:00:53 +02:00
mezz c289590740 Bump version 2016-09-15 14:53:26 -07:00
mezz 714858be99 Fix cable connections with Engines 2016-09-15 14:53:19 -07:00
mezz 5bb60cad8a Bump version 2016-09-14 14:24:24 -07:00
mezz b8cf4ef1cf Update zh_CN.lang 2016-09-14 14:24:23 -07:00
mezz d35075d681 Prevent farms on a chunk edge from loading unloaded chunks 2016-09-14 14:23:06 -07:00
mezz 79c56311c2 Refactor Energy systems and make RF optional 2016-09-13 00:37:39 -07:00
mezz 77cea8a645 Add support for new Forge energy capability 2016-09-12 16:07:47 -07:00
Nedelosk ed00ca3158 Merge pull request #1407 from ForestryMC/Greenhouse
Adding Greenhouse Window, Climate Control,  Camouflage Spray Can and Improve Recipes
2016-09-12 18:00:45 +02:00
Nedelosk 418f00abf2 Merge branch 'mc-1.10' of https://github.com/ForestryMC/ForestryMC into mc-1.10 2016-09-12 14:47:01 +02:00
mezz 0fa8fdad39 Remove access-related hints and the power-required hint 2016-09-11 22:23:38 -07:00
Aroma1997 0a110eb761 Fix #1414 greenhouse climate blocks crash (#1418) 2016-09-11 13:27:27 -07:00
Nedelosk 9feb5cb114 Merge branch 'mc-1.10' of https://github.com/ForestryMC/ForestryMC into mc-1.10 2016-09-11 10:51:16 +02:00
Nirek-K 7aa44fb1fa Fix #1413 phospor should give lava 2016-09-03 22:36:33 -05:00
Nedelosk 84fa956ce4 Improve greenhouse glass 2016-08-24 14:38:54 +02:00
Nedelosk 0c14a85c31 Adding new recipes and improve other recipes 2016-08-24 14:03:09 +02:00
Nedelosk a20fbbe60f Adding Greenhouse windows and climate control and improve recipes 2016-08-24 00:33:53 +02:00
mezz 27d932ee34 Do not allow rain tanks to be filled from the bottom 2016-08-18 18:47:32 -07:00
mezz 52b1784f25 Close #1400 Reduce frequency of End Hives 2016-08-17 21:11:24 -07:00
mezz 154f4f2712 Close #1398 Make wild bees friendlier to endermen 2016-08-17 21:03:35 -07:00
mezz 806ca2cf7b Bump version 2016-08-16 16:50:19 -07:00
mezz 9f171977bb Add some more tooltips and JEI description pages 2016-08-16 16:50:00 -07:00
mezz 2031f7fe02 Unify the way item and itemBlock tooltips are added 2016-08-16 16:49:28 -07:00
mezz 4259a55e7a Close #955 Automatically output water from the bottom of the Rain Tank 2016-08-15 00:12:47 -07:00
mezz 065344ba5e Clean up Rain Tank implementation 2016-08-14 22:52:53 -07:00
mezz d0c9a77528 Update dependencies 2016-08-14 21:40:39 -07:00
Nedelosk 604429f267 Fix #1388 Rendering Crash in Inventory and a climate crash 2016-08-14 13:27:12 +02:00
Nedelosk f5a9dcccb8 Fix #1387 Crash when creating a new world 2016-08-14 00:42:20 +02:00
Nedelosk b056cce707 Fix the woodTextures 2016-08-13 17:47:23 +02:00
Nedelosk 1497aada57 Improve the woodtextures class. 2016-08-13 17:24:26 +02:00
Nedelosk fb8ddf54b7 Adding a way to add costum wood models 2016-08-13 17:16:38 +02:00
Nedelosk 9a05322d45 Fix a mistake 2016-08-12 21:57:47 +02:00
Nedelosk 8c2008b06c Bump version 2016-08-12 21:54:08 +02:00
Nedelosk e3cc08a624 Fix #1382 Crash on load wood models and clean up 2016-08-12 21:46:41 +02:00
Nedelosk 36cd4663d9 Fix a cocoon bug and add a default cocoon loot 2016-08-12 13:59:05 +02:00
Nedelosk a014ef6d14 Fix #1381 Greenhouse climate switches between normal and very high levels and fix a cocoon bug 2016-08-12 13:48:19 +02:00
Nedelosk 34fa218c38 Try to fix the greengouse climate ledget and fix the greenhouse sprinklers 2016-08-12 13:18:08 +02:00
Nedelosk f422b577fe Fix model baker models 2016-08-12 12:42:52 +02:00
Nedelosk e379465227 Fix #1380 Forestry camoflaged blocks do not render the same as regular blocks 2016-08-12 12:36:10 +02:00
Nedelosk eb63e75200 Add new Wood Model Loader (#1367) 2016-08-11 21:22:02 -07:00
Nedelosk b5faab51c3 Update greenhouse climate system and improve camouflage system (#1334) 2016-08-11 20:53:04 -07:00
mezz ddffe5d4ce Bump version 2016-08-11 02:45:57 -07:00
mezz f59e57aa6a Fix loot table for storage plugin 2016-08-11 02:44:47 -07:00
mezz ae8cbf2ff2 Update Forge 2016-08-11 02:44:34 -07:00
mezz 305f3f78ec Update JEI 2016-08-11 02:44:25 -07:00
mezz 98e506cc4a Close #1269 Buff Peat balance vs Charcoal 2016-08-03 03:15:48 -07:00
mezz ecfb11c096 Encapsulate fields of fuels in the API 2016-08-03 02:52:18 -07:00
mezz 6b59736ffe Fix #1369 Add button click noise to various buttons 2016-08-03 02:36:28 -07:00
mezz a3a1f7720e Fix #1371 IC2 Rubber farm does not harvest rubber properly 2016-08-03 02:21:27 -07:00
bdew 89cfbfca9c Allow overriding climate when checking for mutations (#1373)
* Allow overriding climate when checking for mutations
2016-08-02 14:22:05 -07:00
mezz e0676030d6 Update Forge 2016-08-01 18:17:28 -07:00
mezz 0c76e22b8a Fix #1368 Update Tesla API 2016-08-01 18:16:51 -07:00
mezz 1a8f1751d9 Fix #1366 Alveary in the Nether does not have Hellish temperature 2016-07-31 17:24:18 -07:00
Nedelosk b95bb8315f Fix #1363 [MC 1.10.2] Crash on camouflaging greenhouse bricks 2016-07-24 12:49:17 +02:00
mezz 2cc2540bdc Fix #1362 Crash on Startup when disabling Lepidopterology module 2016-07-23 03:43:42 -07:00
Nedelosk 84af238d82 Fix #1298 Bio Generator has incorrect hitbox 2016-07-23 01:50:11 +02:00
Nedelosk 89960db2bd Fix #1251 Sprinkler's and cocoons's bounding box is not visable 2016-07-23 01:32:16 +02:00
Nedelosk c5f53bda3e Fix #1288 Broken Cocoon texture when colliding with player 2016-07-23 01:08:42 +02:00
Nedelosk 2e1b62e58d Fix #1223 Suvirvalist's Pickaxe 2016-07-23 00:50:49 +02:00
Nedelosk 982aefa165 Add a way to add custom crate content models 2016-07-22 23:14:14 +02:00
Nedelosk 2cccf95775 Fix #1360 1.10 Some items crash rendering when NBT data is missing 2016-07-22 22:34:09 +02:00
mezz 1969ed8b09 Close #1358 Change "Portable Alyzer" to "Portable Analyzer" 2016-07-21 23:44:03 -07:00
mezz c3fc490fac Fix #1355 Crash from Boggy bees 2016-07-21 22:53:58 -07:00
mezz 59687329fb Replace IBackpackFilter with Predicate<ItemStack> 2016-07-20 15:24:05 -07:00
mezz 94f751d78a Improve backpack API and add backpack config blacklists 2016-07-20 02:25:32 -07:00
mezz f6feca096f Remove unused icons from TextureManager 2016-07-19 17:41:50 -07:00
mezz 649f38efb8 Fix Escritoire renderer leaking the world object by keeping a reference 2016-07-19 16:03:30 -07:00
mezz e4e221b9fd Fix butterfly items rendering too low 2016-07-19 16:03:08 -07:00
Nedelosk d7f063eec8 Update EntityButterfly.java 2016-07-17 12:40:47 +02:00
mezz aa988a3be7 Make honeyed slice more appetizing looking 2016-07-15 17:10:40 -07:00
mezz 18f2a027bc Remove unused bucket icons 2016-07-13 22:24:33 -07:00
mezz 7ca34e52d6 Update icons that use cans or capsules 2016-07-13 22:23:26 -07:00
mezz 7f83b5b909 Change portable alyzer icon to 16x 2016-07-13 22:09:44 -07:00
mezz 641f763d05 Add tooltips and JEI descriptions for CircuitBoard, SolderingIron, Tubes 2016-07-13 21:35:27 -07:00
mezz 0df85063a1 Remove "requires discovery" and limits from electron tubes 2016-07-13 21:34:37 -07:00
mezz 550b0dc3f5 Add zombie villager textures 2016-07-13 21:34:37 -07:00
Nedelosk 96a7b688c0 Fix the jar 2016-07-13 19:34:56 +02:00
Nedelosk 8f6c2baba6 Update README.md 2016-07-13 19:20:30 +02:00
mezz 523a8da908 Fix #1348 support for IC2 in 1.10.2 2016-07-10 18:43:58 -07:00
mezz cd10500a17 Fix crash when there is snow in the way of the farm 2016-07-10 18:34:31 -07:00
mezz 6d9211ada1 Remove block access restrictions 2016-07-06 02:00:02 -07:00
mezz 003ca9273d Fix beekeeper vaillager's collar color 2016-07-05 22:13:58 -07:00
mezz 28f65f13a5 Fix worktable bug that could delete container items 2016-07-05 21:57:23 -07:00
mezz 21ee0947d7 Fix isOp permissions check 2016-07-05 21:01:54 -07:00
mezz 1e11992de2 Fix #1333 Stop wild hive bees from attacking passive animals 2016-07-03 23:05:46 -07:00
mezz d690a38fa2 Fix #1340 Rare NPE from BeekeepingLogic.queenWorkTick 2016-07-03 22:16:12 -07:00
mezz 46eb29cf28 Fix #1342 Crash when giving multifarm control a redstone signal 2016-07-03 20:59:26 -07:00
mezz fb01d3ffaa Update IC2 2016-07-03 12:38:47 -07:00
mezz e676a73a7c Fix doors not showing correctly in TheOneProbe 2016-07-01 22:41:29 -07:00
mezz 6e348dbc5d Add support for Tesla power 2016-06-30 16:54:57 -07:00
mezz 39114ec429 Tidy up capabilities 2016-06-30 16:26:36 -07:00
mezz 3b82fe3bd0 Update to Minecraft 1.10.2 2016-06-30 16:22:15 -07:00
mezz 2667334252 Increase chances of getting a research note on the escritoire 2016-06-28 13:56:28 -07:00
mezz be39e2c3c3 Only list mutations for the primary species in the handheld Alyzer 2016-06-28 13:51:15 -07:00
mezz 40eece7d77 Fix bee carts dropping invalid item when broken 2016-06-28 13:01:39 -07:00
mezz 4fcc785e85 Make Escritoire give unlearned mutation notes first 2016-06-28 02:24:00 -07:00
mezz 11e4097bd8 Use List in the API where appropriate 2016-06-28 02:10:03 -07:00
mezz f8c37da06d Improve escritoire responsiveness on slow networks or laggy servers 2016-06-28 01:54:32 -07:00
mezz 09756f21fd Fix grafter break sounds and animation on Forestry leaves
(no fix for vanilla leaves, the harvest event is fired server-side only)
2016-06-25 01:37:44 -07:00
mezz a06c4bd1dc Make grafter work on vanilla leaves 2016-06-25 01:36:33 -07:00
mezz bb477f0dfb Add tooltip for grafter use count on a new grafter 2016-06-25 00:34:51 -07:00
mezz 0b86b3df8f Buff the grafter slightly from 5 uses to 10 uses 2016-06-25 00:34:31 -07:00
mezz edd5357008 Make princess bee crown silver to stand out better 2016-06-25 00:23:24 -07:00
mezz dfb4e04f4a Update Forge 2016-06-25 00:04:26 -07:00
mezz 45c0375387 Fix bee particles becoming active at night when hive is opened 2016-06-25 00:04:11 -07:00
mezz 5e4cfa5112 Add oredict for charcoal 2016-06-25 00:03:16 -07:00
mezz 086b53e4a3 Add beetroot seeds to the squeezer for seed oil 2016-06-24 19:29:02 -07:00
mezz fbb5612b8c Slightly improve the look of larch bark 2016-06-24 19:21:54 -07:00
mezz c3c471ab33 Fix localization for backpack modes 2016-06-24 18:32:48 -07:00
mezz 67ddc252aa Stop Balsa leaves from generating infinitely downwards 2016-06-24 16:50:01 -07:00
mezz 59945a8961 Change name of "managed" farm to "automatic" 2016-06-24 16:40:57 -07:00
mezz bbabb967b1 Fix localization of latticed heath butterfly and ash pile 2016-06-24 16:34:52 -07:00
mezz 4cb1ee4cb1 Simply tree genomes, move charcoal properties to Species 2016-06-24 16:00:11 -07:00
mezz 95135544e2 Fix #1330 Fix resource checks for resources below an Alveary 2016-06-23 15:31:36 -07:00
mezz e34b71c13e Update dependencies 2016-06-23 14:51:32 -07:00
mezz cc8bcf384a Fix rare crash when getting rewards from escritoire 2016-06-23 14:51:12 -07:00
mezz 1f21952beb Fix #1328 Crash when trying to pick up wheat from Moistener process slot 2016-06-23 14:50:35 -07:00
mezz 1ed4ced65f Remove "useDepAts = true" in gradle, it's no longer needed for JEI's API 2016-06-23 02:54:25 -07:00
mezz beb74e635d Use JEI API jar at compile time 2016-06-23 02:34:50 -07:00
mezz 40c4fc5d1f Update for Minecraft 1.10 2016-06-23 02:19:36 -07:00
mezz 645dba903d Improve the look of cherry tree leaf generation 2016-06-22 21:14:38 -07:00
mezz 1ac4acdb47 Fix ebony trees growing offcenter from their saplings 2016-06-22 21:13:52 -07:00
mezz 74aa33e80c Remove all the saplings when a large tree grows 2016-06-22 21:13:35 -07:00
mezz 6f6b45abcf Add EnderIO compat for ice coolant and ethanol fuel 2016-06-22 19:00:05 -07:00
mezz 7297a6a5d3 Add ExtraUtils2 EnderLily compat for the farm 2016-06-22 18:40:07 -07:00
mezz 5ef76cffca Fix invalid recipes warning when BoP plugin is enabled 2016-06-22 16:19:40 -07:00
mezz 9284f84645 Fix pipette filling bug 2016-06-22 16:18:55 -07:00
mezz 85ba33e1ff Add trapdoorWood oredict name 2016-06-20 23:11:44 -07:00
mezz 9f5f5e7812 Fix network sync of item floating over Escritoire 2016-06-19 23:03:02 -07:00
mezz 8617c4a79f Properly center the item floating over the escritoire 2016-06-19 22:18:31 -07:00
mezz e9809238de Fix #1325 Null Pointer Exception from broken mailbox 2016-06-18 16:14:13 -07:00
mezz c0a22f4a28 Split mutationCustom into mutationBuilder and Mutation
Remove EntityBee
Update MutationConditionRequiresResource to use blockState
2016-06-17 15:20:19 -07:00
mezz 41c6fb15b3 Make escritoire convert vanilla saplings for analysis 2016-06-17 15:17:43 -07:00
mezz b5d65e83f0 Render floating sapling over Escritoire when in use 2016-06-17 15:17:43 -07:00
mezz 1a7c148a7e Update JEI 2016-06-16 18:55:53 -07:00
mezz ead630aa51 Clean up fluids a bit 2016-06-16 14:50:57 -07:00
mezz 85b71c785a Fix colored fluid drip particles 2016-06-16 14:43:18 -07:00
mezz 04cb58dfa2 Use FluidRegistry Water and Lava 2016-06-16 14:38:12 -07:00
mezz 3822e90ada Fix #1299 use dynamic textures for fluid containers 2016-06-16 14:03:30 -07:00
mezz af5cb93689 Use ModelBakery directly, less layers of abstraction 2016-06-16 13:58:03 -07:00
mezz 6a62024dd4 Fix wrench rotation handling 2016-06-15 16:26:57 -07:00
mezz bedb7ffe85 Fix the save bee stats command 2016-06-15 16:04:53 -07:00
mezz 4a21641bcd Fix backpacks trying to interact with inventories in a sided way 2016-06-15 16:04:38 -07:00
mezz 21d0b832b9 Fix crash when mods ask for the inventory without a specific side 2016-06-15 00:03:20 -07:00
mezz ce9081249f Fix compatibility with Chisels & Bits 2016-06-14 16:17:12 -07:00
mezz f6786cd44a Fix #1289 Trade station price can show a negative stack in catalog 2016-06-13 23:08:34 -07:00
mezz a045c18a89 Fix #1300 Crash in CharcoalPileRenderer with WAILA 2016-06-13 21:43:54 -07:00
mezz d6af85ad77 Fix #1314 Crash with WAILA when looking at broken leaves 2016-06-13 21:39:28 -07:00
mezz af55bd86a2 Fix #1322 JEI missing most squeezer recipes 2016-06-13 21:33:32 -07:00
mezz 7aa840282f Fix #1229 Squeezer Recipes in JEI do not show chance % 2016-06-13 21:32:19 -07:00
mezz a5d57c4788 Add villager name localization 2016-06-13 21:30:54 -07:00
mezz 4d0c2d1ea2 Fix all hives spawning with the same flower pattern around them 2016-06-13 20:46:23 -07:00
mezz 840331b7d5 Refresh bee errors when queen is replaced or gui is opened 2016-06-13 19:21:42 -07:00
mezz df91b47b35 Fix missing import for SoundEvent on chest 2016-06-13 15:28:01 -07:00
mezz f400241ff4 Revert greenhouse climate changes. Close #1319 2016-06-13 15:27:19 -07:00
Nedelosk 8639148f20 Fix #1318 1.9.4 Crash with .153 version on world load 2016-06-13 22:56:29 +02:00
Nedelosk 28e7b561ea Fix a bug 2016-06-13 22:14:03 +02:00
Nedelosk ba7ef4228c Update PluginBiomesOPlenty.java 2016-06-13 21:54:53 +02:00
Nedelosk fcd3ee6feb Merge branch 'mc-1.9.4' of https://github.com/ForestryMC/ForestryMC into Greenhouse-Climate-Fix 2016-06-13 21:49:05 +02:00
The-Fireplace 6ddc9f3079 Fixed chests playing the open sound when they close (#1316) 2016-06-12 14:09:31 -07:00
Nedelosk cc53894473 Finish work 2016-06-12 20:42:09 +02:00
Nedelosk 2cd76bdad7 Rework sytem 2016-06-12 01:16:25 +02:00
mezz 92eab8d47a Fix #1308 Restore compatibility with old fluid pipes 2016-06-09 18:35:12 -07:00
mezz 12f5d7be6c Revert "Fix rare possible npe in random hive trade"
This reverts commit 4ba3370fc9.
2016-06-09 16:36:32 -07:00
mezz ab88e7d57c Fix #1311 Crash with WAILA and butterfly or using butterfly kill command 2016-06-09 16:35:33 -07:00
Nedelosk 725d85181d Update System 2016-06-09 21:50:43 +02:00
Nedelosk 23c9b2071b Clen Up and work on climate system 2016-06-09 20:19:13 +02:00
Nedelosk ae025a92fc Clean Up, Work on climate system 2016-06-08 21:58:10 +02:00
Nedelosk fbf30b1a73 Work on new climate system for the greenhouse 2016-06-08 19:25:18 +02:00
Nirek-K 4ba3370fc9 Fix rare possible npe in random hive trade 2016-06-08 11:07:16 -05:00
mezz c1a590961d Cleanup unused fields 2016-06-07 23:40:58 -07:00
mezz a1f7a678c1 Use ForgeRegistries instead of Item and Block registries 2016-06-07 23:40:33 -07:00
mezz 1117b820f1 Update to latest version of JEI 2016-06-07 23:34:01 -07:00
mezz 4681bf4cfb Update Chinese localization 2016-06-07 23:33:05 -07:00
Nirek-K b9dd19a556 Make hive bee trade a random one 2016-06-07 23:49:05 -05:00
Nirek-K f97a737185 Migrate new 1.7 villager trades, fix ic2 uid 2016-06-07 20:18:36 -05:00
mezz 68fb27410e #1295 Add Forestry recipes to the RecipeSorter 2016-06-06 19:00:44 -07:00
mezz b8be42548e Use IconItemStack for farm logic icon 2016-06-05 23:04:48 -07:00
mezz eb9ef642cd Reenable IC2 support 2016-06-05 22:53:12 -07:00
mezz ed658301fd Clean up warnings 2016-06-05 21:40:52 -07:00
mezz d55d86a3c5 Fix #1272 villager house generation is intersecting with the road 2016-06-04 23:31:42 -07:00
mezz b2d5706bbd Stop calculating bee particle collisions 2016-06-04 22:40:27 -07:00
mezz ba6bd8fd10 Fix #1274 Broken fence localization 2016-06-04 21:49:08 -07:00
mezz b998e2ac49 Fix #1286 Crash when trying to break cocoons 2016-06-04 21:46:53 -07:00
mezz 817540d996 Fix #1285 Crash when Biogas Engine starts to burn fuel 2016-06-04 21:33:47 -07:00
mezz 9d8866e4fd Fix missing icons in Genetic Analyzer 2016-06-04 21:28:23 -07:00
mezz 7575b9c6ce Fix #1287 Some genetic traits have broken localization 2016-06-04 18:13:45 -07:00
Nedelosk 6700c511a5 Merge branch 'mc-1.9.4' of https://github.com/ForestryMC/ForestryMC into mc-1.9.4 2016-06-04 23:49:01 +02:00
Nedelosk acc55d4f41 Fix #1277 Transparent sprinkler(item) 2016-06-04 23:47:52 +02:00
mezz 7bd5bb120d Update for new fluid capabilities 2016-06-04 04:25:51 -07:00
Nedelosk dbbb727576 Add Fluid capability to the greenhouse hatch 2016-06-04 11:02:25 +02:00
mezz dcf0fc83ad Fix #1282 NullPointerException from Cocoon with invalid caterpillar 2016-06-04 01:03:13 -07:00
mezz 6ef91590cf Update Forge 2016-06-04 00:59:53 -07:00
mezz 856322b208 Update Forge to fix the crash with cactus placement and BoP grass 2016-06-03 17:29:54 -07:00
mezz 42425e3500 Fix #1281 Crash when trying to place Forestry tiles above Y=255 2016-06-03 16:35:06 -07:00
mezz cde076e702 Fix #1280 Bees can find flowers at very different Y levels in some cases 2016-06-03 16:30:27 -07:00
mezz b5f60d73e3 Fix #1278 Wild bees don't hurt if you wear any 1 piece of Apiarist gear 2016-06-03 16:19:45 -07:00
mezz f82d123b7f Fix #1273 Villagers unable to open forestry doors 2016-06-03 16:07:34 -07:00
mezz ca17801c86 Speed up the check for if a block position is currently in a greenhouse 2016-06-03 15:54:44 -07:00
mezz 33d1685713 Fix #1275 block placement lag when constructing a massive greenhouse 2016-06-03 15:26:57 -07:00
mezz 69c024811f Do not bake leaves based on position 2016-06-03 14:45:00 -07:00
Nedelosk 4dd95625e1 Fix #1244 Opening Greenhouse GUI causes a drop in fps, from 90fps to 6fps(in my case) 2016-06-03 23:11:52 +02:00
mezz 6adcde4a75 Fix NoClassDefFoundError: TextureAtlasSprite 2016-06-03 07:34:38 -07:00
mezz 2f06c777b2 Fix #1246 Greenhouse control redstone logic is inverted 2016-06-03 06:25:29 -07:00
mezz 32f295b16c Fix #1254 Chest bounding boxes are too large 2016-06-03 06:22:14 -07:00
mezz ef4c65c6e6 Fix some bee particles showing up as very dark 2016-06-03 06:09:56 -07:00
mezz ba313a9dfe Fix desync causing hives to have no active bees 2016-06-03 06:09:07 -07:00
mezz 8f36c2a6fc Route more bees to flowers than to exploring 2016-06-03 06:08:24 -07:00
mezz 149a5b6128 Update Forge 2016-06-03 06:08:04 -07:00
mezz 56b871eca1 Improve bee particle performance: do not render when too far away 2016-06-03 04:30:42 -07:00
mezz c09cdcdb64 Add more varied bee particles 2016-06-03 04:30:12 -07:00
mezz 2f66d0ea82 Fix hives only spawning Forest bees 2016-06-03 04:24:53 -07:00
mezz ac224823be Reduce random bee damage if you haven't hit the hive 2016-06-03 04:24:33 -07:00
mezz 1eca6e41af Improve bee particle performance 2016-06-02 17:16:15 -07:00
mezz 94bd65ee8e Improve greenhouse error messages. 2016-06-02 16:24:00 -07:00
mezz 795b154eb5 Fix #1263 Crash when lighting TNT on top of wood pile block 2016-06-02 13:19:41 -07:00
mezz 358e7853c2 Fix #1268 NoSuchMethodError on Server Startup 2016-06-02 11:40:24 -07:00
mezz 4f7b77abb4 Have bees find closest flowers instead of any in range 2016-06-02 03:05:21 -07:00
mezz aff15b34d6 Fix #1255 Relogging makes apiaries stop spawning bee particles 2016-06-02 02:56:43 -07:00
mezz 55cf7b5c16 Fix flower registry, remove config for now 2016-06-02 02:55:17 -07:00
mezz d4cfbe9f29 Comment out broken BoP compatibility 2016-06-02 02:54:01 -07:00
mezz 4fc731c7c8 Fix dungeon loot spawning without genetics 2016-06-02 02:53:34 -07:00
mezz bd2af7fa13 Fix Forestry's name to be uppercase 2016-06-01 22:54:12 -07:00
mezz f3d88fea3c Fix Backpack item registration in the API 2016-06-01 22:29:21 -07:00
Girafi 1d642cf9c5 Added backpack support for a bunch of vanilla items/blocks (#1265)
Added backpack support for more vanilla items/blocks
2016-06-01 19:30:45 -07:00
mezz b187815415 Fix #1264 Fireproof birch and spruce log texture are switched 2016-06-01 19:04:17 -07:00
mezz 5c7150ad62 Tweak changelog formatting 2016-06-01 17:59:19 -07:00
mezz d84f708a98 Fix curse info and changelog formatting 2016-06-01 17:37:48 -07:00
mezz 2117be96cd Fix #1256 Use the same lowercase "forestry" for all MOD_ID and resources 2016-06-01 16:05:26 -07:00
mezz 96f941f6e6 Auto-generate changelogs and upload alphas to curse 2016-06-01 14:36:14 -07:00
mezz d3c7d7141d Fix #1262 NullPointerException from null name in the OreDictionary 2016-06-01 12:57:27 -07:00
mezz e23a406e6f Fix #1258 undo ore unification experiment 2016-06-01 12:43:00 -07:00
mezz 340b04fee0 Fix #1259 crash on butterfly cocoon creation 2016-05-31 00:56:21 -07:00
mezz 7437f4f364 Fix #1257 Internal server error when using Bee Smoker in Alternate hand 2016-05-29 12:52:47 -07:00
mezz bfac4500a4 Revert "Temporary fix for Forge ICrashCallable issue"
This reverts commit bd2aae4d60.
2016-05-29 12:50:26 -07:00
mezz bd2aae4d60 Temporary fix for Forge ICrashCallable issue 2016-05-29 01:45:29 -07:00
mezz 30286fd0ad Update to latest Forge 2016-05-29 01:42:24 -07:00
mezz db482a5820 Add icon for full tank error and improve error message 2016-05-28 12:54:51 -07:00
mezz ce2138393a Fix reference to private fields in FlutterlyzerPlugin 2016-05-28 12:32:19 -07:00
Nedelosk 4f8912dd66 Add Greenhouse butterfly hatch error message 2016-05-28 01:46:38 +02:00
Nedelosk 34f95c43c7 Clean Up multiblock error messages and Fix #1199. 2016-05-28 01:43:42 +02:00
Nedelosk 72cf00aa34 Fix #1237 All fireproof blocks work as fuel 2016-05-28 00:44:42 +02:00
mezz d5071b0da2 Improve wood textures. Make Zebrawood & Cocobolo planks normal rotation 2016-05-26 15:11:22 -07:00
mezz fc77a6ea71 Merge pull request #1252 from LexManos/patch-1
Fix broken gradle source path that is breaking S2S
2016-05-26 14:54:44 -07:00
LexManos c726a1973f Fix your broken source path that is breaking S2S
You're copying the package 'cofh.api' into the folder 'api' which is causing things to freak out because it sees code in the wrong package.
2016-05-26 14:49:00 -07:00
mezz ae5596491d Improve the design of villager houses slightly 2016-05-26 13:59:12 -07:00
mezz 40856a3748 Merge remote-tracking branch 'origin/mc-1.9' into mc-1.9.4 2016-05-26 12:13:32 -07:00
Nedelosk 8f836ef0d2 Fix #1241 Analysed charcoal uses 2016-05-26 11:20:51 +02:00
Nedelosk 555304d987 Fix humidity bug at the greenhouse 2016-05-26 10:45:11 +02:00
mezz b444994b81 Update for Minecraft 1.9.4 2016-05-26 01:42:46 -07:00
mezz da486ee941 Allow pipettes to fill a machine or tank in the world 2016-05-25 15:56:40 -07:00
mezz a2881fbe1c Fix pipette not able to drain from gui tanks 2016-05-25 15:56:15 -07:00
mezz 7db47391e8 Give fermenter a better display tank in JEI 2016-05-25 13:27:23 -07:00
mezz 8b078f16d9 Fix #1208 Incorrect Fermenter recipes in JEI 2016-05-25 03:00:45 -07:00
mezz febb74177a Fix bug in fermenter processing 2016-05-25 03:00:27 -07:00
mezz 61ca28d520 Fix #1216 Items partially dragged from Alyzer input are not analyzed 2016-05-25 02:02:03 -07:00
mezz fe8be57a80 Fix #1239 crash from a reference to IStateMapper on server-side 2016-05-25 01:39:06 -07:00
mezz 5cb03067ad Minor cleanup 2016-05-25 01:38:39 -07:00
mezz 23ffa00ca5 Close #1028 add Fireproof versions of Vanilla wood items 2016-05-25 01:31:49 -07:00
mezz cdb85cb042 Fix #1233 Decorative leaves drop leaves block when broken by hand 2016-05-24 14:40:11 -07:00
Nedelosk 33051d09b2 Fix #1202 Greenhouse doors, glass and sprinkler should use glass breaking sound 2016-05-24 21:44:26 +02:00
Nedelosk 69cf513e51 Fix #1237 All fireproof blocks work as fuel 2016-05-24 21:39:43 +02:00
Nedelosk 2c173766cb Fix #1236 Normal logs are not flammable(in world) and add flammability to the wood pile 2016-05-24 21:29:59 +02:00
Nedelosk 0405151a8e Fix #1235 Untextured particles when Loam block that is part of formed Charcoal Pile multiblock is broken, Fix #1234 Selecting Loam block broken, Fix #1232 Loam block drops 2 blocks when broken, Fix #1231 Charcoal Pile multiblock drops 2016-05-24 21:11:36 +02:00
Nedelosk fd6a1de27e Fix Pile Block Particles 2016-05-24 20:40:31 +02:00
Nedelosk 686f74e4f3 Add combustibility and the carbonization to the germling tooltip 2016-05-24 18:53:55 +02:00
Nedelosk 528bb6e051 Add carbonization and combustibility allele to the treealyzer 2016-05-24 18:31:21 +02:00
Nedelosk 078987808c Fix lang for the charcoal pile 2016-05-24 15:25:39 +02:00
Nedelosk c1e414b8f7 Add charcoal pile 2016-05-24 15:20:21 +02:00
mezz 939d35661b Fix #1228 incorrect upside down stair model 2016-05-24 03:12:01 -07:00
mezz 3c85f3a7be More messing with the OreDictionary and tidying things 2016-05-24 03:01:02 -07:00
mezz aa4b4a18d1 Update Forge 2016-05-24 02:15:03 -07:00
mezz 55c32a8280 Close #1212 Use OreDictionary to choose a type of Copper/Tin/Bronze 2016-05-24 02:14:55 -07:00
mezz 502160011b Fix #1214 Locked slots have no tooltip 2016-05-24 00:30:06 -07:00
mezz 790197d7bd Fix greenhouse door sounds 2016-05-23 23:52:59 -07:00
mezz 7d459bb30b Add liquid in icon for greenhouse liquid slot 2016-05-23 23:52:47 -07:00
mezz da005bc404 Remove unused world field from GreenhouseState 2016-05-23 23:38:59 -07:00
mezz 9d0975a0ff Make modelDecorativeLeaves.LeaveOverideList a static class 2016-05-23 23:38:34 -07:00
mezz a39f6e8e89 Fix greenhouse requiring height of 6 instead of 5 2016-05-23 23:37:57 -07:00
mezz 16c5284923 Fix #1215 Stack overflow when validating greenhouse structure 2016-05-23 23:37:32 -07:00
mezz a9bc982595 Fix broken greenhouse textures from earlier commit 2016-05-23 23:25:33 -07:00
mezz 45d29456af Fix #1168 Missing RF API from jar 2016-05-23 22:43:51 -07:00
mezz 3f2afa7bcb Fix #1213 decorative leaf hardness and shear drop issues 2016-05-23 21:55:08 -07:00
mezz 238d33d37a Show tooltips on tree products in the Alyzer 2016-05-23 20:05:13 -07:00
mezz a30ff61c9a Fix #1216 Portable Alyzer issues 2016-05-23 20:01:45 -07:00
mezz 2155f9eac9 Clean up sprite registration, remove all IDs 2016-05-23 17:37:20 -07:00
mezz 30aea48952 Fix #1189 mail carrier sprites limit texture map's mip level 2016-05-23 17:23:20 -07:00
mezz 0ae4d1a54d Fix fruit leaf rendering with Fast graphics 2016-05-23 16:23:09 -07:00
mezz f597834198 Fix #995 Pollinated leaves have render issues on Fast Graphics 2016-05-23 14:56:31 -07:00
mezz e3ccd06ddc Fix #1205 Leaf pollination does not sync properly 2016-05-23 03:10:57 -07:00
mezz bc2c80365c Harvest wood from top to bottom to help leaf decay 2016-05-23 02:02:34 -07:00
mezz 752a221fe8 Fix #1033 multifarms have issues with branches 2016-05-23 00:45:27 -07:00
mezz 2801e346c5 #1087 Stop multifarm from putting harvest into upper slots 2016-05-23 00:44:59 -07:00
mezz a278a488f6 Fix #1040 farm circuit changes do not sync properly on SMP 2016-05-23 00:35:52 -07:00
mezz bf3e00c9e9 Add icons for liquid input and output slots 2016-05-23 00:30:15 -07:00
mezz fd6958b637 Fix #1087 Stop multifarm from putting harvest into upper slots 2016-05-23 00:06:14 -07:00
mezz 75d747df70 Replace BlockPos.add(0, 1, 0) with up() 2016-05-22 23:58:42 -07:00
mezz d1969e1868 Fix #1211 Farm and Rain Tank are not detecting rain when biome changes 2016-05-22 23:55:05 -07:00
mezz 55d35c4cbe Fix #1203 Saplings don't make a sound when placed. Fix more of the farm. 2016-05-22 23:45:45 -07:00
mezz 4ae72d7550 Improve farm harvest logic 2016-05-22 19:10:51 -07:00
mezz 520c053cbc Fix #1209 Crash when opening farm gui 2016-05-22 15:12:17 -07:00
mezz afbde2d735 Fix #1186 Begin farm cleanup and testing 2016-05-22 03:31:02 -07:00
mezz 1707573f7d Fix crash when right clicking with a can or capsule on a regular block 2016-05-21 20:35:52 -07:00
mezz c4c3f493be Fix crash when placing an engine vertically 2016-05-21 20:31:20 -07:00
mezz 2dc7ae137e Fix fence gate orientation on villager houses 2016-05-21 20:06:57 -07:00
mezz 70bf28c1c4 Fix nullability warnings 2016-05-21 19:21:54 -07:00
mezz dd36746240 Fix #1207 Wooden planks aren't in the creative tabs 2016-05-21 19:06:30 -07:00
mezz 2cfd0dae0a Fix #1224 wood items have wrong metadata 2016-05-21 19:00:04 -07:00
mezz fdef1ba84a Remove chunkExist functions from BlockUtil 2016-05-21 17:52:28 -07:00
mezz 292a0f029e Fix branch end detection, it was adding every branch section 2016-05-21 17:51:59 -07:00
mezz 7bd7357684 Start generating leaves from the top branch position, not random order 2016-05-21 17:50:47 -07:00
mezz a84ad5c828 Clean up LeafDecayHelper 2016-05-21 17:49:12 -07:00
mezz 586ecec9fe Fix tree leaves doing decay calculations immediately after generating 2016-05-21 17:48:47 -07:00
mezz 9cb3e4897b Fix leaf decay info being lost on world save/load 2016-05-21 17:48:17 -07:00
mezz 3a941ead9f Fix Ebony tree leaf generation 2016-05-21 17:47:47 -07:00
mezz edacde02e7 Fix #1222 Fix #980 Refactor and improve tree generation 2016-05-21 16:41:22 -07:00
mezz 4fdbaff7ad Improve papaya bark 2016-05-21 00:44:51 -07:00
mezz 36c8adbc05 Improve sequoia and giant sequoia bark textures 2016-05-20 23:58:23 -07:00
mezz 8ac1485390 upload all jars to maven 2016-05-20 12:04:51 -07:00
mezz 29573ff502 spaces to tabs in build.gradle 2016-05-20 11:44:51 -07:00
mezz 0bfa254d7f Try to fix maven upload task on jenkins 2016-05-20 11:42:44 -07:00
mezz 6ae98d4428 Try to fix maven upload task on jenkins 2016-05-20 11:40:01 -07:00
mezz bc66802384 Fix #1217 blocks drop items with invalid meta 2016-05-19 21:43:35 -07:00
mezz c9f17452cf Fix leaves decaying immediately on large trees 2016-05-19 21:40:21 -07:00
mezz 4907993759 Fix #1219 Fix #1220 Crash when growing trees with pods 2016-05-19 21:28:14 -07:00
mezz ee63729525 Fix log orientation for trees 2016-05-19 18:14:28 -07:00
mezz 62368d4e40 Fix #1204 Leaves do not decay 2016-05-19 17:17:04 -07:00
mezz 78a955e3ea Fix #1198 Missing item textures for engines 2016-05-19 15:57:24 -07:00
mezz fb523c2064 Fix #1171 Bee life cycle indicator desync 2016-05-19 14:48:42 -07:00
Nedelosk ae7ec5c782 Fix #1196 Portable Alyzer still missing model and texture 2016-05-19 16:57:59 +02:00
Nedelosk 80eb842558 Remove Unused things 2016-05-19 16:57:11 +02:00
mezz 939e776668 #1171 Bee life cycle indicator desync 2016-05-19 02:17:25 -07:00
mezz ced605d006 Fix #1182 Sheared leaves drop the wrong number of leaves 2016-05-19 01:51:05 -07:00
mezz 215761b1b1 Fix #1184 Fireproof slabs burn 2016-05-19 01:45:33 -07:00
mezz 3a829c9990 Fix #1190 crash on pollination. Also rearrange IPollinatable classes 2016-05-19 01:41:51 -07:00
mezz 8981384385 Fix #1194 crash on item render without JEI 2016-05-19 01:20:10 -07:00
mezz 8eddbaf6c5 Fix #1162 Backpack persists upon item switching 2016-05-19 00:00:46 -07:00
mezz 9d563bc953 Use IBlockState instead of old IBlockType 2016-05-18 23:55:54 -07:00
mezz ff1ff5ae2c Put Facing on blockstate not Tile. Use one block per type for BlockBase 2016-05-18 23:44:03 -07:00
mezz fb7cd3ee09 Fix #1156 Fix #286 Fix #1155 Add villagers and villager houses 2016-05-18 21:57:02 -07:00
mezz 6b4d7ebcc4 Fix #1195 Problem loading loot tables on startup 2016-05-18 21:55:54 -07:00
Nedelosk afb3ee56dd Fix #1183 Portable alyzer, Fix #1185 Infuser GUI crash and Fix #1187 Crash when trying to break farm block 2016-05-17 16:16:39 +02:00
Nedelosk 828f91f894 Fix lang 2016-05-16 17:18:31 +02:00
Nedelosk 7ae7e62c0c Add universal portable alyzer and remove flutter-,tree- and beealyzer 2016-05-16 17:04:34 +02:00
Nedelosk 23b5126d51 Fix leaves and saplings, Fix #1157 Exception loading model for Saplings and Leaves, Fix #1167 Broken natural leaves, Fix #1164 Leaves breaking instantly 2016-05-16 01:09:51 +02:00
Nedelosk ba5a2529df Fix #1178 Duplicate recipes for carrot > fruit juice,. Fix #1169 Rendering of bronze tools, Fix #1177 Toolips for squeezer and centrifuge recipes 2016-05-16 00:10:45 +02:00
Nedelosk 5188b5a3f6 Fix #1180 Punching Greenhouse Glass crash 2016-05-15 23:55:14 +02:00
Nedelosk 2ec6601383 Merge branch 'mc-1.9' of https://github.com/ForestryMC/ForestryMC into mc-1.9 2016-05-15 21:09:14 +02:00
Nedelosk bb3d736cb5 Fix #1179 Crash on world load 2016-05-15 21:08:48 +02:00
mezz 7bb91e9165 Update Forge and MCP 2016-05-15 02:28:02 -07:00
Nedelosk ea6fd2e3c0 Fix #1159 Stairs and Fireproof Stairs Break Instantly, #1170 Treealyzer Shift Click, Convert Vanilla Sapling to Germling in the Treealyzer 2016-05-15 10:22:07 +02:00
Nedelosk 8299fe3a75 CleanUP, Fix #1175 Germling Texture swap, Fix #1166 Raintank not doing it's job, Fix #1165 Circuit board recipes missing from JEI 2016-05-15 09:57:59 +02:00
Nedelosk 4c83209eae Fix #1173 and Fix #1172 2016-05-15 09:25:33 +02:00
Nedelosk 92d8b020db Update README.md 2016-05-15 01:07:28 +02:00
Nedelosk 6a4ea30484 Fix #1163, Reloading Textures breaks Crate Textures 2016-05-14 14:12:34 +02:00
Nedelosk a15f110ca3 Fix #1161, Greenhouse Block rendering 2016-05-14 14:01:06 +02:00
mezz 9d9ea95ed1 Close #1154 add dungeon loot 2016-05-13 01:50:49 -07:00
mezz 4cf74e4aa1 Add API jar, remove html JavaDoc jar 2016-05-12 15:32:30 -07:00
mezz 0df025c2d5 Fix crashes on server from SideOnly 2016-05-12 02:49:14 -07:00
mezz 99646e8656 Fix crash with BoP integration 2016-05-12 01:56:40 -07:00
mezz 9af235cc3b Remove custom gradle stuff. Will need to add API jar back later 2016-05-12 01:56:28 -07:00
mezz 4268ceb11c Remove JavaChecker stuff 2016-05-12 01:23:58 -07:00
mezz 2c7d56f308 Make bees particles animate to pollinate nearby flowers 2016-05-12 01:09:12 -07:00
mezz 64ed04e09b Remove Forestry's custom particle renderer 2016-05-11 22:45:16 -07:00
mezz e432e17373 remove deprecated call to isFullyOpaque 2016-05-11 22:08:12 -07:00
mezz 1e1f65fc6c Update to latest Forge 2016-05-11 22:00:58 -07:00
mezz 5cc181d4c7 Fix #1153 crash from interface methods named getWorld 2016-05-11 22:00:49 -07:00
mezz 0ae2e36e90 Fix #1112 Improve IItemHandler Integration and Backpack 2016-05-08 00:16:34 -07:00
mezz a312afedd3 Fix up item json for 1.9 2016-05-07 16:29:48 -07:00
mezz 26b8f67885 Fix bee smoker to work in either hand 2016-05-07 16:19:10 -07:00
mezz 54c5ed7a1b Update Forge for hive gen fix. Reduce default hive gen rate to normal 2016-05-07 13:05:12 -07:00
Nedelosk ad42e7327a Fix collisions proplem with the machineproperties 2016-05-07 21:24:49 +02:00
Nedelosk db6d43e457 Fix leaves and particles 2016-05-07 10:35:26 +02:00
mezz fed1994838 Fix up Hive Generation 2016-05-06 22:03:26 -07:00
mezz 6d00d35ae5 Fix decorative leaf colors 2016-05-06 17:27:51 -07:00
mezz 7403a6cdcd Use new block and item registration 2016-05-06 17:27:16 -07:00
mezz 7601a60c5e Update Forge 2016-05-06 17:25:43 -07:00
Nedelosk 566efc7a96 Improve models 2016-05-06 19:13:36 +02:00
Nedelosk 898860975a CleanUp, improven Crate Model, and add IModelState parameter to the model baker 2016-05-06 19:00:58 +02:00
Nedelosk 03c1c26258 Fix crate renderin, fix sprinkler rendering and fix butterfly rendering. 2016-05-06 14:04:17 +02:00
mezz c30c3d7575 Use BlockPos and Vec3i, remove our Vect implementations 2016-05-06 02:18:03 -07:00
mezz 62ddd7bafc Fix some missing overlay colors and greenhouse color multiplier 2016-05-05 19:54:48 -07:00
mezz 686e2799ad rename ICamouflagedBlock to ICamouflagedTile 2016-05-05 19:54:25 -07:00
mezz b1d55811a9 Fix rendering of engine, core, and factory items 2016-05-05 19:40:07 -07:00
mezz c6bfdec1ea Fix chest item rendering 2016-05-05 19:17:02 -07:00
mezz 6b95bc0b50 Fix models and states changed by minecraft property requirement [a-z_]+ 2016-05-05 19:14:12 -07:00
mezz 31a186c0a5 Fix liquid container translation 2016-05-05 19:01:22 -07:00
mezz c8706ed1f8 Fix stair item rendering 2016-05-05 18:52:57 -07:00
mezz 07c3355489 Improve JEI integration : add click areas and recipe category items 2016-05-05 18:47:34 -07:00
mezz 17b1c792d0 Fix bee item rendering in hands 2016-05-05 17:37:33 -07:00
mezz db2d534d52 Fix fence rendering 2016-05-05 17:17:34 -07:00
Nedelosk 6b5750f252 Fix butterfly model 2016-05-06 00:32:52 +02:00
mezz 078290649c fix missing textures 2016-05-05 15:09:15 -07:00
mezz 65c63dcc63 Register models and colors more efficiently 2016-05-05 15:05:58 -07:00
mezz 6b912633b9 Fix item colors 2016-05-05 14:06:20 -07:00
Nedelosk 66d6a4d75e Work on ModelBaker 2016-05-05 12:48:10 +02:00
mezz 7bf554b024 Compiles for 1.9! Very buggy, some things are missing. 2016-05-05 01:11:21 -07:00
mezz 5d74c1254b More porting to 1.9 2016-05-04 21:15:23 -07:00
mezz a0cdaf1e1a More porting to 1.9 2016-05-04 01:02:43 -07:00
mezz 73c2608848 First steps porting to 1.9 2016-05-03 00:26:28 -07:00
mezz c47acd803c Register crates without specifying a UID 2016-05-01 17:31:37 -07:00
mezz 76bcc42c82 Crop JEI recipes more closely so more fit on a page and they're centered 2016-05-01 16:56:23 -07:00
mezz ab70788b66 Use ItemStackUtil.getItemNameFromRegistry 2016-05-01 16:55:23 -07:00
mezz 79b3d910ea Add butterfly type to the names (butterfly, serum, caterpillar, cocoon) 2016-05-01 16:01:31 -07:00
mezz a3363fb4bc Big code cleanup 2016-05-01 15:34:11 -07:00
mezz 1b58077904 Cleanup 2016-05-01 14:46:12 -07:00
mezz 92d62de486 Fix warning about missing cocoon texture, hide default cocoon in jei 2016-05-01 14:27:57 -07:00
mezz 3aef4aa2c1 Let cocoons work with pick block 2016-05-01 14:04:25 -07:00
mezz dc57e0826d Fix missing blockstate for bog earth 2016-05-01 14:03:31 -07:00
mezz 77b1d2a283 Fix lighting of the mail indicator 2016-05-01 13:15:57 -07:00
mezz 92460d1d4a Fix #1052 and #1097 bad error messages from Trade Station 2016-05-01 12:52:00 -07:00
mezz 1d1959b535 Close #832 add alternate recipe for silk wisp when bees are disabled 2016-05-01 09:54:27 -07:00
mezz 1222637e92 Fix #1077 Improve humus checks for logs and saplings 2016-05-01 09:41:19 -07:00
mezz b97151c56b Close #940 Improve backpack configs, allow regex oreDict names 2016-05-01 09:19:25 -07:00
Nedelosk 24979f18f6 Fix #1150 and add ISpriteRegistrer 2016-05-01 15:44:10 +02:00
Nedelosk efd4a33bbb Fix #1151 2016-05-01 13:23:11 +02:00
Nedelosk 5dc95864a6 Fix cocoon bounding boxs 2016-05-01 01:08:05 +02:00
Nedelosk 8f68f49759 Add new coccon models and improve IAlleleCoocon 2016-05-01 01:06:12 +02:00
mezz cc34078ab4 Clean up Greenhouse door properties 2016-04-30 02:33:06 -07:00
mezz 1d8f2dae66 Use Translator.java for all translation 2016-04-30 02:32:44 -07:00
mezz 798b17fa03 Fix bee minecart names in WAILA 2016-04-29 17:46:37 -07:00
mezz feda5834b0 Fix engine rendering causing OpenGL state issues 2016-04-29 17:32:34 -07:00
mezz 84877ab1cf Close #1101 allow setting the health of IIndividualLiving 2016-04-29 16:45:18 -07:00
Nedelosk 1d676bc3f1 Revert "Make the ledger open and close move more smoothly"
This reverts commit f4787efdad.
2016-04-29 21:47:41 +02:00
Nedelosk f4787efdad Make the ledger open and close move more smoothly 2016-04-29 21:45:16 +02:00
Nedelosk cf73635e92 Fix Buildcraft integration, Fix #1130 2016-04-29 21:22:39 +02:00
Nedelosk 5e75430526 Update Buildcraft API 2016-04-29 21:11:45 +02:00
Nedelosk eba8fb8c69 Clean Up 2016-04-29 21:02:43 +02:00
Nedelosk 3cfc158875 Move Icon sprites in to the gui folder and particles sprites in to the entity folder and Fix #1143 2016-04-29 21:02:13 +02:00
Nedelosk 43ac71b022 Fix #1147, Fix #1146 2016-04-29 20:02:24 +02:00
mezz 9e33648920 Fix crash from waila "harvesting" tree leaves before it syncs 2016-04-29 00:06:19 -07:00
mezz 641dea32ac Fix #1145 blocks missing localization 2016-04-28 23:46:27 -07:00
mezz 09aa0ecd1c Merge pull request #1149 from Vexatos/mc-1.8.9
Improved multiblock error messages.
2016-04-28 23:02:54 -07:00
Vexatos 01b1a9a33a Improved multiblock error messages.
For ForestryMC/Forestry-Localization#180.
2016-04-29 07:57:54 +02:00
mezz 6460eb5624 Delete TileBeehouse.java 2016-04-28 22:52:00 -07:00
mezz 8d20833b78 Delete IMachinePropertiesTESR.java 2016-04-28 22:51:36 -07:00
mezz c4e52f8670 Add tooltip information for engines 2016-04-28 22:46:19 -07:00
mezz c95f70a677 fix Forestry modid in mcmod.info 2016-04-28 19:52:24 -07:00
mezz 08d543b2ef Close #1144 add IC2 compatibility back 2016-04-28 19:52:12 -07:00
Nedelosk 04173d6bcf Merge branch 'mc-1.8.9' of https://github.com/ForestryMC/ForestryMC into mc-1.8.9 2016-04-28 10:23:24 +02:00
Nedelosk db20469cb7 Fix #1140, #1139, #1141 2016-04-28 10:23:06 +02:00
mezz 6820d31b31 Fix #1142 JEI [+] button integration with worktable 2016-04-27 23:20:33 -07:00
Nedelosk 04bcdfd8b0 Add Item Mesh Definition for cocoon item 2016-04-27 12:21:58 +02:00
Nedelosk 2d4a98b138 Merge branch 'mc-1.8.9' of https://github.com/ForestryMC/ForestryMC into mc-1.8.9 2016-04-27 12:07:09 +02:00
Nedelosk 4f239590fb Clean Up and Add Cocoon Item 2016-04-27 12:06:50 +02:00
mezz 1b24ba1e5c Use GlStateManager, fix up OpenGL issues 2016-04-26 18:32:31 -07:00
mezz f49cea199e Fix Forestry allele keys 2016-04-26 17:10:41 -07:00
mezz fe61f40179 Fix blend function of particles to match Minecraft's implementation 2016-04-26 17:01:36 -07:00
mezz 2fe2d9f895 Remove escritoire note count localization requirement 2016-04-26 16:44:14 -07:00
mezz 64cf622ccf Use names for Electron Tube UIDs instead of meta values 2016-04-26 16:31:26 -07:00
mezz 47a4bb70e0 Update lang 2016-04-26 16:16:05 -07:00
mezz 9bc61a891d Fix comment in TileHive 2016-04-26 16:15:27 -07:00
Nedelosk 39dc7dbe5e Merge branch 'mc-1.8.9' of https://github.com/ForestryMC/ForestryMC into mc-1.8.9 2016-04-26 16:03:50 +02:00
mezz 2f65545c6b Fix HiveBeeHousingInventory not voiding bee products 2016-04-25 21:17:04 -07:00
Nedelosk 7ca28d4d10 Improve the greenhouse controller 2016-04-25 20:40:55 +02:00
Nedelosk 080dd93dc2 Add cocoon material 2016-04-25 17:32:52 +02:00
mezz f9eeb8a1d8 Fix scoop orientation in first-person 2016-04-24 23:44:40 -07:00
mezz c7b94cc8af Make hive bees aggressive, add Bee Smoker item to calm them 2016-04-24 23:22:16 -07:00
mezz 801d8f2752 Make bee particles venture out and return home 2016-04-24 23:22:15 -07:00
Nedelosk 5be265374b Fix greenhouse 2016-04-24 20:59:27 +02:00
mezz 74c9fb57e9 Add JEI recipe integration for the Rainmaker 2016-04-23 23:15:24 -07:00
mezz 1ea86eb343 Add item descriptions for the Apiarist Suit, Habitat Locator, and Scoop 2016-04-23 22:25:56 -07:00
mezz f7ad61a2f3 Add better documentation for Frames 2016-04-23 22:10:59 -07:00
mezz 9f66b811c9 Fix tooltip rendering 2016-04-23 19:03:30 -07:00
mezz e775b5ec5a Pack fences into fewer block IDs 2016-04-23 18:17:15 -07:00
mezz af30ecd03b Add better debugging for WoodItemAccess 2016-04-23 18:17:03 -07:00
mezz f4f022c250 Close #1114 add palm doors 2016-04-18 14:56:28 -07:00
mezz b0cc323b87 #1114 slightly improve some of the door item icons 2016-04-15 22:23:28 -07:00
mezz 23826adafd #1114 Add wood doors 2016-04-15 19:20:53 -07:00
mezz b4d2b4ec7e Update to latest Forge 2016-04-12 17:35:29 -07:00
mezz 187a37643b Fix mis-capitalized file names 2016-04-12 17:34:48 -07:00
Nedelosk 4dfa1cec85 Add buildcraft api and move the apis in the api folder 2016-04-03 01:35:04 +02:00
Nedelosk 17d2105aff Add buildcraft api and move the apis in the api folder 2016-04-03 01:34:27 +02:00
Nedelosk f6daefe255 Fix a server bug 2016-04-01 01:05:01 +02:00
Nedelosk a401995e7e Fix a alvery bug 2016-04-01 00:28:31 +02:00
Nedelosk d794207dae Fix a butterfly mate bug 2016-03-31 21:40:45 +02:00
Nedelosk c5fc804bfa CleanUp 2016-03-31 02:04:29 +02:00
Nedelosk cf23644f45 Add cocoon world genartion with config entry(default false) and add cocoon loot and a greenhouse butterfly hatch 2016-03-30 00:48:19 +02:00
Nedelosk bc0d105730 Add a butterfly spawn rarity config entry 2016-03-28 03:15:48 +02:00
Nedelosk 0349890ddd Make the cocoonprovider to a allele 2016-03-26 17:38:50 +01:00
Nedelosk 31bd519eaf Fix hive gen 2016-03-26 13:31:36 +01:00
Nedelosk 6fbbb508cb Clean Up 2016-03-26 13:29:00 +01:00
Nedelosk 8a40dd6d27 Integrate the terrain in the tree gen helper 2016-03-26 13:28:13 +01:00
Nedelosk 1c1dd4918a Clean Up 2016-03-26 11:34:32 +01:00
Nedelosk b0b501a0ff Fix cocoons and add silk butterfly 2016-03-26 11:27:52 +01:00
Nedelosk 39c6e52d73 Update the butterfly mutations 2016-03-26 09:10:52 +01:00
Nedelosk 5b42b5fbae Add cocoons and fix bugs 2016-03-26 00:50:51 +01:00
mezz c4f447aa67 Fix #1117 Radioactive bee effect can bypass apiarist suit
(cherry picked from commit 4a2af4743f)

Conflicts:
	gradle.properties
2016-03-22 12:36:28 -07:00
Nedelosk 65d9c1dee6 Fix a greenhouse bug 2016-03-20 15:29:14 +01:00
Nedelosk cbcadfbba7 Add greenhouse recipes 2016-03-20 15:15:58 +01:00
Nedelosk b3a2d6cf84 Add recipes to fance gates and add fance gates to the wooditemaccess 2016-03-20 12:58:19 +01:00
Nedelosk 2442a2534a Fix add fence gates 2016-03-20 11:02:30 +01:00
Nedelosk 9f62f1f853 Add fence gates 2016-03-20 09:17:09 +01:00
Nedelosk 806b5121a8 Change the biome temperature and rainfall to ForestryAPI.climateManager.getTemperature and ForestryAPI.climateManager.getHumidity 2016-03-19 21:45:11 +01:00
Nedelosk 336d388b4b Improve greenhouse api and add events 2016-03-19 19:49:45 +01:00
Nedelosk 7924e9fa83 Fix hive item names 2016-03-19 17:20:30 +01:00
Nedelosk 8fea137a8b Fix #1106 Add IItemHandler Capability to TileForestry 2016-03-19 16:56:09 +01:00
Nedelosk fa30244c5e Fix #1103 The papaya and the date palm sapling item place not sapling block 2016-03-19 16:53:20 +01:00
Nedelosk cd4061b1fe Add clima manager and add greenhouse controller to multiblock logic factory 2016-03-19 16:11:22 +01:00
Nedelosk a828c6a006 Fix 2016-03-19 15:24:27 +01:00
Nedelosk 19421f7f22 Fix #1104 2016-03-19 15:20:21 +01:00
mezz 007c036f54 Fix some sided issues for running on server 2016-03-18 19:26:00 -07:00
mezz ddbc5e96f1 Use ISpeciesType instead of a raw int 2016-03-18 19:25:53 -07:00
mezz 9c81817baa Fix spelling of Sequoia assets 2016-03-18 19:25:52 -07:00
mezz f1f87d638d Try to fix capitalization issue in git 2016-03-18 19:03:33 -07:00
Nedelosk 27d6cf1219 Fix greenhouse door logic 2016-03-19 01:47:38 +01:00
Nedelosk 0f3e63ed20 Clean up and greenhouse door logic 2016-03-19 01:40:52 +01:00
Nedelosk 252a08f416 Add missing files 2016-03-18 23:56:20 +01:00
Nedelosk a0fb568144 Add Greenhous Helper and State 2016-03-18 23:54:36 +01:00
Nedelosk eebd9c6ecf Add greenhouse logics 2016-03-18 19:29:08 +01:00
Nedelosk ad69242a40 Fix farm tiles 2016-03-17 22:08:39 +01:00
Nedelosk 4d2135aae8 Add default camouflage block and clean up 2016-03-17 20:59:24 +01:00
Nedelosk 7518722ac8 Merge pull request #1108 from ForestryMC/Greenhouse
Add greenhouse multiblock and add IItemHandler integration from CovertJaguar
2016-03-17 19:57:34 +01:00
Nedelosk 248466bd91 Fix lang module 2016-03-17 19:54:20 +01:00
Nedelosk 927295ad40 Add language for greenhouse 2016-03-17 19:46:42 +01:00
Nedelosk 45e18af1d3 Merge branch 'Greenhouse' of https://github.com/ForestryMC/ForestryMC into Greenhouse 2016-03-17 19:37:07 +01:00
Nedelosk 3eaf9d4d30 Fix camouflage and add agriculture tab 2016-03-17 19:36:21 +01:00
CovertJaguar 8d549e14e6 decreaseStackInSlot() should not simulate 2016-03-17 10:31:58 -07:00
CovertJaguar 927a13883c Make StackFilter static methods public 2016-03-17 10:30:53 -07:00
Nedelosk 86a93b29c0 Add greenhouse hatch and add IItemHandler integreation, thanks to CovertJaguar 2016-03-16 23:20:33 +01:00
Nedelosk 3d25bd8626 Add sprinkler model 2016-03-14 23:30:43 +01:00
Nedelosk bde92c4afc Add camouflage system, add greenhouse door and clean up 2016-03-13 21:00:45 +01:00
Nedelosk 7238886d00 Improve greenhouse multiblock 2016-03-13 01:30:47 +01:00
Nedelosk 9a0e5dc3e3 Add Basic Greenhouse 2016-03-12 21:43:13 +01:00
Nedelosk c28c1c4298 Fix Alveary 2016-03-12 17:49:56 +01:00
mezz dd65d083cc #1091 begin clean up for Alveary
Still needs to visually update when slabs are added or removed to the top
2016-03-12 01:07:01 -08:00
mezz e703536d57 Fix #1082 Leaf items have the wrong colors 2016-03-11 22:43:44 -08:00
mezz 886591f710 Fix concurrency issues in ModelBaker 2016-03-11 22:12:05 -08:00
mezz e8d0e92b5c Fix case-sensitive file names 2016-03-11 21:20:08 -08:00
mezz a192c1ce49 Fix fruit pods 2016-03-11 20:21:52 -08:00
mezz d5a45a39eb Revert "Register render models and states directly instead of scanning GameData"
This reverts commit 72c0093856.
2016-03-10 21:02:36 -08:00
mezz 72c0093856 Register render models and states directly instead of scanning GameData 2016-03-10 19:13:25 -08:00
Nedelosk 4068fc9e99 Fix Nullable Import 2016-03-10 16:56:26 +01:00
mezz 43cf636096 Fix #1094 Leaves crash. Split decorative leaves into their own block 2016-03-10 03:34:57 -08:00
mezz ea64436f28 Fix network threading and world access 2016-03-10 01:09:08 -08:00
mezz 9b82c46517 Fix issues with double slab pickBlock 2016-03-10 00:41:45 -08:00
mezz eae8f719a7 Fix broken block registration 2016-03-09 23:56:15 -08:00
mezz 0049d1e20d Convert woods to normal blocks, no tile entities 2016-03-09 23:47:58 -08:00
Nedelosk ff038cc468 Fix WidgetFluidTank 2016-03-07 08:06:30 +01:00
mezz 70c5e851c2 Clean up liquids and liquid containers. Use Forge's universal bucket 2016-03-06 14:53:19 -08:00
Nedelosk 83e01c71a2 Clean Up 2016-03-06 23:20:03 +01:00
mezz 0b31054a58 Clean up uses of Blocks.air 2016-03-06 10:32:29 -08:00
mezz 4677ae7d54 Fix logs, load order and GameMode loading 2016-03-04 03:54:32 -08:00
mezz 92b1f85d84 Clean up bee nocturnal and rain tolerance 2016-03-04 03:53:44 -08:00
mezz 6e3c28e07e Clean up hive drops API 2016-03-04 03:09:57 -08:00
mezz 2d4c180389 Clean up backpack API 2016-03-04 02:38:23 -08:00
mezz 039af049aa Tidy villager bee registration 2016-03-04 01:50:01 -08:00
mezz ec53b6d882 Clean up exception catching 2016-03-04 01:42:17 -08:00
mezz 5a78f97fcb Remove optifine/gregtech/bukkit warning from crash log reports 2016-03-04 01:02:53 -08:00
mezz ff076090e3 Move plugins to their respective folders 2016-03-04 00:44:50 -08:00
mezz 626d0d8fb5 Use the generic types now available in 1.8+. remove warning suppressions 2016-03-04 00:36:47 -08:00
mezz 2ddad6ec37 Hide some items from JEI 2016-03-04 00:08:40 -08:00
mezz 8b9c48bf5c Remove unused genetic types 2016-03-03 23:23:43 -08:00
mezz 6d2313b251 Rename species helpers to species roots 2016-03-03 22:11:39 -08:00
mezz 545b051dd4 Use ITree for pollen 2016-03-03 22:07:27 -08:00
mezz 86e3ae87fd Save the owner NBT without gameprofile properties 2016-03-03 22:01:33 -08:00
mezz 5a901ffa36 Make SpeciesCustom classes into SpeciesBuilder 2016-03-03 21:46:21 -08:00
mezz efcab41e04 Revert "Use generics for Chromosome type, begin unifying code"
This reverts commit 43e41034f6.

Conflicts:
	src/main/java/forestry/api/arboriculture/IAlleleTreeSpecies.java
	src/main/java/forestry/api/genetics/IAlleleSpeciesCustom.java
	src/main/java/forestry/core/proxy/ProxyRenderClient.java
2016-03-03 20:50:38 -08:00
Nedelosk 87f2dc0a0a Fix #1084 and Remove New Bee House Model 2016-03-02 21:59:45 +01:00
Nedelosk 4b2d7594cb Improve BlockBase and Add new Bee House and Apiary Model 2016-02-28 20:27:10 +01:00
Nedelosk e0ea0c1073 Fix ModelBlockOverlay 2016-02-27 14:24:07 +01:00
Nedelosk e6669b0c60 Rename IAlleleComparable to IAlleleProperty 2016-02-27 13:29:16 +01:00
Nedelosk 339bbbe0f7 Cleanup, Fix Allele Propertys 2016-02-27 13:27:23 +01:00
mezz 2f711b0493 Cleanup, move ILeafSpriteProvider around 2016-02-27 01:31:24 -08:00
mezz 315e5ba1cf Fix honeycomb colors 2016-02-27 01:02:34 -08:00
mezz 7d251d32dd Fix crashing from bee particle effects 2016-02-27 00:34:15 -08:00
mezz 43e41034f6 Use generics for Chromosome type, begin unifying code 2016-02-27 00:14:22 -08:00
mezz a8270ef365 Remove lots of legacy handling code 2016-02-26 21:49:04 -08:00
Nedelosk 75bbf7e6a7 Improve Model Baker and Clean Up 2016-02-26 18:08:25 +01:00
mezz 7b0259a343 Cleanup Log, loading from nbt, remove Version check 2016-02-25 19:18:50 -08:00
mezz 14c42afd29 Automatic code reformatting. Makes everything formatted the same way 2016-02-25 19:18:50 -08:00
mezz 406392e7f7 Begin code cleanup for generics, types, warnings, nulls, and spelling 2016-02-25 19:11:29 -08:00
Nedelosk c9b2f7bd3e Model System Clean Up 2016-02-25 21:44:36 +01:00
mezz 78d836bc1f Remove most deprecated things 2016-02-25 04:45:19 -08:00
mezz 65436a4e70 Use ForestryPlugin annotation to discover plugins 2016-02-25 04:17:33 -08:00
mezz c6ab58de22 Merge pull request #1080 from Nedelosk/mc-1.8.9
Fix Crate Models and other Models
2016-02-24 18:09:37 -08:00
Nedelosk 28502d23e0 Fix Crate Models and other Models 2016-02-24 21:57:20 +01:00
mezz f85b534389 Move JEI items out of the way of ledgers 2016-02-22 23:57:06 -08:00
mezz ab0d1cf7fc Split block type from properties, combine definition and properties 2016-02-22 23:39:10 -08:00
mezz 0672035596 Merge branch 'dev' into mc-1.8.9
# Conflicts:
#	gradle.properties
#	src/main/java/forestry/plugins/compat/PluginRotaryCraft.java
2016-02-22 16:52:30 -08:00
mezz fbae1b7622 Merge pull request #1074 from Nedelosk/mc-1.8.9
Fix Crate Models
2016-02-21 22:21:13 -08:00
mezz 372e17b488 Merge pull request #1072 from Nedelosk/patch-1
Remove unused Sub Modules
2016-02-21 22:18:37 -08:00
Nedelosk 96170b5f21 Fix Crate Models 2016-02-21 18:56:06 +01:00
Nedelosk f9a8a294b8 Remove unused Sub Modules 2016-02-21 11:22:09 +01:00
mezz 48c8c016b4 Tidy up JEI integration 2016-02-20 23:14:56 -08:00
mezz 8da0c0dc95 Get things compiling.
Move ForestryAPI into the Forestry project instead of as a submodule
Include the new RF API
Remove code for mods that have not yet ported to 1.8.9 (add it back later)
Bump version to 5.0.0
2016-02-20 19:51:49 -08:00
mezz 73812d8765 Merge branch 'dev' into mc-1.8.9
# Conflicts:
#	gradle.properties
#	src/main/java/forestry/arboriculture/render/IconProviderWood.java
#	src/main/java/forestry/core/access/AccessHandler.java
#	src/main/java/forestry/core/multiblock/MultiblockTileEntityForestry.java
#	src/main/java/forestry/farming/logic/FarmLogicOrchard.java
#	src/main/java/forestry/plugins/compat/PluginGrowthCraft.java
#	src/main/java/forestry/plugins/compat/PluginHarvestCraft.java
#	src/main/java/forestry/plugins/compat/PluginPlantMegaPack.java
#	src/main/java/forestry/plugins/compat/PluginWitchery.java
2016-02-19 19:14:59 -08:00
Nedelosk 801c6dff92 Clean Up and Add Comments
A clean up and I add crates with the new blocks from 1.8.
2016-01-24 12:41:47 +01:00
Nedelosk 02ec97b031 Clean Up and Bug Fixes 2016-01-23 17:17:20 +01:00
Nedelosk 6390a0cd11 Fix JEI and remove Forge test mods 2016-01-23 00:19:21 +01:00
Nedelosk 5a3850c264 First 1.8.9 Version 2016-01-22 19:33:35 +01:00
Nedelosk d35cc1df09 Update Gradle 2016-01-13 21:55:25 +01:00
3890 changed files with 165255 additions and 122103 deletions

No files matched your search

-2
View File
@@ -1,2 +0,0 @@
# Ignore spotlessApply reformat
94aa9346b1811eff7e67820b75d5098e3f83448d
-44
View File
@@ -1,44 +0,0 @@
* text eol=lf
*.[jJ][aA][rR] binary
*.[pP][nN][gG] binary
*.[jJ][pP][gG] binary
*.[jJ][pP][eE][gG] binary
*.[gG][iI][fF] binary
*.[tT][iI][fF] binary
*.[tT][iI][fF][fF] binary
*.[iI][cC][oO] binary
*.[sS][vV][gG] text
*.[eE][pP][sS] binary
*.[xX][cC][fF] binary
*.[kK][aA][rR] binary
*.[mM]4[aA] binary
*.[mM][iI][dD] binary
*.[mM][iI][dD][iI] binary
*.[mM][pP]3 binary
*.[oO][gG][gG] binary
*.[rR][aA] binary
*.7[zZ] binary
*.[gG][zZ] binary
*.[tT][aA][rR] binary
*.[tT][gG][zZ] binary
*.[zZ][iI][pP] binary
*.[tT][cC][nN] binary
*.[sS][oO] binary
*.[dD][lL][lL] binary
*.[dD][yY][lL][iI][bB] binary
*.[pP][sS][dD] binary
*.[tT][tT][fF] binary
*.[oO][tT][fF] binary
*.[pP][aA][tT][cC][hH] -text
*.[bB][aA][tT] text eol=crlf
*.[cC][mM][dD] text eol=crlf
*.[pP][sS]1 text eol=crlf
*[aA][uU][tT][oO][gG][eE][nN][eE][rR][aA][tT][eE][dD]* binary
+5
View File
@@ -0,0 +1,5 @@
Thank you for reporting!
For issues:
* Try the latest version, it may have fixed the issue already.
* If you crashed, please paste the crash log to [gist](https://gist.github.com/) and link it here.
-13
View File
@@ -1,13 +0,0 @@
name: Build and test
on:
pull_request:
branches: [ master, main, release/** ]
push:
branches: [ master, main, release/** ]
jobs:
build-and-test:
uses: GTNewHorizons/GTNH-Actions-Workflows/.github/workflows/build-and-test.yml@master
secrets: inherit
-17
View File
@@ -1,17 +0,0 @@
name: Optimize images
on:
pull_request:
branches: [ master, main, release/** ]
paths:
- "**/*.png"
push:
branches: [ master, main, release/** ]
paths:
- "**/*.png"
jobs:
optimize-images:
uses: GTNewHorizons/GTNH-Actions-Workflows/.github/workflows/optimize-images.yml@master
secrets: inherit
-14
View File
@@ -1,14 +0,0 @@
name: Release tagged build
on:
push:
tags: [ '*' ]
permissions:
contents: write
jobs:
release-tags:
uses: GTNewHorizons/GTNH-Actions-Workflows/.github/workflows/release-tags.yml@master
secrets: inherit
+23 -33
View File
@@ -1,33 +1,23 @@
.gradle
.settings
/.idea/
/.vscode/
/run/
/build/
/eclipse/
.classpath
.project
/bin/
/config/
/crash-reports/
/logs/
options.txt
/saves/
usernamecache.json
banned-ips.json
banned-players.json
eula.txt
ops.json
server.properties
servers.dat
usercache.json
whitelist.json
/out/
*.iml
*.ipr
*.iws
src/main/resources/mixins.*.json
*.bat
*.DS_Store
!gradlew.bat
layout.json
# everything
/*
# folders
!/.github
!/forestry_techne
!/gradle/wrapper
!/src
# files
!/.gitignore
!/CLA.txt
!/CONTRIBUTING.md
!/LICENSE.txt
!/license-header.txt
!/README.md
!/gradle.properties
!/build.gradle
!/build.xml
!/gradlew
!/gradlew.bat
!/cla-signatures.txt
!/formatting-settings.jar
-48
View File
@@ -1,48 +0,0 @@
# ForestryMC
Changelog of ForestryMC.
### [#8 Fix NPE on crafting in worktable](https://github.com/GTNewHorizons/ForestryMC/pull/8)
**Merge pull request #8 from GTNewHorizons/worktable-npe**
* Fix NPE on crafting in worktable
[4c7c7c34388aebd](https://github.com/GTNewHorizons/ForestryMC/commit/4c7c7c34388aebd)
by Martin Robertz *2021-04-06 15:05:20*
### No issue
**Fix NPE on crafting in worktable**
[621208393e64d97](https://github.com/GTNewHorizons/ForestryMC/commit/621208393e64d97)
by Glease *2021-04-06 14:46:39*
### [#6 Ic2 crop module](https://github.com/GTNewHorizons/ForestryMC/pull/6)
**Ic2 crop module (#6)**
* Added IC2-Crop-Module
* Changed Lang repo
* updated lang submodule
[d2545b7a5990cf2](https://github.com/GTNewHorizons/ForestryMC/commit/d2545b7a5990cf2)
by bartimaeusnek *2020-12-24 20:15:03*
### [#7 Dirty fix for BQ3 crafting quest not triggering](https://github.com/GTNewHorizons/ForestryMC/pull/7)
**Merge pull request #7 from GTNewHorizons/bq3_compat**
* Dirty fix for BQ3 crafting quest not triggering
[d0254997472c5be](https://github.com/GTNewHorizons/ForestryMC/commit/d0254997472c5be)
by Martin Robertz *2021-01-22 16:15:58*
### No issue
**bump version**
[98c0b66b6fbe598](https://github.com/GTNewHorizons/ForestryMC/commit/98c0b66b6fbe598)
by DreamMasterXXL *2021-01-29 19:11:09*
**Merge branch 'IC2-Crop-Module' into GTNH-Fixes**
[5b61261d69d541b](https://github.com/GTNewHorizons/ForestryMC/commit/5b61261d69d541b)
by DreamMasterXXL *2021-01-29 19:05:41*
**Dirty fix for BQ3 crafting quest not triggering**
[7320ddb44f63bfd](https://github.com/GTNewHorizons/ForestryMC/commit/7320ddb44f63bfd)
by Glease *2021-01-22 14:41:32*
Regular → Executable
View File
File mode changed.
-3
View File
@@ -1,3 +0,0 @@
# Any Github changes require admin approval
/.github/** @GTNewHorizons/admin
+29
View File
@@ -0,0 +1,29 @@
How to submit a bug report to Forestry
====================================
Please make sure the bug has not already been reported by [searching the issues](https://github.com/ForestryMC/ForestryMC/issues?q=is%3Aissue).
If you can, see if the bug still happens with the latest unstable build.
[The latest unstable builds are available here](http://jenkins.ic2.player.to/job/Forestry_Dev/)
For crashes, you must post a link to the full crash report.
[gist.github.com](gist.github.com) or [pastebin.com](www.pastebin.com) are good places to upload them.
Full crash reports are located in [the minecraft data folder](http://hopper.minecraft.net/help/finding-minecraft-data-folder/), in "crash-reports".
Thank you for reporting bugs!
How to contribute to Forestry
====================================
### Contributor License Agreement
Before pull requests can be accepted, the contributor needs to sign a contributor license agreement. (Essentially giving a license for using his code and/or media and for re-licensing it, for details read the agreement linked below.)
### How do I sign?
To keep the hassle for everyone involved to a minimum, Forestry uses CLAHub to manage the agreements. To get started, <a href="https://www.clahub.com/agreements/ForestryMC/ForestryMC">sign the Contributor License Agreement</a>.
### Why is this needed?
Without CLAs it at some point becomes essentially impossible to change the license of a project which accepts contributions from third parties. Without an explicit agreement every contributor would still own the copyright to his code. So as long as it (or parts of it) remain in the code base, he would have to agree to every license change. If enough time has passed, there may be dozens, perhaps even hundreds of contributors involved and it will be very hard to track down each and every one of them and get them to agree on a new license.
This would make it impossible to change the license to a more permissive one at a later date, so the code would be locked into CC BY-NC-ND 3.0 until it passes into the public domain about a hundred years from now. This situation is to be avoided and that’s why you are being bothered with this CLA.
Regular → Executable
+676 -1
View File
@@ -1,7 +1,7 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -163,3 +163,678 @@ whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
Regular → Executable
+21 -6
View File
@@ -1,21 +1,34 @@
Forestry
[Forestry](https://minecraft.curseforge.com/projects/forestry/files)
====================================
### What is it?
This is the GTNH fork of Forestry for 1.7.10. Do not report any issues to the original Forestry team. This fork is maintained by the GTNH team and is not supported by the original Forestry team.
Forestry is a modification for the game Minecraft and known primarily for its farms and bees.
### Homepage
[Wiki](http://forestry.sengir.net/)
[Latest Builds for 1.11.2/1.12](http://jenkins.ic2.player.to/job/Forestry_1.11/)
[![Discord](https://img.shields.io/discord/417745379258400778.svg?colorB=7289DA&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHYAAABWAgMAAABnZYq0AAAACVBMVEUAAB38%2FPz%2F%2F%2F%2Bm8P%2F9AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfhBxwQJhxy2iqrAAABoElEQVRIx7WWzdGEIAyGgcMeKMESrMJ6rILZCiiBg4eYKr%2Fd1ZAfgXFm98sJfAyGNwno3G9sLucgYGpQ4OGVRxQTREMDZjF7ILSWjoiHo1n%2BE03Aw8p7CNY5IhkYd%2F%2F6MtO3f8BNhR1QWnarCH4tr6myl0cWgUVNcfMcXACP1hKrGMt8wcAyxide7Ymcgqale7hN6846uJCkQxw6GG7h2MH4Czz3cLqD1zHu0VOXMfZjHLoYvsdd0Q7ZvsOkafJ1P4QXxrWFd14wMc60h8JKCbyQvImzlFjyGoZTKzohwWR2UzSONHhYXBQOaKKsySsahwGGDnb%2FiYPJw22sCqzirSULYy1qtHhXGbtgrM0oagBV4XiTJok3GoLoDNH8ooTmBm7ZMsbpFzi2bgPGoXWXME6XT%2BRJ4GLddxJ4PpQy7tmfoU2HPN6cKg%2BledKHBKlF8oNSt5w5g5o8eXhu1IOlpl5kGerDxIVT%2BztzKepulD8utXqpChamkzzuo7xYGk%2FkpSYuviLXun5bzdRf0Krejzqyz7Z3p0I1v2d6HmA07dofmS48njAiuMgAAAAASUVORK5CYII%3D)](https://discord.gg/49XNRJk)
For those interested in developement, you can also visit #forestry-dev.
### Building
The API and localization files reside in their own repository. It is pulled in automatically.
The localization files reside in their own repository. It is pulled in automatically.
You may want to adjust the "./gradle.properties" file to set your mc account as needed.
To setup, open a command line and run "gradlew setupDecompWorkspace" and "gradlew eclipse".
To setup, open a command line and run "gradlew setupDecompWorkspace". Then run the following depending on your IDE:
To package, open a command line and type "gradlew release".
Eclipse: "gradlew eclipse"
IntelliJ IDEA: "gradlew idea genIntellijRuns"
To package, open a command line and type "gradlew build".
For mod authors: the Forestry maven is located at http://maven.ic2.player.to/net/sengir/forestry/
### Notes
@@ -23,6 +36,8 @@ Beware of ugly code.
Bugfixes are generally welcome. If you want to contribute something which changes game mechanics, please talk to someone with commit privileges first. Nothing is more frustrating than putting a lot of work and effort into a new game mechanic and then having the PR rejected because it doesn’t fit gameplay-wise.
**If you submit a PR you must accept the [Contributor License Agreement](https://cla-assistant.io/ForestryMC/ForestryMC). There is no way around that, since otherwise changing the license later - even to something more permissive! - , becomes close to impossible.**
### License & Copyright
Forestry is (c) 2011 - 2014 SirSengir and licensed under LGPL v3. See the LICENSE.txt for all the gory details or go to http://www.gnu.org/licenses/lgpl-3.0.txt for more information. Forestry also contains code contributed by CovertJaguar, Player, MysteriousAges, Binnie, RichardG, cpw, the GTNH Team, and others.
Forestry is (c) 2011 - 2014 SirSengir and licensed under LGPL v3. See the LICENSE.txt for all the gory details or go to http://www.gnu.org/licenses/lgpl-3.0.txt for more information. Forestry also contains code contributed by CovertJaguar, Player, MysteriousAges, Binnie, RichardG, cpw and others.
+166 -2
View File
@@ -1,5 +1,169 @@
//version: 1707058017
buildscript {
repositories {
jcenter()
maven { url = "http://files.minecraftforge.net/maven" }
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
classpath "gradle.plugin.se.bjurr.gitchangelog:git-changelog-gradle-plugin:1.47"
}
}
plugins {
id 'com.gtnewhorizons.gtnhconvention'
id "com.matthewprenger.cursegradle" version "1.0.9"
}
apply plugin: 'net.minecraftforge.gradle.forge'
apply plugin: 'idea'
apply plugin: 'maven'
apply plugin: "se.bjurr.gitchangelog.git-changelog-gradle-plugin"
version = version_major + '.' + version_minor + '.' + version_patch + '.' + getBuildNumber()
if (project.hasProperty('buildQualifier')) {
version = project.version + '-' + project.buildQualifier
}
group = "net.sengir.forestry" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "forestry_" + mcversion
ext.dirDest = './build/dist'
// java version
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
minecraft {
version = mcversion + "-" + forgeversion
runDir = "run"
mappings = mcp_mappings
replace '@VERSION@', project.version
replace '@BUILD_NUMBER@', getBuildNumber()
}
repositories {
maven {
url = 'http://maven.mcmoddev.com'
}
maven {
url "http://dvs1.progwml6.com/files/maven"
}
maven {
name = "ic2"
url = "http://maven.ic2.player.to/"
}
maven {
name = "Modmuss50"
url = "http://maven.modmuss50.me"
}
maven {
url = 'https://mod-buildcraft.com/maven'
}
}
dependencies {
deobfProvided "net.darkhax.tesla:Tesla-${tesla_mcversion}:${tesla_version}"
deobfProvided "mezz.jei:jei_${jei_mcversion}:${jei_version}:api"
runtimeOnly "mezz.jei:jei_${jei_mcversion}:${jei_version}"
deobfProvided "net.industrial-craft:industrialcraft-2:${ic2_version}:api"
deobfProvided "TechReborn:TechReborn-${TR_mcversion}:${TR_version}:api"
deobfProvided "com.mod-buildcraft:buildcraft-api:${buildcraft_version}"
}
configurations {
api
compile.extendsFrom api
}
processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
// replace version and mcversion
expand 'version': project.version, 'mcversion': project.minecraft.version
}
// copy everything else, thats not the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
exclude '**/*.md'
}
// Move access transformers to META-INF
rename '(.+_at.cfg)', 'META-INF/$1'
}
// prevent java 8's strict doclint for javadocs from failing builds
allprojects {
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
}
jar {
manifest {
attributes 'FMLAT': 'forestry_at.cfg'
}
}
task sourcesJar(type: Jar) {
from zipTree('build/retromapping/retromappedReplacedMain.jar') // Not sure if this is how Abrar designed it, but grab the remapped src
classifier = 'sources'
}
task apiJar(type: Jar) {
// TODO: when FG bug is fixed, remove allSource from the api jar.
// https://github.com/MinecraftForge/ForgeGradle/issues/369
// Gradle should be able to pull them from the -sources jar.
from sourceSets.main.allSource
from sourceSets.main.output
include 'forestry/api/**'
classifier = 'api'
}
artifacts {
archives sourcesJar
archives apiJar
}
uploadArchives {
repositories {
if (project.hasProperty('mavenDir')) {
mavenDeployer {
repository(url: "file://" + mavenDir)
}
} else {
println 'Archives upload disabled, mavenDir in gradle.properties is missing.'
}
}
}
def getBuildNumber() {
return "$System.env.BUILD_NUMBER" != "null" ? "$System.env.BUILD_NUMBER" : "0"
}
task makeChangelog(type: se.bjurr.gitchangelog.plugin.gradle.GitChangelogTask) {
filePath = "changelog.html"
untaggedName = "Current release ${project.version}"
fromCommit = "5a3850c2642e535656d090d1473054d5fa8d3331"
toRef = "HEAD"
templateContent = file('changelog.mustache').getText('UTF-8')
}
curseforge {
apiKey = project.hasProperty('curseforge_apikey') ? project.curseforge_apikey : '0'
project {
id = curse_project_id
changelog = file('changelog.html')
changelogType = 'html'
releaseType = 'beta'
}
}
afterEvaluate {
tasks.curseforge59751.dependsOn.add(makeChangelog)
}
+9
View File
@@ -0,0 +1,9 @@
Please help the Forestry project by <a href="https://github.com/ForestryMC/ForestryMC/issues">reporting issues here.</a><br/>
{{#tags}}
<h3>{{name}}</h3>
<ul>
{{#commits}}
<li>{{{message}}} - {{authorName}}</li>
{{/commits}}
</ul>
{{/tags}}
+1
View File
@@ -4,3 +4,4 @@ GenuineSounds;[email protected];2015-02-26
airbreather;[email protected];2015-04-10
ganymedes01;[email protected];2015-05-27
infinityraider;theoneandonlyraider@gmail;com;2015-10-03
girafistudios;[email protected];2016-06-02
-13
View File
@@ -1,13 +0,0 @@
// Add your dependencies here
dependencies {
api("com.github.GTNewHorizons:GTNHLib:0.9.54:dev")
api('curse.maven:cofh-lib-220333:2388748')
compileOnlyApi('com.github.GTNewHorizons:Angelica:2.1.19:api')
devOnlyNonPublishable('com.github.GTNewHorizons:NotEnoughItems:2.8.107-GTNH:dev')
compileOnly('com.github.GTNewHorizons:inventory-tweaks:1.7.1:api')
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.57:api')
compileOnly('net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev')
compileOnly('curse.maven:craftguide-75557:2459320')
devOnlyNonPublishable('net.xonich.mc:NoHotbarNeeded:0.0.3:dev')
}
Binary file not shown.
+15 -237
View File
@@ -1,238 +1,16 @@
# ExampleMod tag to use as Blowdryer (Spotless, etc.) settings version, leave empty to disable.
# LOCAL to test local config updates.
gtnh.settings.blowdryerTag = 0.2.0
mcversion=1.12.2
forgeversion=14.23.4.2705
mcp_mappings=snapshot_20171003
curse_project_id=59751
# Human-readable mod name, available for mcmod.info population.
modName = Forestry
# Case-sensitive identifier string, available for mcmod.info population and used for automatic mixin JSON generation.
# Conventionally lowercase.
modId = Forestry
# Root package of the mod, used to find various classes in other properties,
# mcmod.info substitution, enabling assertions in run tasks, etc.
modGroup = forestry
# Whether to use modGroup as the maven publishing group.
# When false, com.github.GTNewHorizons is used.
useModGroupForPublishing = false
# Updates your build.gradle and settings.gradle automatically whenever an update is available.
autoUpdateBuildScript = false
# Version of Minecraft to target
minecraftVersion = 1.7.10
# Version of Minecraft Forge to target
forgeVersion = 10.13.4.1614
# Specify an MCP channel for dependency deobfuscation and the deobfParams task.
channel = stable
# Specify an MCP mappings version for dependency deobfuscation and the deobfParams task.
mappingsVersion = 12
# Defines other MCP mappings for dependency deobfuscation.
remoteMappings = https\://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/conf/
# Select a default username for testing your mod. You can always override this per-run by running
# `./gradlew runClient --username=AnotherPlayer`, or configuring this command in your IDE.
developmentEnvironmentUserName = Developer
# Enables modern Java syntax support. Valid values:
# - false: No modern syntax, Java 8 only
# - jabel: Jabel syntax-only support, compiles to J8 bytecode
# - jvmDowngrader: Full modern Java via JVM Downgrader (syntax + stdlib APIs)
# - modern: Native modern Java bytecode, no downgrading
enableModernJavaSyntax = jabel
# If set, ignores the above setting and compiles with the given toolchain. This may cause unexpected issues,
# and should *not* be used in most situations. -1 disables this.
# forceToolchainVersion = -1
# Target JVM version for JVM Downgrader bytecode downgrading.
# Only used when enableModernJavaSyntax = jvmDowngrader
# downgradeTargetVersion = 8
# Comma-separated list of Java versions for multi-release jar support (JVM Downgrader only).
# Classes will be available in META-INF/versions/N/ for each version N in this list.
# Default: "21,25" (J25+ gets native classes, J21-24 gets partial downgrade, J8-20 gets full downgrade).
# jvmDowngraderMultiReleaseVersions = 21,25
# Specifies how JVM Downgrader API stubs are provided. Options:
# - shade: Shade minimized stubs into the jar
# - gtnhlib: GTNHLib provides stubs at runtime (adds version constraint)
# - external: Another dependency provides stubs (no constraint, no warning)
# - (empty): Warning reminding you to configure stubs
# Note: 'shade' option requires you to verify license compliance, see: https://github.com/unimined/JvmDowngrader/blob/main/LICENSE.md
# jvmDowngraderStubsProvider =
# Enables injecting missing generics into the decompiled source code for a better coding experience.
# Turns most publicly visible List, Map, etc. into proper List<E>, Map<K, V> types.
enableGenericInjection = true
# Generate a class with a String field for the mod version named as defined below.
# If generateGradleTokenClass is empty or not missing, no such class will be generated.
# If gradleTokenVersion is empty or missing, the field will not be present in the class.
generateGradleTokenClass = forestry.Tags
# Name of the token containing the project's current version to generate/replace.
gradleTokenVersion = VERSION
# [DEPRECATED] Mod ID replacement token.
gradleTokenModId =
# [DEPRECATED] Mod name replacement token.
gradleTokenModName =
# [DEPRECATED] Mod Group replacement token.
gradleTokenGroupName =
# [DEPRECATED]
# Multiple source files can be defined here by providing a comma-separated list: Class1.java,Class2.java,Class3.java
# public static final String VERSION = "GRADLETOKEN_VERSION";
# The string's content will be replaced with your mod's version when compiled. You should use this to specify your mod's
# version in @Mod([...], version = VERSION, [...]).
# Leave these properties empty to skip individual token replacements.
replaceGradleTokenInFile =
# In case your mod provides an API for other mods to implement you may declare its package here. Otherwise, you can
# leave this property empty.
# Example value: (apiPackage = api) + (modGroup = com.myname.mymodid) -> com.myname.mymodid.api
apiPackage = api
# Specify the configuration file for Forge's access transformers here. It must be placed into /src/main/resources/META-INF/
# There can be multiple files in a space-separated list.
# Example value: mymodid_at.cfg nei_at.cfg
accessTransformersFile = forestry_at.cfg
# Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled!
usesMixins = false
# Set to a non-empty string to configure mixins in a separate source set under src/VALUE, instead of src/main.
# This can speed up compile times thanks to not running the mixin annotation processor on all input sources.
# Mixin classes will have access to "main" classes, but not the other way around.
separateMixinSourceSet =
# Adds some debug arguments like verbose output and class export.
usesMixinDebug = false
# Specify the location of your implementation of IMixinConfigPlugin. Leave it empty otherwise.
mixinPlugin =
# Specify the package that contains all of your Mixins. The package must exist or
# the build will fail. If you have a package property defined in your mixins.<modid>.json,
# it must match with this or the build will fail.
mixinsPackage =
# Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin!
# This parameter is for legacy compatibility only
# Example value: (coreModClass = asm.FMLPlugin) + (modGroup = com.myname.mymodid) -> com.myname.mymodid.asm.FMLPlugin
coreModClass =
# If your project is only a consolidation of mixins or a core mod and does NOT contain a 'normal' mod ( = some class
# that is annotated with @Mod) you want this to be true. When in doubt: leave it on false!
containsMixinsAndOrCoreModOnly = false
# Enables Mixins even if this mod doesn't use them, useful if one of the dependencies uses mixins.
forceEnableMixins = false
# If enabled, you may use 'shadowCompile' for dependencies. They will be integrated into your jar. It is your
# responsibility to check the license and request permission for distribution if required.
usesShadowedDependencies = false
# If disabled, won't remove unused classes from shadowed dependencies. Some libraries use reflection to access
# their own classes, making the minimization unreliable.
minimizeShadowedDependencies = true
# If disabled, won't rename the shadowed classes.
relocateShadowedDependencies = true
# Adds CurseMaven, Modrinth, and some more well-known 1.7.10 repositories.
includeWellKnownRepositories = true
# A list of repositories to exclude from the includeWellKnownRepositories setting. Should be a space separated
# list of strings, with the acceptable keys being(case does not matter):
# cursemaven
# modrinth
excludeWellKnownRepositories =
# Change these to your Maven coordinates if you want to publish to a custom Maven repository instead of the default GTNH Maven.
# Authenticate with the MAVEN_USER and MAVEN_PASSWORD environment variables.
# If you need a more complex setup disable maven publishing here and add a publishing repository to addon.gradle.
usesMavenPublishing = true
# Maven repository to publish the mod to.
# mavenPublishUrl = https\://nexus.gtnewhorizons.com/repository/releases/
# Publishing to Modrinth requires you to set the MODRINTH_TOKEN environment variable to your current Modrinth API token.
#
# The project's ID on Modrinth. Can be either the slug or the ID.
# Leave this empty if you don't want to publish to Modrinth.
modrinthProjectId =
# The project's relations on Modrinth. You can use this to refer to other projects on Modrinth.
# Syntax: scope1-type1:name1;scope2-type2:name2;...
# Where scope can be one of [required, optional, incompatible, embedded],
# type can be one of [project, version],
# and the name is the Modrinth project or version slug/id of the other mod.
# Example: required-project:fplib;optional-project:gasstation;incompatible-project:gregtech
# Note: UniMixins is automatically set as a required dependency if usesMixins = true.
modrinthRelations =
# Publishing to CurseForge requires you to set the CURSEFORGE_TOKEN environment variable to one of your CurseForge API tokens.
#
# The project's numeric ID on CurseForge. You can find this in the About Project box.
# Leave this empty if you don't want to publish on CurseForge.
curseForgeProjectId =
# The project's relations on CurseForge. You can use this to refer to other projects on CurseForge.
# Syntax: type1:name1;type2:name2;...
# Where type can be one of [requiredDependency, embeddedLibrary, optionalDependency, tool, incompatible],
# and the name is the CurseForge project slug of the other mod.
# Example: requiredDependency:railcraft;embeddedLibrary:cofhlib;incompatible:buildcraft
# Note: UniMixins is automatically set as a required dependency if usesMixins = true.
curseForgeRelations =
# Optional parameter to customize the produced artifacts. Use this to preserve artifact naming when migrating older
# projects. New projects should not use this parameter.
# customArchiveBaseName =
# Optional parameter to customize the default working directory used by the runClient* tasks. Relative to the project directory.
# runClientWorkingDirectory = run/client
# Optional parameter to customize the default working directory used by the runServer* tasks. Relative to the project directory.
# runServerWorkingDirectory = run/server
# Optional parameter to have the build automatically fail if an illegal version is used.
# This can be useful if you e.g. only want to allow versions in the form of '1.1.xxx'.
# The check is ONLY performed if the version is a git tag.
# Note: the specified string must be escaped, so e.g. 1\\.1\\.\\d+ instead of 1\.1\.\d+
# versionPattern =
# Uncomment to prevent the source code from being published.
# noPublishedSources = true
# Uncomment this to disable Spotless checks.
# This should only be uncommented to keep it easier to sync with upstream/other forks.
# That is, if there is no other active fork/upstream, NEVER change this.
# disableSpotless = true
# Uncomment this to disable Checkstyle checks (currently wildcard import check).
# disableCheckstyle = true
# Override the IDEA build type. Valid values are: "" (leave blank, do not override), "idea" (force use native IDEA build), "gradle"
# (force use delegated build).
# This is meant to be set in $HOME/.gradle/gradle.properties.
# e.g. add "systemProp.org.gradle.project.ideaOverrideBuildType=idea" will override the build type to be native build.
# WARNING: If you do use this option, it will overwrite whatever you have in your existing projects. This might not be what you want!
# Usually there is no need to uncomment this here as other developers do not necessarily use the same build type as you.
# ideaOverrideBuildType = idea
# Whether IDEA should run spotless checks when pressing the Build button.
# This is meant to be set in $HOME/.gradle/gradle.properties.
# ideaCheckSpotlessOnBuild = true
# Non-GTNH properties
org.gradle.configuration-cache = true
org.gradle.parallel = true
tesla_version=1.0.60
tesla_mcversion=1.12
jei_version=4.10.0.200
jei_mcversion=1.12.2
ic2_version=2.8.90-ex112
TR_mcversion=1.12.2
TR_version=2.13.2.561
buildcraft_version=7.99.17
version_major=5
version_minor=8
version_patch=1
-12
View File
@@ -1,12 +0,0 @@
#This file is generated by updateDaemonJvm
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/fa1e318c287360478e3c83a9a3ef1007/redirect
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/fa1e318c287360478e3c83a9a3ef1007/redirect
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/c2dd35c9d0aaf0ba6ad0791320f99dfc/redirect
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/e5810bd7fd1f8a586644409d395a7e55/redirect
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/fa1e318c287360478e3c83a9a3ef1007/redirect
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/7b3c4877c0749019e6805bb61e421497/redirect
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/8e1d9ee5d0f13e442218f6884a306da1/redirect
toolchainVersion=25
Binary file not shown.
+6 -7
View File
@@ -1,7 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
#Mon Jul 03 15:24:47 PDT 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
Vendored
+113 -201
View File
@@ -1,128 +1,74 @@
#!/bin/sh
#
# Copyright © 2015 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
#
#!/usr/bin/env bash
##############################################################################
#
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/b631911858264c0b6e4d6603d677ff5218766cee/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Resolve links: $0 may be a link
app_path=$0
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
MAX_FD="maximum"
warn () {
warn ( ) {
echo "$*"
} >&2
}
die () {
die ( ) {
echo
echo "$*"
echo
exit 1
} >&2
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "$( uname )" in #(
CYGWIN* ) cygwin=true ;; #(
Darwin* ) darwin=true ;; #(
MSYS* | MINGW* ) msys=true ;; #(
NONSTOP* ) nonstop=true ;;
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >&-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD=$JAVA_HOME/bin/java
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -131,118 +77,84 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD=java
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
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
fi
# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi
# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
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
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
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"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# 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"
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
Vendored
+43 -46
View File
@@ -1,22 +1,4 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@rem SPDX-License-Identifier: Apache-2.0
@rem
@if "%DEBUG%"=="" @echo off
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@@ -26,30 +8,26 @@
@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=.
@rem This is normally unused
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@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="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
if "%ERRORLEVEL%" == "0" goto init
echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
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
@@ -57,35 +35,54 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
if exist "%JAVA_EXE%" goto init
echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windowz variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
"%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% equ 0 goto mainEnd
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!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
-2
View File
@@ -1,2 +0,0 @@
before_install:
- ./gradlew setupCIWorkspace
+12
View File
@@ -0,0 +1,12 @@
/*
*******************************************************************************
* Copyright (c) 2011-2014 SirSengir.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v3
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-3.0.txt
*
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
*******************************************************************************
*/
-5
View File
@@ -1,5 +0,0 @@
// Add any additional repositiroes for your dependencies here
repositories {
mavenLocal()
}
-23
View File
@@ -1,23 +0,0 @@
pluginManagement {
repositories {
maven {
// RetroFuturaGradle
name "GTNH Maven"
url "https://nexus.gtnewhorizons.com/repository/public/"
mavenContent {
includeGroup("com.gtnewhorizons")
includeGroupByRegex("com\\.gtnewhorizons\\..+")
}
}
gradlePluginPortal()
mavenCentral()
mavenLocal()
}
}
plugins {
id 'com.gtnewhorizons.gtnhsettingsconvention' version '2.0.24'
}
+21
View File
@@ -0,0 +1,21 @@
## Inventory Tweaks Mod license (MIT)
Copyright (c) 2011-2013 Marwane Kalam-Alami
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
+69
View File
@@ -0,0 +1,69 @@
/*
* Copyright (c) 2013 Andrew Crocker
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package invtweaks.api;
import java.util.Collection;
import java.util.List;
import java.util.Random;
@SuppressWarnings("unused")
public interface IItemTree {
void registerOre(String category, String name, String oreName, int order);
boolean matches(List<IItemTreeItem> items, String keyword);
boolean isKeywordValid(String keyword);
Collection<IItemTreeCategory> getAllCategories();
IItemTreeCategory getRootCategory();
void setRootCategory(IItemTreeCategory category);
IItemTreeCategory getCategory(String keyword);
boolean isItemUnknown(String id, int damage);
List<IItemTreeItem> getItems(String id, int damage);
List<IItemTreeItem> getItems(String name);
IItemTreeItem getRandomItem(Random r);
boolean containsItem(String name);
boolean containsCategory(String name);
IItemTreeCategory addCategory(String parentCategory, String newCategory) throws NullPointerException;
void addCategory(String parentCategory, IItemTreeCategory newCategory) throws NullPointerException;
IItemTreeItem addItem(String parentCategory, String name, String id, int damage, int order)
throws NullPointerException;
void addItem(String parentCategory, IItemTreeItem newItem) throws NullPointerException;
int getKeywordDepth(String keyword);
int getKeywordOrder(String keyword);
}
@@ -0,0 +1,47 @@
/*
* Copyright (c) 2013 Andrew Crocker
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package invtweaks.api;
import java.util.Collection;
import java.util.List;
@SuppressWarnings("unused")
public interface IItemTreeCategory {
boolean contains(IItemTreeItem item);
void addCategory(IItemTreeCategory category);
void addItem(IItemTreeItem item);
Collection<IItemTreeCategory> getSubCategories();
Collection<List<IItemTreeItem>> getItems();
String getName();
int getCategoryOrder();
int findCategoryOrder(String keyword);
int findKeywordDepth(String keyword);
}
@@ -0,0 +1,34 @@
/*
* Copyright (c) 2013 Andrew Crocker
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package invtweaks.api;
@SuppressWarnings("unused")
public interface IItemTreeItem extends Comparable<IItemTreeItem> {
String getName();
String getId();
int getDamage();
int getOrder();
}
@@ -0,0 +1,30 @@
/*
* Copyright (c) 2013 Andrew Crocker
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package invtweaks.api;
import java.util.EventListener;
@SuppressWarnings("unused")
public interface IItemTreeListener extends EventListener {
void onTreeLoaded(IItemTree tree);
}
@@ -0,0 +1,75 @@
/*
* Copyright (c) 2013 Andrew Crocker
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package invtweaks.api;
import invtweaks.api.container.ContainerSection;
import net.minecraft.item.ItemStack;
/**
* Interface to access functions exposed by Inventory Tweaks
* <p/>
* The main @Mod instance of the mod implements this interface, so a refernce to it can
* be obtained via @Instance("inventorytweaks") or methods in net.minecraftforge.fml.common.Loader
* <p/>
* All of these functions currently have no effect if called on a dedicated server.
*/
@SuppressWarnings("unused")
public interface InvTweaksAPI {
/**
* Add a listener for ItemTree load events
*/
void addOnLoadListener(IItemTreeListener listener);
/**
* Remove a listener for ItemTree load events
*
* @return true if the listener was previously added
*/
boolean removeOnLoadListener(IItemTreeListener listener);
/**
* Toggle sorting shortcut state.
*/
void setSortKeyEnabled(boolean enabled);
/**
* Toggle sorting shortcut supression.
* Unlike setSortKeyEnabled, this flag is automatically cleared when GUIs are closed.
*/
void setTextboxMode(boolean enabled);
/**
* Compare two items using the default (non-rule based) algorithm,
* sutable for an implementation of Comparator&lt;ItemStack&gt;.
*
* @param i
* @param j
* @return A value with a sign representing the relative order of the item stacks
*/
int compareItems(ItemStack i, ItemStack j);
/**
* Initiate a sort as if the player had clicked on a sorting button or pressed the sort key.
*/
void sort(ContainerSection section, SortingMethod method);
}
@@ -0,0 +1,52 @@
/*
* Copyright (c) 2013 Andrew Crocker
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package invtweaks.api;
@SuppressWarnings("unused")
public enum SortingMethod {
/**
* Standard 'r' sorting for generic inventories
*/
DEFAULT,
/**
* Sort method creating vertical columns of items.
* Used for chests only, requires container to have a valid row size for correct results.
*/
VERTICAL,
/**
* Sort method creating horizontal rows of items.
* Used for chests only, requires container to have a valid row size for correct results.
*/
HORIZONTAL,
/**
* Sort method for player inventory.
* Applies to extra player-specified sorting rules for the main inventory.
* Will always operate on main inventory.
*/
INVENTORY,
/**
* Attempts to even the number of items in each stack of the same type of item, without moving full stacks.
* Used in crafting grid sorting.
*/
EVEN_STACKS,
}
@@ -0,0 +1,38 @@
package invtweaks.api.container;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* A marker for containers that have a chest-like persistant storage component. Enables the Inventroy Tweaks sorting
* buttons for this container.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface ChestContainer {
// Set to true if the Inventory Tweaks sorting buttons should be shown for this container.
boolean showButtons() default true;
// Size of a chest row
int rowSize() default 9;
// Uses 'large chest' mode for sorting buttons
// (Renders buttons vertically down the right side of the GUI)
boolean isLargeChest() default false;
// Annotation for method to get size of a chest row if it is not a fixed size for this container class
// Signature int func()
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface RowSizeCallback {
}
// Annotation for method to get size of a chest row if it is not a fixed size for this container class
// Signature int func()
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface IsLargeCallback {
}
}
@@ -0,0 +1,89 @@
/*
* Copyright (c) 2013 Andrew Crocker
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package invtweaks.api.container;
/**
* Names for specific parts of containers. For unknown container types (such as mod containers), only INVENTORY and
* CHEST sections are available.
*/
@SuppressWarnings("unused")
public enum ContainerSection {
/**
* The player's inventory
*/
INVENTORY,
/**
* The player's inventory (only the hotbar)
*/
INVENTORY_HOTBAR,
/**
* The player's inventory (all except the hotbar)
*/
INVENTORY_NOT_HOTBAR,
/**
* The chest or dispenser contents. Also used for unknown container contents.
*/
CHEST,
/**
* The crafting input
*/
CRAFTING_IN,
/**
* The crafting input, for containters that store it internally
*/
CRAFTING_IN_PERSISTENT,
/**
* The crafting output
*/
CRAFTING_OUT,
/**
* The armor slots
*/
ARMOR,
/**
* The furnace input
*/
FURNACE_IN,
/**
* The furnace output
*/
FURNACE_OUT,
/**
* The furnace fuel
*/
FURNACE_FUEL,
/**
* The enchantment table slot
*/
ENCHANTMENT,
/**
* The three bottles slots in brewing tables
* NOTE: Do not use without also using BREWING_INGREDIENT.
*/
BREWING_BOTTLES,
/**
* The top slot in brewing tables
* NOTE: Do not use without also using BREWING_BOTTLES.
*/
BREWING_INGREDIENT
}
@@ -0,0 +1,16 @@
package invtweaks.api.container;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* A marker for a method to call which returns the set of ContainerSections for this container.
* <p/>
* Signature of the method should be Map<ContainerSection, List<Slot>> func()
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ContainerSectionCallback {
}
@@ -0,0 +1,15 @@
package invtweaks.api.container;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Use this annotation to override inherited annotation properties and mark a Container as unsortable.
* This effect is inherited as well.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface IgnoreContainer {
}
@@ -0,0 +1,20 @@
package invtweaks.api.container;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* A marker for containers that need special treatment, such as crafting inputs or alternate player inventory positions,
* but do not have a chest-like component.
* <p/>
* Does not enable the Inventory Tweaks sorting buttons for this container.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface InventoryContainer {
// Set to true if the Inventory Tweaks options button should be shown for this container.
// (For instance, if you are replacing a vanilla container such as the player's inventory)
boolean showOptions() default true;
}
+133 -120
View File
@@ -1,38 +1,50 @@
/*******************************************************************************
* Copyright (c) 2011-2014 SirSengir. All rights reserved. This program and the accompanying materials are made
* available under the terms of the GNU Lesser Public License v3 which accompanies this distribution, and is available
* at http://www.gnu.org/licenses/lgpl-3.0.txt
* Copyright (c) 2011-2014 SirSengir.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v3
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-3.0.txt
*
* Various Contributors including, but not limited to: SirSengir (original work), CovertJaguar, Player, Binnie,
* MysteriousAges
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry;
import com.google.common.base.Preconditions;
import javax.annotation.Nullable;
import java.io.File;
import net.minecraft.block.Block;
import forestry.plugins.ForestryCompatPlugins;
import forestry.plugins.PluginBuildCraftFuels;
import forestry.plugins.PluginIC2;
import forestry.plugins.PluginNatura;
import forestry.plugins.PluginTechReborn;
import net.minecraft.item.Item;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.ModAPIManager;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent;
import cpw.mods.fml.common.event.FMLMissingMappingsEvent;
import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.GameRegistry.Type;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLInterModComms;
import net.minecraftforge.fml.common.event.FMLInterModComms.IMCEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.registry.GameRegistry;
import forestry.api.core.ForestryAPI;
import forestry.core.ClimateManager;
import forestry.api.core.ForestryEvent;
import forestry.core.EventHandlerCore;
import forestry.core.advancements.AdvancementManager;
import forestry.core.climate.ClimateStates;
import forestry.core.config.Config;
import forestry.core.config.Constants;
import forestry.core.config.GameMode;
@@ -42,10 +54,10 @@ import forestry.core.gui.GuiHandler;
import forestry.core.multiblock.MultiblockEventHandler;
import forestry.core.network.PacketHandler;
import forestry.core.proxy.Proxies;
import forestry.core.utils.Log;
import forestry.core.utils.StringUtil;
import forestry.core.utils.MigrationHelper;
import forestry.core.worldgen.WorldGenerator;
import forestry.plugins.PluginManager;
import forestry.modules.ForestryModules;
import forestry.modules.ModuleManager;
/**
* Forestry Minecraft Mod
@@ -53,122 +65,123 @@ import forestry.plugins.PluginManager;
* @author SirSengir
*/
@Mod(
modid = Constants.MOD,
name = Constants.MOD,
version = Constants.VERSION,
guiFactory = "forestry.core.config.ForestryGuiConfigFactory",
dependencies = "required-after:Forge@[10.13.4.1566,);" + "required-after:gtnhlib@[0.9.41,);"
+ "after:Buildcraft|Core@[6.1.7,);"
+ "after:ExtrabiomesXL;"
+ "after:BiomesOPlenty;"
+ "after:IC2@[2.0.140,);"
+ "after:Natura@[2.2.0,);"
+ "after:HardcoreEnderExpansion;")
modid = Constants.MOD_ID,
name = Constants.MOD_NAME,
version = Constants.VERSION,
guiFactory = "forestry.core.config.ForestryGuiConfigFactory",
acceptedMinecraftVersions = "[1.12.2,1.13.0)",
dependencies = "required-after:forge@[14.23.4.2705,);"
+ "after:jei@[4.7.8.91,);"
+ "after:" + PluginIC2.MOD_ID + ";"
+ "after:" + PluginNatura.MOD_ID + ";"
+ "after:toughasnails;"
+ "after:" + PluginTechReborn.MOD_ID + ";"
+ "after:" + PluginBuildCraftFuels.MOD_ID + ";")
public class Forestry {
@Mod.Instance(Constants.MOD)
public static Forestry instance;
@SuppressWarnings("NullableProblems")
@Mod.Instance(Constants.MOD_ID)
public static Forestry instance;
@Nullable
private File configFolder;
private File configFolder;
public Forestry() {
ForestryAPI.instance = this;
ForestryAPI.forestryConstants = new Constants();
ForestryAPI.errorStateRegistry = new ErrorStateRegistry();
ForestryAPI.states = ClimateStates.INSTANCE;
EnumErrorCode.init();
FluidRegistry.enableUniversalBucket();
MinecraftForge.EVENT_BUS.register(this);
ModuleManager moduleManager = ModuleManager.getInstance();
ForestryAPI.moduleManager = moduleManager;
moduleManager.registerContainers(new ForestryModules(), new ForestryCompatPlugins());
}
public Forestry() {
ForestryAPI.instance = this;
ForestryAPI.climateManager = new ClimateManager();
ForestryAPI.forestryConstants = new Constants();
ForestryAPI.errorStateRegistry = new ErrorStateRegistry();
EnumErrorCode.init();
}
@Nullable
private static PacketHandler packetHandler;
public static PacketHandler packetHandler;
public static PacketHandler getPacketHandler() {
Preconditions.checkNotNull(packetHandler);
return packetHandler;
}
public static boolean isDreamcraftLoaded;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
packetHandler = new PacketHandler();
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
checkForCoFHLib();
packetHandler = new PacketHandler();
// Register event handler
EventHandlerCore eventHandlerCore = new EventHandlerCore();
MinecraftForge.EVENT_BUS.register(eventHandlerCore);
MinecraftForge.EVENT_BUS.register(new MultiblockEventHandler());
MinecraftForge.EVENT_BUS.register(Config.class);
Proxies.common.registerEventHandlers();
isDreamcraftLoaded = Loader.isModLoaded("dreamcraft");
configFolder = new File(event.getModConfigurationDirectory(), Constants.MOD_ID);
Config.load(event.getSide());
// Register event handler
EventHandlerCore eventHandlerCore = new EventHandlerCore();
MinecraftForge.EVENT_BUS.register(eventHandlerCore);
FMLCommonHandler.instance().bus().register(eventHandlerCore);
MinecraftForge.EVENT_BUS.register(new MultiblockEventHandler());
MinecraftForge.EVENT_BUS.post(new ForestryEvent.PreInit(this, event));
configFolder = new File(event.getModConfigurationDirectory(), "forestry");
Config.load();
ModuleManager.runSetup(event);
ModuleManager.getInternalHandler().runSetup();
PluginManager.runSetup();
String gameMode = Config.gameMode;
Preconditions.checkNotNull(gameMode);
ForestryAPI.activeMode = new GameMode(gameMode);
ForestryAPI.activeMode = new GameMode(Config.gameMode);
MigrationHelper.registerFixable();
PluginManager.runPreInit();
}
ModuleManager.getInternalHandler().runPreInit(event.getSide());
}
@EventHandler
public void init(FMLInitializationEvent event) {
// Register gui handler
NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler());
@SubscribeEvent(priority = EventPriority.LOWEST)
public void registerItems(RegistryEvent.Register<Item> event) {
ModuleManager.getInternalHandler().runRegisterBackpacksAndCrates();
}
PluginManager.runInit();
}
@SubscribeEvent
public void registerModels(ModelRegistryEvent event) {
Proxies.render.registerModels();
}
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
PluginManager.runPostInit();
@EventHandler
public void init(FMLInitializationEvent event) {
// Register gui handler
NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler());
// Parse Mail Blacklist
Config.parseMailBlacklist();
ModuleManager.getInternalHandler().runInit();
// Register world generator
WorldGenerator worldGenerator = new WorldGenerator();
GameRegistry.registerWorldGenerator(worldGenerator, 0);
Proxies.render.registerItemAndBlockColors();
AdvancementManager.registerTriggers();
}
// Register tick handlers
Proxies.common.registerTickHandlers(worldGenerator);
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
ModuleManager.getInternalHandler().runPostInit();
// Handle IMC messages.
PluginManager.processIMCMessages(FMLInterModComms.fetchRuntimeMessages(ForestryAPI.instance));
}
// Register world generator
WorldGenerator worldGenerator = new WorldGenerator();
GameRegistry.registerWorldGenerator(worldGenerator, 0);
@EventHandler
public void serverStarting(FMLServerStartingEvent event) {
PluginManager.serverStarting(event.getServer());
}
// Register tick handlers
Proxies.common.registerTickHandlers(worldGenerator);
public File getConfigFolder() {
return configFolder;
}
// Handle IMC messages.
ModuleManager.getInternalHandler().processIMCMessages(FMLInterModComms.fetchRuntimeMessages(ForestryAPI.instance));
}
@EventHandler
public void processIMCMessages(IMCEvent event) {
PluginManager.processIMCMessages(event.getMessages());
}
@EventHandler
public void serverStarting(FMLServerStartingEvent event) {
ModuleManager.serverStarting(event.getServer());
}
@EventHandler
public void missingMapping(FMLMissingMappingsEvent event) {
for (MissingMapping mapping : event.get()) {
if (mapping.type == Type.BLOCK) {
Block block = GameRegistry.findBlock(Constants.MOD, StringUtil.cleanTags(mapping.name));
if (block != null) {
mapping.remap(block);
Log.warning("Remapping block " + mapping.name + " to " + StringUtil.cleanBlockName(block));
}
} else {
Item item = GameRegistry.findItem(Constants.MOD, StringUtil.cleanTags(mapping.name));
if (item != null) {
mapping.remap(item);
Log.warning("Remapping item " + mapping.name + " to " + StringUtil.cleanItemName(item));
}
}
}
}
@Nullable
public File getConfigFolder() {
return configFolder;
}
private static void checkForCoFHLib() {
if (!ModAPIManager.INSTANCE.hasAPI("CoFHAPI|energy")) {
throw new RuntimeException(
"CoFHAPI|energy could not be found! This version of Forestry does not contain the RedstoneFlux API anymore, so you have to install either CoFHLib or CoFHCore.");
}
}
@EventHandler
public void processIMCMessages(IMCEvent event) {
ModuleManager.getInternalHandler().processIMCMessages(event.getMessages());
}
}
+11
View File
@@ -0,0 +1,11 @@
License („MIT“)
Forestry API
Copyright (c) 2011 - 2014 SirSengir.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+26
View File
@@ -0,0 +1,26 @@
Forestry API
====================================
### What is it?
Forestry is a modification for the game Minecraft and known primarily for its farms and bees. This is the API for inter-mod operations.
### Homepage
[Wiki](http://forestry.sengir.net/)
[Forums](http://forestry.sengir.net/forum/)
[IRC #forestry on esper.net](http://webchat.esper.net/?nick=ForestryWiki...&channels=forestry&prompt=1)
### Notes
This is only the API. It is not intended to be used by itself, but rather for use either with Forestry itself or another mod which wants to use a functionality of Forestry.
Package versioning follows the rules laid out by http://semver.org/
Bugfixes are generally welcome. If you want to contribute something which changes game mechanics, please talk to someone with commit privileges first. Nothing is more frustrating than putting a lot of work and effort into a new game mechanic and then having the PR rejected because it doesn’t fit gameplay-wise.
### License & Copyright
Forestry API is (c) 2011 - 2014 SirSengir and licensed under MIT. See the LICENSE.txt for more information. Note that the core Forestry source is licensed differently! The Forestry API may also contain code contributed by CovertJaguar, Player, MysteriousAges, Binnie and others.
@@ -0,0 +1,18 @@
/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.apiculture;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.CapabilityInject;
public class ApicultureCapabilities {
/**
* Capability for {@link IArmorApiarist}.
* The {@link Capability#getDefaultInstance()} will always protect the wearer with no side effects.
*/
@CapabilityInject(IArmorApiarist.class)
public static Capability<IArmorApiarist> ARMOR_APIARIST;
}
@@ -5,51 +5,71 @@
******************************************************************************/
package forestry.api.apiculture;
import java.util.ArrayList;
import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.minecraft.item.ItemStack;
/**
*
* Some miscellaneous lists and settings for bees.
*
* @author SirSengir
*/
public class BeeManager {
/**
* 0 - Common Village Bees 1 - Uncommon Village Bees (20 % of spawns)
*/
public static ArrayList<IBeeGenome>[] villageBees;
/**
* Common Village Bees
*/
public static List<IBeeGenome> commonVillageBees;
/**
* Uncommon Village Bees (20 % of spawns)
*/
public static List<IBeeGenome> uncommonVillageBees;
/**
* List of items that can induce swarming. Integer denotes x in 1000 chance.
*/
public static HashMap<ItemStack, Integer> inducers = new HashMap<ItemStack, Integer>();
/**
* List of items that can induce swarming. Integer denotes x in 1000 chance.
*/
public static final Map<ItemStack, Integer> inducers = new HashMap<>();
/**
* Convenient access to AlleleManager.alleleRegistry.getSpeciesRoot("rootBees")
*/
public static IBeeRoot beeRoot;
/**
* Convenient access to AlleleManager.alleleRegistry.getSpeciesRoot("rootBees")
*
* @implNote Only null if the "apiculture" module is not enabled.
*/
@Nullable
public static IBeeRoot beeRoot;
/**
* Used to create new bees.
*/
public static IBeeFactory beeFactory;
/**
* Used to create new bees.
*
* @implNote Only null if the "apiculture" module is not enabled.
*/
@Nullable
public static IBeeFactory beeFactory;
/**
* Used to create new bee mutations.
*/
public static IBeeMutationFactory beeMutationFactory;
/**
* Used to create new bee mutations.
*
* @implNote Only null if the "apiculture" module is not enabled.
*/
@Nullable
public static IBeeMutationFactory beeMutationFactory;
/**
* Used to get Forestry's jubilance implementations.
*/
public static IJubilanceFactory jubilanceFactory;
/**
* Used to get Forestry's jubilance implementations.
*
* @implNote Only null if the "apiculture" module is not enabled.
*/
@Nullable
public static IJubilanceFactory jubilanceFactory;
/**
* Used to check whether a player is wearing Apiarist Armor.
*/
public static IArmorApiaristHelper armorApiaristHelper;
/**
* Used to check whether a player is wearing Apiarist Armor.
*
* @implNote Only null if the "apiculture" module is not enabled.
*/
@Nullable
public static IArmorApiaristHelper armorApiaristHelper;
}
@@ -8,19 +8,24 @@ package forestry.api.apiculture;
import forestry.api.genetics.IIndividual;
/**
* Easily extendable default IBeeListener. By itself, this IBeeListener does nothing. BeeListeners should inherit from
* this class unless they need to listen for everything.
* Easily extendable default IBeeListener.
* By itself, this IBeeListener does nothing.
* BeeListeners should inherit from this class unless they need to listen for everything.
*/
public class DefaultBeeListener implements IBeeListener {
@Override
public void wearOutEquipment(int amount) {
@Override
public void wearOutEquipment(int amount) {}
}
@Override
public void onQueenDeath() {}
@Override
public void onQueenDeath() {
}
@Override
public boolean onPollenRetrieved(IIndividual pollen) {
return false;
}
@Override
public boolean onPollenRetrieved(IIndividual pollen) {
return false;
}
}
@@ -5,53 +5,63 @@
******************************************************************************/
package forestry.api.apiculture;
import javax.annotation.Nullable;
/**
* Easily extendable default IBeeModifier. By itself, this IBeeModifier does nothing. BeeModifiers should inherit from
* this class unless they modify everything.
* Easily extendable default IBeeModifier.
* By itself, this IBeeModifier does nothing.
* BeeModifiers should inherit from this class unless they modify everything.
*/
public class DefaultBeeModifier implements IBeeModifier {
public float getTerritoryModifier(IBeeGenome genome, float currentModifier) {
return 1.0f;
}
@Override
public float getTerritoryModifier(IBeeGenome genome, float currentModifier) {
return 1.0f;
}
public float getMutationModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) {
return 1.0f;
}
@Override
public float getMutationModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) {
return 1.0f;
}
public float getLifespanModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) {
return 1.0f;
}
@Override
public float getLifespanModifier(IBeeGenome genome, @Nullable IBeeGenome mate, float currentModifier) {
return 1.0f;
}
public float getProductionModifier(IBeeGenome genome, float currentModifier) {
return 0.0f;
}
@Override
public float getProductionModifier(IBeeGenome genome, float currentModifier) {
return 1.0f;
}
public float getFloweringModifier(IBeeGenome genome, float currentModifier) {
return 1.0f;
}
@Override
public float getFloweringModifier(IBeeGenome genome, float currentModifier) {
return 1.0f;
}
public float getGeneticDecay(IBeeGenome genome, float currentModifier) {
return 1.0f;
}
@Override
public float getGeneticDecay(IBeeGenome genome, float currentModifier) {
return 1.0f;
}
public boolean isSealed() {
return false;
}
@Override
public boolean isSealed() {
return false;
}
public boolean isSelfLighted() {
return false;
}
@Override
public boolean isSelfLighted() {
return false;
}
public boolean isSelfUnlighted() {
return false;
}
@Override
public boolean isSunlightSimulated() {
return false;
}
public boolean isSunlightSimulated() {
return false;
}
@Override
public boolean isHellish() {
return false;
}
public boolean isHellish() {
return false;
}
}
@@ -23,90 +23,77 @@ import forestry.api.genetics.ISpeciesRoot;
* @author SirSengir
*/
public enum EnumBeeChromosome implements IChromosomeType {
/**
* Species of the bee. Alleles here must implement {@link IAlleleBeeSpecies}.
*/
SPECIES(IAlleleBeeSpecies.class),
/**
* (Production) Speed of the bee.
*/
SPEED(IAlleleFloat.class),
/**
* Lifespan of the bee.
*/
LIFESPAN(IAlleleInteger.class),
/**
* Fertility of the bee. Determines number of offspring.
*/
FERTILITY(IAlleleInteger.class),
/**
* Temperature difference to its native supported one the bee can tolerate.
*/
TEMPERATURE_TOLERANCE(IAlleleTolerance.class),
/**
* If true, a naturally diurnal bee can work during the night. If true, a naturally nocturnal bee can work during the day.
*/
NEVER_SLEEPS(IAlleleBoolean.class),
/**
* Humidity difference to its native supported one the bee can tolerate.
*/
HUMIDITY_TOLERANCE(IAlleleTolerance.class),
/**
* If true the bee can work during rain.
*/
TOLERATES_RAIN(IAlleleBoolean.class),
/**
* If true, the bee can work without a clear view of the sky.
*/
CAVE_DWELLING(IAlleleBoolean.class),
/**
* Contains the supported flower provider.
*/
FLOWER_PROVIDER(IAlleleFlowers.class),
/**
* Determines pollination speed.
*/
FLOWERING(IAlleleInteger.class),
/**
* Determines the size of the bee's territory.
*/
TERRITORY(IAlleleArea.class),
/**
* Determines the bee's effect.
*/
EFFECT(IAlleleBeeEffect.class);
/**
* Species of the bee. Alleles here must implement {@link IAlleleBeeSpecies}.
*/
SPECIES(IAlleleBeeSpecies.class),
/**
* (Production) Speed of the bee.
*/
SPEED(IAlleleFloat.class),
/**
* Lifespan of the bee.
*/
LIFESPAN(IAlleleInteger.class),
/**
* Fertility of the bee. Determines number of offspring.
*/
FERTILITY(IAlleleInteger.class),
/**
* Temperature difference to its native supported one the bee can tolerate.
*/
TEMPERATURE_TOLERANCE(IAlleleTolerance.class),
/**
* Slightly incorrectly named. If true, a naturally dirunal bee can work during the night. If true, a naturally
* nocturnal bee can work during the day.
*/
NOCTURNAL(IAlleleBoolean.class),
/**
* Not used / superseded by fixed values for the species. Probably going to be replaced with a boolean for
* FIRE_RESIST.
*/
@Deprecated
HUMIDITY(IAllele.class),
/**
* Humidity difference to its native supported one the bee can tolerate.
*/
HUMIDITY_TOLERANCE(IAlleleTolerance.class),
/**
* If true the bee can work during rain.
*/
TOLERANT_FLYER(IAlleleBoolean.class),
/**
* If true, the bee can work without a clear view of the sky.
*/
CAVE_DWELLING(IAlleleBoolean.class),
/**
* Contains the supported flower provider.
*/
FLOWER_PROVIDER(IAlleleFlowers.class),
/**
* Determines pollination speed.
*/
FLOWERING(IAlleleInteger.class),
/**
* Determines the size of the bee's territory.
*/
TERRITORY(IAlleleArea.class),
/**
* Determines the bee's effect.
*/
EFFECT(IAlleleBeeEffect.class);
private final Class<? extends IAllele> alleleClass;
final Class<? extends IAllele> clss;
EnumBeeChromosome(Class<? extends IAllele> alleleClass) {
this.alleleClass = alleleClass;
}
/**
* Cached values() array for frequent read-only operations, the array should NOT be mutated.
*/
public static final EnumBeeChromosome[] VALUES = values();
@Override
public Class<? extends IAllele> getAlleleClass() {
return alleleClass;
}
EnumBeeChromosome(Class<? extends IAllele> clss) {
this.clss = clss;
}
@Override
public String getName() {
return this.toString().toLowerCase(Locale.ENGLISH);
}
@Override
public Class<? extends IAllele> getAlleleClass() {
return clss;
}
@Override
public String getName() {
return this.toString().toLowerCase(Locale.ENGLISH);
}
@Override
public ISpeciesRoot getSpeciesRoot() {
return BeeManager.beeRoot;
}
@Override
public ISpeciesRoot getSpeciesRoot() {
return BeeManager.beeRoot;
}
}
@@ -10,29 +10,17 @@ import java.util.Locale;
import forestry.api.genetics.ISpeciesType;
public enum EnumBeeType implements ISpeciesType {
DRONE, PRINCESS, QUEEN, LARVAE;
DRONE,
PRINCESS,
QUEEN,
LARVAE,
NONE;
public static final EnumBeeType[] VALUES = values();
/**
* Cached values() array for frequent read-only operations, the array should NOT be mutated.
*/
public static final EnumBeeType[] VALUES = values();
private final String name;
private final String name;
EnumBeeType() {
this.name = this.toString().toLowerCase(Locale.ENGLISH);
}
EnumBeeType() {
this.name = this.toString().toLowerCase(Locale.ENGLISH);
}
public String getName() {
return name;
}
public static EnumBeeType fromOrdinal(int ordinal) {
return VALUES[ordinal];
}
public String getName() {
return name;
}
}
@@ -5,43 +5,22 @@
******************************************************************************/
package forestry.api.apiculture;
import java.util.ArrayList;
import net.minecraft.item.ItemStack;
import forestry.api.genetics.IFlowerRegistry;
public class FlowerManager {
/**
* <blockquote><pre>e.g. FlowerManager.flowerRegister.registerPlantableFlower(new ItemStack(Blocks.RED_FLOWER), 1.0, FlowerManager.FlowerTypeVanilla, FlowerManager.FlowerTypeSnow);</pre></blockquote>
*/
public static IFlowerRegistry flowerRegistry;
/**
* <blockquote>
*
* <pre>
* e.g.FlowerManager.flowerRegister.registerPlantableFlower(
* new ItemStack(Blocks.red_flower),
* 1.0,
* FlowerManager.FlowerTypeVanilla,
* FlowerManager.FlowerTypeSnow);
* </pre>
*
* </blockquote>
*/
public static IFlowerRegistry flowerRegistry;
public static final String FlowerTypeVanilla = "flowersVanilla";
public static final String FlowerTypeNether = "flowersNether";
public static final String FlowerTypeCacti = "flowersCacti";
public static final String FlowerTypeMushrooms = "flowersMushrooms";
public static final String FlowerTypeEnd = "flowersEnd";
public static final String FlowerTypeJungle = "flowersJungle";
public static final String FlowerTypeSnow = "flowersSnow";
public static final String FlowerTypeWheat = "flowersWheat";
public static final String FlowerTypeGourd = "flowersGourd";
public static final String FlowerTypeVanilla = "flowersVanilla";
public static final String FlowerTypeNether = "flowersNether";
public static final String FlowerTypeCacti = "flowersCacti";
public static final String FlowerTypeMushrooms = "flowersMushrooms";
public static final String FlowerTypeEnd = "flowersEnd";
public static final String FlowerTypeJungle = "flowersJungle";
public static final String FlowerTypeSnow = "flowersSnow";
public static final String FlowerTypeWheat = "flowersWheat";
public static final String FlowerTypeGourd = "flowersGourd";
/**
* @deprecated since Forestry 3.4. Use IFlowerRegistry.registerPlantableFlower instead. Completely unused since
* Forestry 4.0, kept for backward compatibility with older mods.
*/
@Deprecated
public static ArrayList<ItemStack> plainFlowers = new ArrayList<ItemStack>();
}
@@ -1,9 +0,0 @@
package forestry.api.apiculture;
import forestry.api.genetics.IEffectData;
@SuppressWarnings("unused")
public interface IAlleleBeeAcceleratableEffect {
IEffectData doEffectAccelerated(IBeeGenome genome, IEffectData storedData, IBeeHousing housing, float did);
}
@@ -7,26 +7,30 @@ package forestry.api.apiculture;
import forestry.api.genetics.IAlleleEffect;
import forestry.api.genetics.IEffectData;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public interface IAlleleBeeEffect extends IAlleleEffect {
/**
* Called by apiaries to cause an effect in the world.
*
* @param genome Genome of the bee queen causing this effect
* @param storedData Object containing the stored effect data for the apiary/hive the bee is in.
* @param housing {@link IBeeHousing} the bee currently resides in.
* @return storedData, may have been manipulated.
*/
IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing);
/**
* Called by apiaries to cause an effect in the world. (server)
*
* @param genome Genome of the bee queen causing this effect
* @param storedData Object containing the stored effect data for the apiary/hive the bee is in.
* @param housing {@link IBeeHousing} the bee currently resides in.
* @return storedData, may have been manipulated.
*/
IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing);
/**
* Is called to produce visual bee effects. (client)
*
* @param genome Genome of the bee queen causing this effect
* @param storedData Object containing the stored effect data for the apiary/hive the bee is in.
* @param housing {@link IBeeHousing} the bee currently resides in.
* @return storedData, may have been manipulated.
*/
@SideOnly(Side.CLIENT)
IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing);
/**
* Is called to produce bee effects.
*
* @param genome
* @param storedData Object containing the stored effect data for the apiary/hive the bee is in.
* @param housing {@link IBeeHousing} the bee currently resides in.
* @return storedData, may have been manipulated.
*/
IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing);
}
@@ -7,49 +7,47 @@ package forestry.api.apiculture;
import java.util.Map;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.core.IModelManager;
import forestry.api.genetics.IAlleleSpecies;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public interface IAlleleBeeSpecies extends IAlleleSpecies {
/**
* @return the IBeeRoot
*/
IBeeRoot getRoot();
/**
* @return the IBeeRoot
*/
@Override
IBeeRoot getRoot();
/**
* @return true if this species is only active at night.
*/
boolean isNocturnal();
/**
* @return true if this species is only active at night.
*/
boolean isNocturnal();
/**
* @return Map of possible products with the chance for drop each bee cycle. (0 - 1]
*/
Map<ItemStack, Float> getProductChances();
/**
* @return Map of possible products with the chance for drop each bee cycle. (0 - 1]
*/
Map<ItemStack, Float> getProductChances();
/**
* @return Map of possible specialities with the chance for drop each bee cycle. (0 - 1]
*/
Map<ItemStack, Float> getSpecialtyChances();
/**
* @return Map of possible specialities with the chance for drop each bee cycle. (0 - 1]
*/
Map<ItemStack, Float> getSpecialtyChances();
/**
* Only jubilant bees produce specialities.
*
* @return true if the bee is jubilant, false otherwise.
*/
boolean isJubilant(IBeeGenome genome, IBeeHousing housing);
/**
* Only jubilant bees produce specialities.
*
* @return true if the bee is jubilant, false otherwise.
*/
boolean isJubilant(IBeeGenome genome, IBeeHousing housing);
@SideOnly(Side.CLIENT)
IIcon getIcon(EnumBeeType type, int renderPass);
@SideOnly(Side.CLIENT)
ModelResourceLocation getModel(EnumBeeType type);
/**
* @deprecated since Forestry 3.6.
* @return Path of the texture to use for entity rendering.
*/
@Deprecated
String getEntityTexture();
@SideOnly(Side.CLIENT)
void registerModels(Item item, IModelManager manager);
}
@@ -0,0 +1,49 @@
/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.apiculture;
import forestry.api.genetics.IAlleleSpeciesBuilder;
import net.minecraft.item.ItemStack;
public interface IAlleleBeeSpeciesBuilder extends IAlleleSpeciesBuilder {
@Override
IAlleleBeeSpecies build();
/**
* Add a product for this bee species.
* Chance is between 0 and 1.
*/
IAlleleBeeSpeciesBuilder addProduct(ItemStack product, Float chance);
/**
* Add a specialty product for this bee species.
* Bees only produce their specialty when they are Jubilant (see IJubilanceProvider)
* Chance is between 0 and 1.
*/
IAlleleBeeSpeciesBuilder addSpecialty(ItemStack specialty, Float chance);
/**
* Set the Jubilance Provider for this bee species.
* Bees only produce their specialty when they are Jubilant (see IJubilanceProvider)
*/
IAlleleBeeSpeciesBuilder setJubilanceProvider(IJubilanceProvider provider);
/**
* Make this species only active at night.
*/
IAlleleBeeSpeciesBuilder setNocturnal();
/**
* Use this if you have custom icons for bees.
*/
IAlleleBeeSpeciesBuilder setCustomBeeModelProvider(IBeeModelProvider beeIconProvider);
/**
* Use this if you have custom icon colours for bees (other than the default static primary + secondary colours).
*/
IAlleleBeeSpeciesBuilder setCustomBeeSpriteColourProvider(IBeeSpriteColourProvider beeIconColourProvider);
}
@@ -1,50 +0,0 @@
/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.apiculture;
import net.minecraft.item.ItemStack;
import forestry.api.genetics.IAlleleSpeciesCustom;
public interface IAlleleBeeSpeciesCustom extends IAlleleBeeSpecies, IAlleleSpeciesCustom {
/**
* Add a product for this bee species. Chance is between 0 and 1.
*/
IAlleleBeeSpeciesCustom addProduct(ItemStack product, Float chance);
/**
* Add a specialty product for this bee species. Bees only produce their specialty when they are Jubilant (see
* IJubilanceProvider) Chance is between 0 and 1.
*/
IAlleleBeeSpeciesCustom addSpecialty(ItemStack specialty, Float chance);
/**
* Set the Jubilance Provider for this bee species. Bees only produce their specialty when they are Jubilant (see
* IJubilanceProvider)
*/
IAlleleBeeSpeciesCustom setJubilanceProvider(IJubilanceProvider provider);
/**
* Get the Jubilance Provider for this bee species.
*/
default IJubilanceProvider getJubilanceProvider() {
return null;
}
/**
* Make this species only active at night.
*/
IAlleleBeeSpeciesCustom setNocturnal();
/** Use this if you have custom icons for bees. */
IAlleleBeeSpeciesCustom setCustomBeeIconProvider(IBeeIconProvider beeIconProvider);
/**
* Use this if you have custom icon colours for bees (other than the default static primary + secondary colours).
*/
IAlleleBeeSpeciesCustom setCustomBeeIconColourProvider(IBeeIconColourProvider beeIconColourProvider);
}
@@ -9,46 +9,46 @@ import forestry.api.genetics.IBreedingTracker;
import forestry.api.genetics.IIndividual;
/**
* Can be used to garner information on bee breeding. See {@link forestry.api.genetics.ISpeciesRoot} for retrieval
* functions.
* Can be used to garner information on bee breeding. See {@link forestry.api.genetics.ISpeciesRoot} for retrieval functions.
*
* @author SirSengir
*/
public interface IApiaristTracker extends IBreedingTracker {
/**
* Register the birth of a queen. Will mark species as discovered.
*
* @param queen Created queen.
*/
void registerQueen(IIndividual queen);
/**
* Register the birth of a queen. Will mark species as discovered.
*
* @param queen Created queen.
*/
void registerQueen(IIndividual queen);
/**
* @return Amount of queens bred with this tracker.
*/
int getQueenCount();
/**
* @return Amount of queens bred with this tracker.
*/
int getQueenCount();
/**
* Register the birth of a princess. Will mark species as discovered.
*
* @param princess Created princess.
*/
void registerPrincess(IIndividual princess);
/**
* Register the birth of a princess. Will mark species as discovered.
*
* @param princess Created princess.
*/
void registerPrincess(IIndividual princess);
/**
* @return Amount of princesses bred with this tracker.
*/
int getPrincessCount();
/**
* @return Amount of princesses bred with this tracker.
*/
int getPrincessCount();
/**
* Register the birth of a drone. Will mark species as discovered.
*
* @param drone Created drone.
*/
void registerDrone(IIndividual drone);
/**
* Register the birth of a drone. Will mark species as discovered.
*
* @param drone Created drone.
*/
void registerDrone(IIndividual drone);
/**
* @return Amount of drones bred with this tracker.
*/
int getDroneCount();
/**
* @return Amount of drones bred with this tracker.
*/
int getDroneCount();
}
@@ -5,36 +5,25 @@
******************************************************************************/
package forestry.api.apiculture;
import javax.annotation.Nullable;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
/**
* When implemented by armor piece items, allows them to act as apiarist's armor.
* When implemented as a capability by armor items, protects the wearer from negative bee effects.
*
* @see ApicultureCapabilities#ARMOR_APIARIST
*/
public interface IArmorApiarist {
/**
* Called when the apiarist's armor acts as protection against an attack.
*
* @param entity Entity being attacked
* @param armor Armor item
* @param cause Optional cause of attack, such as a bee effect identifier
* @param doProtect Whether or not to actually do the side effects of protection
* @return Whether or not the armor should protect the player from that attack
*/
boolean protectEntity(EntityLivingBase entity, ItemStack armor, String cause, boolean doProtect);
/**
* Called when the apiarist's armor acts as protection against an attack.
*
* @param player Player being attacked
* @param armor Armor item
* @param cause Optional cause of attack, such as a bee effect identifier
* @param doProtect Whether or not to actually do the side effects of protection
* @return Whether or not the armor should protect the player from that attack
* @deprecated since Forestry 4.2. Use protectEntity
*/
@Deprecated
public boolean protectPlayer(EntityPlayer player, ItemStack armor, String cause, boolean doProtect);
/**
* Called when the apiarist's armor acts as protection against an attack.
*
* @param entity Entity being attacked
* @param armor Armor item
* @param cause Optional cause of attack, such as a bee effect identifier
* @param doProtect Whether or not to actually do the side effects of protection
* @return Whether or not the armor should protect the player from that attack
*/
boolean protectEntity(EntityLivingBase entity, ItemStack armor, @Nullable String cause, boolean doProtect);
}
@@ -6,7 +6,6 @@
package forestry.api.apiculture;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
/**
@@ -16,51 +15,27 @@ import net.minecraft.item.ItemStack;
*/
public interface IArmorApiaristHelper {
/**
* Called when the apiarist's armor acts as protection against an attack.
*
* @param stack ItemStack to check
* @param entity Entity being attacked
* @param cause Optional cause of attack, such as a bee effect identifier
* @param doProtect Whether or not to actually do the side effects of protection
* @return Whether or not the item is valid Apiarist Armor and should protect the player from that attack
* @since Forestry 4.2
*/
boolean isArmorApiarist(ItemStack stack, EntityLivingBase entity, String cause, boolean doProtect);
/**
* Called when the apiarist's armor acts as protection against an attack.
*
* @param stack ItemStack to check
* @param entity Entity being attacked
* @param cause Optional cause of attack, such as a bee effect identifier
* @param doProtect Whether or not to actually do the side effects of protection
* @return Whether or not the item is valid Apiarist Armor and should protect the player from that attack
* @since Forestry 4.2
*/
boolean isArmorApiarist(ItemStack stack, EntityLivingBase entity, String cause, boolean doProtect);
/**
* Called when the apiarist's armor acts as protection against an attack.
*
* @param entity Entity being attacked
* @param cause Optional cause of attack, such as a bee effect identifier
* @param doProtect Whether or not to actually do the side effects of protection
* @return The number of valid Apiarist Armor pieces the player is wearing that are actually protecting
* @since Forestry 4.2
*/
int wearsItems(EntityLivingBase entity, String cause, boolean doProtect);
/**
* Called when the apiarist's armor acts as protection against an attack.
*
* @param stack ItemStack to check
* @param player Player being attacked
* @param cause Optional cause of attack, such as a bee effect identifier
* @param doProtect Whether or not to actually do the side effects of protection
* @return Whether or not the item is valid Apiarist Armor and should protect the player from that attack
* @deprecated since Forestry 4.2. use the EntityLivingBase version
*/
@Deprecated
boolean isArmorApiarist(ItemStack stack, EntityPlayer player, String cause, boolean doProtect);
/**
* Called when the apiarist's armor acts as protection against an attack.
*
* @param player Player being attacked
* @param cause Optional cause of attack, such as a bee effect identifier
* @param doProtect Whether or not to actually do the side effects of protection
* @return The number of valid Apiarist Armor pieces the player is wearing that are actually protecting
* @deprecated since Forestry 4.2. use the EntityLivingBase version
*/
@Deprecated
int wearsItems(EntityPlayer player, String cause, boolean doProtect);
/**
* Called when the apiarist's armor acts as protection against an attack.
*
* @param entity Entity being attacked
* @param cause Optional cause of attack, such as a bee effect identifier
* @param doProtect Whether or not to actually do the side effects of protection
* @return The number of valid Apiarist Armor pieces the player is wearing that are actually protecting.
* 4 means full protection, but it can go higher if they are holding items like the smoker.
* @since Forestry 4.2
*/
int wearsItems(EntityLivingBase entity, String cause, boolean doProtect);
}
@@ -1,20 +0,0 @@
package forestry.api.apiculture;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
public interface IArmorApiaristMulti extends IArmorApiarist {
/**
* Called to determine how many pieces an armor "counts for". For instance, if this returns 4, the single piece will
* act as full protection.
*
* @param entity Entity being attacked
* @param armor Armor item
* @param cause Optional cause of attack, such as a bee effect identifier
* @return Amount of effective protected slots
*/
default int getProtectionCount(EntityLivingBase entity, ItemStack armor, String cause) {
return 1;
}
}
+76 -45
View File
@@ -5,11 +5,18 @@
******************************************************************************/
package forestry.api.apiculture;
import javax.annotation.Nullable;
import java.util.List;
import java.util.Set;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.biome.Biome;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import forestry.api.core.IErrorState;
import forestry.api.genetics.IEffectData;
@@ -23,65 +30,89 @@ import forestry.api.genetics.IIndividualLiving;
*/
public interface IBee extends IIndividualLiving {
/**
* @return Bee's genetic information.
*/
IBeeGenome getGenome();
/**
* @return Bee's genetic information.
*/
@Override
IBeeGenome getGenome();
/**
* @return Genetic information of the bee's mate, null if unmated.
*/
IBeeGenome getMate();
/**
* @return Genetic information of the bee's mate, null if unmated.
*/
@Nullable
@Override
IBeeGenome getMate();
/**
* @return true if the individual is originally of natural origin.
*/
boolean isNatural();
/**
* @return true if the individual is originally of natural origin.
*/
boolean isNatural();
/**
* @return generation this individual is removed from the original individual.
*/
int getGeneration();
/**
* @return generation this individual is removed from the original individual.
*/
int getGeneration();
/**
* Set the natural flag on this bee.
*
* @param flag
*/
void setIsNatural(boolean flag);
/**
* Set the natural flag on this bee.
*/
void setIsNatural(boolean flag);
IEffectData[] doEffect(IEffectData[] storedData, IBeeHousing housing);
IEffectData[] doEffect(IEffectData[] storedData, IBeeHousing housing);
IEffectData[] doFX(IEffectData[] storedData, IBeeHousing housing);
@SideOnly(Side.CLIENT)
IEffectData[] doFX(IEffectData[] storedData, IBeeHousing housing);
/**
* @return true if the bee may spawn offspring
*/
boolean canSpawn();
/**
* @return true if the bee may spawn offspring
*/
boolean canSpawn();
/**
* Determines whether the queen can work.
*
* @param housing the {@link IBeeHousing} the bee currently resides in.
* @return an empty set if the queen can work, a set of error states if the queen can not work
*/
Set<IErrorState> getCanWork(IBeeHousing housing);
/**
* Determines whether the queen can work.
*
* @param housing the {@link IBeeHousing} the bee currently resides in.
* @return an empty set if the queen can work, a set of error states if the queen can not work
*/
Set<IErrorState> getCanWork(IBeeHousing housing);
List<BiomeGenBase> getSuitableBiomes();
List<Biome> getSuitableBiomes();
ItemStack[] getProduceList();
NonNullList<ItemStack> getProduceList();
ItemStack[] getSpecialtyList();
NonNullList<ItemStack> getSpecialtyList();
ItemStack[] produceStacks(IBeeHousing housing);
NonNullList<ItemStack> produceStacks(IBeeHousing housing);
IBee spawnPrincess(IBeeHousing housing);
@Nullable
IBee spawnPrincess(IBeeHousing housing);
IBee[] spawnDrones(IBeeHousing housing);
List<IBee> spawnDrones(IBeeHousing housing);
void plantFlowerRandom(IBeeHousing housing);
/**
* @deprecated since Forestry 5.5.4. Use {@link #plantFlowerRandom(IBeeHousing, List)}
*/
@Deprecated
void plantFlowerRandom(IBeeHousing housing);
IIndividual retrievePollen(IBeeHousing housing);
/**
* Plants a random flower from the given list near the housing
*
* @param housing the location the bee is living
* @param potentialFlowers the flowers to choose from
* @return the position of the planted flower, or null of none were planted
* @since Forestry 5.5.4
*/
@Nullable
default BlockPos plantFlowerRandom(IBeeHousing housing, List<IBlockState> potentialFlowers) {
//noinspection deprecation
plantFlowerRandom(housing);
return null;
}
@Nullable
IIndividual retrievePollen(IBeeHousing housing);
boolean pollinateRandom(IBeeHousing housing, IIndividual pollen);
boolean pollinateRandom(IBeeHousing housing, IIndividual pollen);
}
@@ -9,33 +9,39 @@ import forestry.api.genetics.IClassification;
public interface IBeeFactory {
/**
* Creates a new bee species. Automatically registered with AlleleManager.alleleRegistry.registerAllele() See
* IAlleleBeeSpeciesCustom and IAlleleSpeciesCustom for adding additional properties to the returned species.
*
* @param uid Unique Identifier for this species
* @param dominant Whether this species is genetically dominant (false means it is recessive)
* @param authority Authority for the binomial name, e.g. "Sengir" on species of base Forestry.
* @param unlocalizedName Unlocalized name for this species
* @param unlocalizedDescription Unlocalized description for this species
* @param branch Classification of this species
* @param binomial Binomial name of the species sans genus ("Apis"). "humboldti" will have the bee
* species flavour name be "Apis humboldti". Feel free to use fun names or null.
* @param primaryColor The outline color of this species
* @param secondaryColor The body color of this species
* @return a new bee species allele.
*/
IAlleleBeeSpeciesCustom createSpecies(String uid, boolean dominant, String authority, String unlocalizedName,
String unlocalizedDescription, IClassification branch, String binomial, int primaryColor,
int secondaryColor);
/**
* Creates a new bee species.
* Automatically registered with AlleleManager.alleleRegistry.registerAllele()
* See IAlleleBeeSpeciesBuilder and IAlleleSpeciesBuilder for adding additional properties to the returned species.
*
* @param modId The modId of the mod that is creating the species
* @param uid Unique Identifier for this species
* @param dominant Whether this species is genetically dominant (false means it is recessive)
* @param authority Authority for the binomial name, e.g. "Sengir" on species of base Forestry.
* @param unlocalizedName Unlocalized name for this species
* @param unlocalizedDescription Unlocalized description for this species
* @param branch Classification of this species
* @param binomial Binomial name of the species sans genus ("Apis"). "humboldti" will have the bee species flavour name be "Apis humboldti". Feel free to use fun names or null.
* @param primaryColor The outline color of this species
* @param secondaryColor The body color of this species
* @return a new bee species allele.
* @since Forestry 5.6.0.
*/
IAlleleBeeSpeciesBuilder createSpecies(String modId, String uid, boolean dominant, String authority, String unlocalizedName, String unlocalizedDescription, IClassification branch, String binomial, int primaryColor, int secondaryColor);
/**
* Creates a new bee branch. Must be registered with
* AlleleManager.alleleRegistry.getClassification("family.apidae").addMemberGroup();
*
* @param uid Unique Identifier for this branch
* @param scientific approximates a "genus" in real life. Real life examples: "Micrapis", "Megapis"
* @return a new bee branch
*/
IClassification createBranch(String uid, String scientific);
/**
* Creates a new bee branch.
* Must be registered with AlleleManager.alleleRegistry.getClassification("family.apidae").addMemberGroup();
*
* @param uid Unique Identifier for this branch
* @param scientific approximates a "genus" in real life. Real life examples: "Micrapis", "Megapis"
* @return a new bee branch
*/
IClassification createBranch(String uid, String scientific);
/**
* @deprecated since Forestry 5.6.0. use {@link #createSpecies(String, String, boolean, String, String, String, IClassification, String, int, int)}
*/
@Deprecated
IAlleleBeeSpeciesBuilder createSpecies(String uid, boolean dominant, String authority, String unlocalizedName, String unlocalizedDescription, IClassification branch, String binomial, int primaryColor, int secondaryColor);
}
@@ -8,40 +8,43 @@ package forestry.api.apiculture;
import forestry.api.genetics.EnumTolerance;
import forestry.api.genetics.IFlowerProvider;
import forestry.api.genetics.IGenome;
import net.minecraft.util.math.Vec3i;
/**
* Only the default implementation is supported.
*
* @author SirSengir
*
*/
public interface IBeeGenome extends IGenome {
IAlleleBeeSpecies getPrimary();
@Override
IAlleleBeeSpecies getPrimary();
IAlleleBeeSpecies getSecondary();
@Override
IAlleleBeeSpecies getSecondary();
float getSpeed();
float getSpeed();
int getLifespan();
int getLifespan();
int getFertility();
int getFertility();
EnumTolerance getToleranceTemp();
EnumTolerance getToleranceTemp();
EnumTolerance getToleranceHumid();
EnumTolerance getToleranceHumid();
boolean getNocturnal();
boolean getNeverSleeps();
boolean getTolerantFlyer();
boolean getToleratesRain();
boolean getCaveDwelling();
boolean getCaveDwelling();
IFlowerProvider getFlowerProvider();
IFlowerProvider getFlowerProvider();
int getFlowering();
int getFlowering();
int[] getTerritory();
Vec3i getTerritory();
IAlleleBeeEffect getEffect();
IAlleleBeeEffect getEffect();
}
@@ -5,48 +5,49 @@
******************************************************************************/
package forestry.api.apiculture;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import javax.annotation.Nullable;
import com.mojang.authlib.GameProfile;
import forestry.api.core.IClimateProvider;
import forestry.api.climate.IClimateProvider;
import forestry.api.core.IErrorLogicSource;
import forestry.api.core.ILocatable;
import forestry.api.genetics.IHousing;
import net.minecraft.util.math.Vec3d;
public interface IBeeHousing extends IHousing, IClimateProvider, IErrorLogicSource {
public interface IBeeHousing extends IHousing, IErrorLogicSource, IClimateProvider, ILocatable {
/**
* Used by BeeManager.beeRoot.createBeeHousingModifier(IBeeHousing housing) to combine bee modifiers from several
* sources that can change over time.
*
* @return IBeeModifiers from the housing, frames, etc.
*/
Iterable<IBeeModifier> getBeeModifiers();
/**
* Used by {@link IBeeRoot#createBeeHousingModifier(IBeeHousing)}
* to combine bee modifiers from several sources that can change over time.
*
* @return IBeeModifiers from the housing, frames, etc.
*/
Iterable<IBeeModifier> getBeeModifiers();
/**
* Used by BeeManager.beeRoot.createBeeHousingListener(IBeeHousing housing) to combine bee listeners from several
* sources that can change over time.
*
* @return IBeeListeners from the housing, multiblock parts, etc.
*/
Iterable<IBeeListener> getBeeListeners();
/**
* Used by {@link IBeeRoot#createBeeHousingListener(IBeeHousing)}
* to combine bee listeners from several sources that can change over time.
*
* @return IBeeListeners from the housing, multiblock parts, etc.
*/
Iterable<IBeeListener> getBeeListeners();
IBeeHousingInventory getBeeInventory();
IBeeHousingInventory getBeeInventory();
IBeekeepingLogic getBeekeepingLogic();
IBeekeepingLogic getBeekeepingLogic();
int getBlockLightValue();
int getBlockLightValue();
boolean canBlockSeeTheSky();
boolean canBlockSeeTheSky();
World getWorld();
boolean isRaining();
GameProfile getOwner();
@Nullable
GameProfile getOwner();
/**
* @since Forestry 4.2
* @return exact coordinates where bee FX should spawn from
*/
Vec3 getBeeFXCoordinates();
/**
* @return exact coordinates where bee particle FX should spawn from
* @since Forestry 4.2
*/
Vec3d getBeeFXCoordinates();
}
@@ -9,20 +9,20 @@ import net.minecraft.item.ItemStack;
public interface IBeeHousingInventory {
ItemStack getQueen();
ItemStack getQueen();
ItemStack getDrone();
ItemStack getDrone();
void setQueen(ItemStack itemstack);
void setQueen(ItemStack itemstack);
void setDrone(ItemStack itemstack);
void setDrone(ItemStack itemstack);
/**
* Adds products to the housing's inventory.
*
* @param product ItemStack with the product to add.
* @param all if true, success requires that all products are added
* @return boolean indicating success or failure.
*/
boolean addProduct(ItemStack product, boolean all);
/**
* Adds products to the housing's inventory.
*
* @param product ItemStack with the product to add.
* @param all if true, success requires that all products are added
* @return boolean indicating success or failure.
*/
boolean addProduct(ItemStack product, boolean all);
}
@@ -9,22 +9,23 @@ import forestry.api.genetics.IIndividual;
public interface IBeeListener {
/**
* Called when the bees wear out the housing's equipment.
*
* @param amount Integer indicating the amount worn out.
*/
void wearOutEquipment(int amount);
/**
* Called when the bees wear out the housing's equipment.
*
* @param amount Integer indicating the amount worn out.
*/
void wearOutEquipment(int amount);
/**
* Called after the children have been spawned, and before the new princess is spawned.
*/
void onQueenDeath();
/**
* Called after the children have been spawned, and before the new princess is spawned.
*/
void onQueenDeath();
/**
* Called when the bees have retrieved some pollen.
*
* @return true if this bee listener handled the pollen.
*/
boolean onPollenRetrieved(IIndividual pollen);
/**
* Called when the bees have retrieved some pollen.
*
* @return true if this bee listener handled the pollen.
*/
boolean onPollenRetrieved(IIndividual pollen);
}
@@ -0,0 +1,20 @@
/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.apiculture;
import forestry.api.core.IModelManager;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public interface IBeeModelProvider {
@SideOnly(Side.CLIENT)
void registerModels(Item item, IModelManager manager);
@SideOnly(Side.CLIENT)
ModelResourceLocation getModel(EnumBeeType type);
}
@@ -5,73 +5,68 @@
******************************************************************************/
package forestry.api.apiculture;
import javax.annotation.Nullable;
public interface IBeeModifier {
/**
* @param genome Genome of the bee this modifier is called for.
* @param currentModifier Current modifier.
* @return Float used to modify the base territory.
*/
float getTerritoryModifier(IBeeGenome genome, float currentModifier);
/**
* @param genome Genome of the bee this modifier is called for.
* @param currentModifier Current modifier.
* @return Float used to modify the base territory.
*/
float getTerritoryModifier(IBeeGenome genome, float currentModifier);
/**
* @param genome Genome of the bee this modifier is called for.
* @param mate Genome of the bee mate this modifier is called for.
* @param currentModifier Current modifier.
* @return Float used to modify the base mutation chance.
*/
float getMutationModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier);
/**
* @param genome Genome of the bee this modifier is called for.
* @param mate Genome of the bee mate this modifier is called for.
* @param currentModifier Current modifier.
* @return Float used to modify the base mutation chance.
*/
float getMutationModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier);
/**
* @param genome Genome of the bee this modifier is called for.
* @param currentModifier Current modifier.
* @return Float used to modify the life span of queens.
*/
float getLifespanModifier(IBeeGenome genome, @Nullable IBeeGenome mate, float currentModifier);
/**
* @param genome Genome of the bee this modifier is called for.
* @param currentModifier Current modifier.
* @return Float used to modify the life span of queens.
*/
float getLifespanModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier);
/**
* @param genome Genome of the bee this modifier is called for.
* @param currentModifier Current modifier.
* @return Float modifying the production speed of queens.
*/
float getProductionModifier(IBeeGenome genome, float currentModifier);
/**
* @param genome Genome of the bee this modifier is called for.
* @param currentModifier Current modifier.
* @return Float modifying the production speed of queens.
*/
float getProductionModifier(IBeeGenome genome, float currentModifier);
/**
* @param genome Genome of the bee this modifier is called for.
* @return Float modifying the flowering of queens.
*/
float getFloweringModifier(IBeeGenome genome, float currentModifier);
/**
* @param genome Genome of the bee this modifier is called for.
* @return Float modifying the flowering of queens.
*/
float getFloweringModifier(IBeeGenome genome, float currentModifier);
/**
* @param genome Genome of the bee this modifier is called for.
* @return Float modifying the chance for a swarmer queen to die off.
*/
float getGeneticDecay(IBeeGenome genome, float currentModifier);
/**
* @param genome Genome of the bee this modifier is called for.
* @return Float modifying the chance for a swarmer queen to die off.
*/
float getGeneticDecay(IBeeGenome genome, float currentModifier);
/**
* @return Boolean indicating if housing can ignore rain
*/
boolean isSealed();
/**
* @return Boolean indicating if housing can ignore rain
*/
boolean isSealed();
/**
* @return Boolean indicating if housing can ignore darkness/night
*/
boolean isSelfLighted();
/**
* @return Boolean indicating if housing can ignore darkness/night. Cannot be used together with SelfUnlighted
*/
boolean isSelfLighted();
/**
* @return Boolean indicating if housing can ignore not seeing the sky
*/
boolean isSunlightSimulated();
/**
* @return Boolean indicating if housing can ignore lightness/day. Cannot be used together with SelfLighted
*/
default boolean isSelfUnlighted() {
return false;
}
/**
* @return Boolean indicating whether this housing simulates the nether
*/
boolean isHellish();
/**
* @return Boolean indicating if housing can ignore not seeing the sky
*/
boolean isSunlightSimulated();
/**
* @return Boolean indicating whether this housing simulates the nether
*/
boolean isHellish();
}
@@ -9,12 +9,11 @@ import forestry.api.genetics.IMutation;
public interface IBeeMutation extends IMutation {
IBeeRoot getRoot();
@Override
IBeeRoot getRoot();
/**
* @return float representing the chance for mutation to occur. note that this is 0 - 100 based, since it was an
* integer previously!
*/
float getChance(IBeeHousing housing, IAlleleBeeSpecies allele0, IAlleleBeeSpecies allele1, IBeeGenome genome0,
IBeeGenome genome1);
/**
* @return float representing the chance for mutation to occur. note that this is 0 - 100 based, since it was an integer previously!
*/
float getChance(IBeeHousing housing, IAlleleBeeSpecies allele0, IAlleleBeeSpecies allele1, IBeeGenome genome0, IBeeGenome genome1);
}
@@ -5,7 +5,9 @@
******************************************************************************/
package forestry.api.apiculture;
import forestry.api.genetics.IMutationCustom;
import forestry.api.genetics.IMutationBuilder;
public interface IBeeMutationCustom extends IBeeMutation, IMutationCustom {
public interface IBeeMutationBuilder extends IMutationBuilder {
@Override
IBeeMutation build();
}
@@ -8,17 +8,16 @@ package forestry.api.apiculture;
import forestry.api.genetics.IAllele;
public interface IBeeMutationFactory {
/**
* Creates a new bee mutation. Automatically registered with BeeManager.beeRoot.registerMutation() See
* IBeeMutationCustom and IMutationCustom for adding additional properties to the returned mutation.
*
* @param parentBee0 A parent bee for this mutation
* @param parentBee1 A parent bee for this mutation
* @param result The resulting alleles for this mutation
* @param chance The chance that breeding the two parent bees will result in this mutation
* @return a new bee mutation.
*/
IBeeMutationCustom createMutation(IAlleleBeeSpecies parentBee0, IAlleleBeeSpecies parentBee1, IAllele[] result,
int chance);
/**
* Creates a new bee mutation.
* Automatically registered with BeeManager.beeRoot.registerMutation()
* See IBeeMutationBuilder and IMutationBuilder for adding additional properties to the returned mutation.
*
* @param parentBee0 A parent bee for this mutation
* @param parentBee1 A parent bee for this mutation
* @param result The resulting alleles for this mutation
* @param chance The chance that breeding the two parent bees will result in this mutation
* @return a new bee mutation.
*/
IBeeMutationBuilder createMutation(IAlleleBeeSpecies parentBee0, IAlleleBeeSpecies parentBee1, IAllele[] result, int chance);
}
@@ -5,123 +5,130 @@
******************************************************************************/
package forestry.api.apiculture;
import java.util.ArrayList;
import java.util.Collection;
import javax.annotation.Nullable;
import java.util.List;
import com.mojang.authlib.GameProfile;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import com.mojang.authlib.GameProfile;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.ISpeciesRoot;
public interface IBeeRoot extends ISpeciesRoot {
/**
* @return true if passed item is a Forestry bee. Equal to getType(ItemStack stack) != EnumBeeType.NONE
*/
@Override
boolean isMember(ItemStack stack);
/**
* @return true if passed item is a Forestry bee. Equal to getType(ItemStack stack) != null
*/
@Override
boolean isMember(ItemStack stack);
/**
* @return {@link IBee} pattern parsed from the passed stack's nbt data.
*/
@Override
IBee getMember(ItemStack stack);
/**
* @return {@link IBee} pattern parsed from the passed stack's nbt data. Null if the ItemStack is not a valid member.
*/
@Override
@Nullable
IBee getMember(ItemStack stack);
@Override
IBee getMember(NBTTagCompound compound);
@Override
IBee getMember(NBTTagCompound compound);
/* GENOME CONVERSION */
@Override
IBee templateAsIndividual(IAllele[] template);
/* GENOME CONVERSION */
@Override
IBee templateAsIndividual(IAllele[] template);
@Override
IBee templateAsIndividual(IAllele[] templateActive, IAllele[] templateInactive);
@Override
IBee templateAsIndividual(IAllele[] templateActive, IAllele[] templateInactive);
@Override
IBeeGenome templateAsGenome(IAllele[] template);
@Override
IBeeGenome templateAsGenome(IAllele[] template);
@Override
IBeeGenome templateAsGenome(IAllele[] templateActive, IAllele[] templateInactive);
@Override
IBeeGenome templateAsGenome(IAllele[] templateActive, IAllele[] templateInactive);
/* BREEDING TRACKER */
/**
* @param world
* @return {@link IApiaristTracker} associated with the passed world.
*/
IApiaristTracker getBreedingTracker(World world, GameProfile player);
/* BREEDING TRACKER */
/* BEE SPECIFIC */
/**
* @return type of bee encoded on the itemstack. EnumBeeType.NONE if it isn't a bee.
*/
@Override
EnumBeeType getType(ItemStack stack);
/**
* @return {@link IApiaristTracker} associated with the passed world.
*/
@Override
IApiaristTracker getBreedingTracker(World world, @Nullable GameProfile player);
/**
* @return true if passed item is a drone. Equal to getType(ItemStack stack) == EnumBeeType.DRONE
*/
boolean isDrone(ItemStack stack);
/* BEE SPECIFIC */
/**
* @return true if passed item is mated (i.e. a queen)
*/
boolean isMated(ItemStack stack);
/**
* @return type of bee encoded on the itemstack. null if it isn't a bee.
*/
@Nullable
@Override
EnumBeeType getType(ItemStack stack);
/**
* @param genome Valid {@link IBeeGenome}
* @return {@link IBee} from the passed genome
*/
IBee getBee(World world, IBeeGenome genome);
/**
* @return true if passed item is a drone. Equal to getType(ItemStack stack) == EnumBeeType.DRONE
*/
boolean isDrone(ItemStack stack);
/**
* Creates an IBee suitable for a queen containing the necessary second genome for the mate.
*
* @param genome Valid {@link IBeeGenome}
* @param mate Valid {@link IBee} representing the mate.
* @return Mated {@link IBee} from the passed genomes.
*/
IBee getBee(World world, IBeeGenome genome, IBee mate);
/**
* @return true if passed item is mated (i.e. a queen)
*/
boolean isMated(ItemStack stack);
/* TEMPLATES */
@Override
ArrayList<IBee> getIndividualTemplates();
/**
* @param genome Valid {@link IBeeGenome}
* @return {@link IBee} from the passed genome
*/
IBee getBee(IBeeGenome genome);
/* MUTATIONS */
@Override
Collection<IBeeMutation> getMutations(boolean shuffle);
/**
* Creates an IBee suitable for a queen containing the necessary second genome for the mate.
*
* @param genome Valid {@link IBeeGenome}
* @param mate Valid {@link IBee} representing the mate.
* @return Mated {@link IBee} from the passed genomes.
*/
IBee getBee(World world, IBeeGenome genome, IBee mate);
/* GAME MODE */
void resetBeekeepingMode();
/* TEMPLATES */
ArrayList<IBeekeepingMode> getBeekeepingModes();
@Override
List<IBee> getIndividualTemplates();
IBeekeepingMode getBeekeepingMode(World world);
/* MUTATIONS */
@Override
List<IBeeMutation> getMutations(boolean shuffle);
IBeekeepingMode getBeekeepingMode(String name);
/* GAME MODE */
void resetBeekeepingMode();
void registerBeekeepingMode(IBeekeepingMode mode);
List<IBeekeepingMode> getBeekeepingModes();
void setBeekeepingMode(World world, String name);
IBeekeepingMode getBeekeepingMode(World world);
/* MISC */
/**
* Creates beekeepingLogic for a housing. Should be used when the housing is created, see IBeekeepingLogic
*/
IBeekeepingLogic createBeekeepingLogic(IBeeHousing housing);
@Nullable
IBeekeepingMode getBeekeepingMode(String name);
/**
* Combines multiple modifiers from an IBeeHousing into one. Stays up to date with changes to the housing's
* modifiers.
*/
IBeeModifier createBeeHousingModifier(IBeeHousing housing);
void registerBeekeepingMode(IBeekeepingMode mode);
void setBeekeepingMode(World world, IBeekeepingMode mode);
/* MISC */
/**
* Creates beekeepingLogic for a housing.
* Should be used when the housing is created, see IBeekeepingLogic
*/
IBeekeepingLogic createBeekeepingLogic(IBeeHousing housing);
/**
* Combines multiple modifiers from an IBeeHousing into one.
* Stays up to date with changes to the housing's modifiers.
*/
IBeeModifier createBeeHousingModifier(IBeeHousing housing);
/**
* Combines multiple listeners from an IBeeHousing into one.
* Stays up to date with changes to the housing's listeners.
*/
IBeeListener createBeeHousingListener(IBeeHousing housing);
/**
* Combines multiple listeners from an IBeeHousing into one. Stays up to date with changes to the housing's
* listeners.
*/
IBeeListener createBeeHousingListener(IBeeHousing housing);
}
@@ -8,7 +8,6 @@ package forestry.api.apiculture;
/**
* Custom colour provider for bees with complicated colors.
*/
public interface IBeeIconColourProvider {
int getIconColour(int renderPass);
public interface IBeeSpriteColourProvider {
int getSpriteColour(int renderPass);
}
@@ -5,53 +5,90 @@
******************************************************************************/
package forestry.api.apiculture;
import net.minecraft.entity.player.EntityPlayerMP;
import java.io.IOException;
import java.util.List;
import forestry.api.core.INBTTagable;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import forestry.api.core.INbtReadable;
import forestry.api.core.INbtWritable;
/**
* Stores beekeeping logic for bee housings. Get one with BeeManager.beeRoot.createBeekeepingLogic(IBeeHousing housing)
* Save and load it to NBT using the INBTTagable methods.
* Stores beekeeping logic for bee housings.
* Get one with BeeManager.beeRoot.createBeekeepingLogic(IBeeHousing housing)
* Save and load it to NBT using the INbtWritable methods.
*/
public interface IBeekeepingLogic extends INBTTagable {
public interface IBeekeepingLogic extends INbtWritable, INbtReadable {
/* SERVER */
/* SERVER */
/**
* Checks that the bees can work, setting error conditions on the housing where needed
*
* @return true if no errors are present and doWork should be called
*/
boolean canWork();
/**
* Checks that the bees can work, setting error conditions on the housing where needed
*
* @return true if no errors are present and doWork should be called
*/
boolean canWork();
/**
* Performs actual work, breeding, production, etc.
*/
void doWork();
/**
* Performs actual work, breeding, production, etc.
*/
void doWork();
/* CLIENT */
/**
* Force the logic to refresh any cached values and error states.
* Call this when a player opens the gui so that all errors are up to date.
*/
void clearCachedValues();
/**
* Call this when the housing comes into view of the client. (i.e. when tile.getDescriptionPacket() is called)
*/
void syncToClient();
void syncToClient(EntityPlayerMP player);
/* CLIENT */
/**
* Get the progress bar for breeding and production. To avoid network spam, this is only available server-side, and
* must be synced manually to the client when a GUI is open.
*/
int getBeeProgressPercent();
/**
* Sync to client by using {@link #writeToNBT(NBTTagCompound)} in your {@link TileEntity#getUpdateTag()}
*/
void syncToClient();
/**
* Whether bee fx should be active. Internally, this is automatically synced to the client.
*/
boolean canDoBeeFX();
void syncToClient(EntityPlayerMP player);
/**
* Display bee fx. Calls IBee.doFX(IEffectData[] storedData, IBeeHousing housing) on the queen. Internally, the
* queen is automatically synced to the client for the fx.
*/
void doBeeFX();
/**
* Get the progress bar for breeding and production.
* To avoid network spam, this is only available server-side,
* and must be synced manually to the client when a GUI is open.
*/
int getBeeProgressPercent();
/**
* Whether bee fx should be active.
* Internally, this is automatically synced to the client.
*/
@SideOnly(Side.CLIENT)
boolean canDoBeeFX();
/**
* Display bee fx. Calls IBee.doFX(IEffectData[] storedData, IBeeHousing housing) on the queen.
* Internally, the queen is automatically synced to the client for the fx.
*/
@SideOnly(Side.CLIENT)
void doBeeFX();
/**
* Used by bee fx to direct bees to nearby flowers.
* These positions are synced to the client from the server.
*/
List<BlockPos> getFlowerPositions();
default void readData(PacketBuffer data) throws IOException {
}
default void writeData(PacketBuffer data) {
}
}
@@ -5,70 +5,65 @@
******************************************************************************/
package forestry.api.apiculture;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public interface IBeekeepingMode {
/**
* @return Localized name of this beekeeping mode.
*/
String getName();
/**
* @return Localized name of this beekeeping mode.
*/
String getName();
/**
* @return Localized list of strings outlining the behaviour of this beekeeping mode.
*/
ArrayList<String> getDescription();
/**
* @return Localized list of strings outlining the behaviour of this beekeeping mode.
*/
List<String> getDescription();
/**
* @return Float used to modify the wear on comb frames.
*/
float getWearModifier();
/**
* @return Float used to modify the wear on comb frames.
*/
float getWearModifier();
/**
* @param queen
* @return fertility taking into account the birthing queen and surroundings.
*/
int getFinalFertility(IBee queen, World world, int x, int y, int z);
/**
* @return fertility taking into account the birthing queen and surroundings.
*/
int getFinalFertility(IBee queen, World world, BlockPos pos);
/**
* @param queen
* @return true if the queen is genetically "fatigued" and should not be reproduced anymore.
*/
boolean isFatigued(IBee queen, IBeeHousing housing);
/**
* @return true if the queen is genetically "fatigued" and should not be reproduced anymore.
*/
boolean isFatigued(IBee queen, IBeeHousing housing);
/**
* @param queen
* @param housing
* @return true if the queen is being overworked in the bee housing (with chance). will trigger a negative effect.
*/
boolean isOverworked(IBee queen, IBeeHousing housing);
/**
* @return true if the queen is being overworked in the bee housing (with chance). will trigger a negative effect.
* @deprecated bees max out at 16x productivity instead of being overworked.
* TODO remove this method in 1.13
*/
@Deprecated
default boolean isOverworked(IBee queen, IBeeHousing housing) {
return false;
}
/**
*
* @param queen
* @param offspring
* @param housing
* @return true if the genetic structure of the queen is breaking down during spawning of the offspring (with
* chance). will trigger a negative effect.
*/
boolean isDegenerating(IBee queen, IBee offspring, IBeeHousing housing);
/**
* @return true if the genetic structure of the queen is breaking down during spawning of the offspring (with chance). will trigger a negative effect.
*/
boolean isDegenerating(IBee queen, IBee offspring, IBeeHousing housing);
/**
* @param queen
* @return true if an offspring of this queen is considered a natural
*/
boolean isNaturalOffspring(IBee queen);
/**
* @return true if an offspring of this queen is considered a natural
*/
boolean isNaturalOffspring(IBee queen);
/**
* @param queen
* @return true if this mode allows the passed queen or princess to be multiplied
*/
boolean mayMultiplyPrincess(IBee queen);
/**
* @return true if this mode allows the passed queen or princess to be multiplied
*/
boolean mayMultiplyPrincess(IBee queen);
/**
* @return the bee modifier for this mode
*/
IBeeModifier getBeeModifier();
/**
* @return the bee modifier for this mode
*/
IBeeModifier getBeeModifier();
}
@@ -5,34 +5,39 @@
******************************************************************************/
package forestry.api.apiculture;
import java.util.Collection;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
/**
* Bees can be seeded either as hive drops or as mutation results.
*
* <p>
* Add IHiveDrops with HiveManager.get___Hive.addDrop
*
* @author SirSengir
*/
public interface IHiveDrop {
ItemStack getPrincess(World world, int x, int y, int z, int fortune);
IBee getBeeType(IBlockAccess world, BlockPos pos);
Collection<ItemStack> getDrones(World world, int x, int y, int z, int fortune);
NonNullList<ItemStack> getExtraItems(IBlockAccess world, BlockPos pos, int fortune);
Collection<ItemStack> getAdditional(World world, int x, int y, int z, int fortune);
/**
* Chance to drop a bee or extra items. Default drops have 0.80 (= 80 %).
*
* @param world Minecraft world this is called for.
* @param pos Coordinates of the broken hive.
* @return Chance for drop as a float of 0.0 - 1.0.
*/
double getChance(IBlockAccess world, BlockPos pos, int fortune);
/**
* Chance to drop. Default drops have 80 (= 80 %).
*
* @param world Minecraft world this is called for.
* @param x x-Coordinate of the broken hive.
* @param y y-Coordinate of the broken hive.
* @param z z-Coordinate of the broken hive.
* @return Chance for drop as an integer of 0 - 100.
*/
int getChance(World world, int x, int y, int z);
/**
* Chance for the princess to be ignoble. Default is around 0.4 to 0.7 (40% - 70%).
*
* @param world Minecraft world this is called for.
* @param pos Coordinates of the broken hive.
* @return Chance for ignoble as a float of 0.0 - 1.0.
*/
double getIgnobleChance(IBlockAccess world, BlockPos pos, int fortune);
}
@@ -5,37 +5,33 @@
******************************************************************************/
package forestry.api.apiculture;
import java.util.List;
import javax.annotation.Nullable;
import net.minecraft.item.ItemStack;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
public interface IHiveFrame {
/**
* Wears out a frame.
*
* @param housing IBeeHousing the frame is contained in.
* @param frame ItemStack containing the actual frame.
* @param queen Current queen in the caller.
* @param wear Integer denoting the amount worn out. The wear modifier of the current beekeeping mode has already
* been taken into account.
* @return ItemStack containing the actual frame with adjusted damage, or null if it has been broken.
*/
ItemStack frameUsed(IBeeHousing housing, ItemStack frame, IBee queen, int wear);
/**
* Wears out a frame.
*
* @param housing IBeeHousing the frame is contained in.
* @param frame ItemStack containing the actual frame.
* @param queen Current queen in the caller.
* @param wear Integer denoting the amount worn out. The wear modifier of the current beekeeping mode has already been taken into account.
* @return ItemStack containing the actual frame with adjusted damage, or Empty ItemStack if it has been broken.
*/
ItemStack frameUsed(IBeeHousing housing, ItemStack frame, IBee queen, int wear);
IBeeModifier getBeeModifier();
/**
* @param frame ItemStack containing the actual frame.
* @return the {@link IBeeModifier} for this frame.
* @since Forestry 5.5.1
*/
default IBeeModifier getBeeModifier(ItemStack frame) {
return getBeeModifier();
}
/**
* Provides an override for the "Hold Shift" tooltip info for a frame.<br>
* Called by {@link forestry.apiculture.EventHandlerApiculture#addFrameTooltip(ItemTooltipEvent)}.
*
* @return The info to display for this frame, or null if default generated info.
*/
@Nullable
default List<String> getFrameTooltip() {
return null;
}
/**
* @deprecated since Forestry 5.5.1. Use {@link #getBeeModifier(ItemStack)}
*/
@Deprecated
IBeeModifier getBeeModifier();
}
@@ -0,0 +1,30 @@
/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.apiculture;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public interface IHiveTile {
/**
* Call to calm agitated bees. Used by the smoker to stop wild bees from attacking as much.
* Bees will not stay calm for very long.
*/
void calmBees();
boolean isAngry();
/**
* Called when the hive is attacked.
*/
void onAttack(World world, BlockPos pos, EntityPlayer player);
/**
* Called when the hive is broken.
*/
void onBroken(World world, BlockPos pos, EntityPlayer player, boolean canHarvest);
}
@@ -5,13 +5,16 @@
******************************************************************************/
package forestry.api.apiculture;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
public interface IJubilanceFactory {
/**
* The default Jubilance Provider is satisfied when the humidity and temperature are ideal for the bee.
*/
IJubilanceProvider getDefault();
/** The default Jubilance Provider is satisfied when the humidity and temperature are ideal for the bee. */
IJubilanceProvider getDefault();
/** The Requires Resource Jubilance Provider is satisfied when a specific block is under the hive. */
IJubilanceProvider getRequiresResource(Block block, int meta);
/**
* The Requires Resource Jubilance Provider is satisfied when a specific block is under the hive.
*/
IJubilanceProvider getRequiresResource(IBlockState... acceptedBlockStates);
}
@@ -7,13 +7,9 @@ package forestry.api.apiculture;
public interface IJubilanceProvider {
/**
* Returns true when conditions are right to make this species Jubilant. Jubilant bees can produce their Specialty
* products.
*/
boolean isJubilant(IAlleleBeeSpecies species, IBeeGenome genome, IBeeHousing housing);
default String getDescription() {
return null;
}
/**
* Returns true when conditions are right to make this species Jubilant.
* Jubilant bees can produce their Specialty products.
*/
boolean isJubilant(IAlleleBeeSpecies species, IBeeGenome genome, IBeeHousing housing);
}
@@ -7,6 +7,7 @@ package forestry.api.apiculture.hives;
public class HiveManager {
public static IHiveRegistry hiveRegistry;
public static IHiveGenHelper genHelper;
public static IHiveRegistry hiveRegistry;
public static IHiveGenHelper genHelper;
}
@@ -5,46 +5,47 @@
******************************************************************************/
package forestry.api.apiculture.hives;
import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import java.util.Random;
import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
public interface IHiveDescription {
/**
* The hive generator for this hive.
*/
IHiveGen getHiveGen();
/**
* The hive generator for this hive.
*/
IHiveGen getHiveGen();
/**
* The hive block to be placed in the world.
*/
Block getBlock();
/**
* The hive block to be placed in the world.
*/
IBlockState getBlockState();
int getMeta();
/**
* returns true if the hive can be generated in these conditions.
* Used as a fast early-elimination check for hives that have no hope of spawning in the area.
*/
boolean isGoodBiome(Biome biome);
/**
* returns true if the hive can be generated in these conditions. Used as a fast early-elimination check for hives
* that have no hope of spawning in the area.
*/
boolean isGoodBiome(BiomeGenBase biome);
boolean isGoodHumidity(EnumHumidity humidity);
boolean isGoodHumidity(EnumHumidity humidity);
boolean isGoodTemperature(EnumTemperature temperature);
boolean isGoodTemperature(EnumTemperature temperature);
/**
* float representing the relative chance a hive will generate in a chunk.
* Default is 1.0, higher numbers result in more hives, smaller will result in fewer.
* Tree hives want around 3.0 to 4.0 since there are less locations to generate on.
*/
float getGenChance();
/**
* float representing the relative chance a hive will generate in a chunk. Default is 1.0, higher numbers result in
* more hives, smaller will result in fewer. Tree hives want around 3.0 to 4.0 since there are less locations to
* generate on.
*/
float getGenChance();
/**
* Called after successful hive generation. world, x, y, z give the location of the new hive.
**/
void postGen(World world, int x, int y, int z);
/**
* Called after successful hive generation.
* world, x, y, z give the location of the new hive.
**/
void postGen(World world, Random rand, BlockPos pos);
}
@@ -5,23 +5,30 @@
******************************************************************************/
package forestry.api.apiculture.hives;
import javax.annotation.Nullable;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public interface IHiveGen {
/**
* return a Y value that the hive should try to generate at. returns negative if the hive can't be placed anywhere.
*/
int getYForHive(World world, int x, int z);
/**
* return a position that the hive should try to generate at.
* returns null if the hive can't be placed anywhere.
*/
@Nullable
BlockPos getPosForHive(World world, int x, int z);
/**
* returns true if the hive can be generated at this location. Used for advanced conditions, like checking that the
* ground below the hive is a certain type.
*/
boolean isValidLocation(World world, int x, int y, int z);
/**
* returns true if the hive can be generated at this location.
* Used for advanced conditions, like checking that the ground below the hive is a certain type.
*/
boolean isValidLocation(World world, BlockPos pos);
/**
* returns true if the hive can safely replace the block at this location.
*/
boolean canReplace(IBlockState blockState, World world, BlockPos pos);
/**
* returns true if the hive can safely replace the block at this location.
*/
boolean canReplace(World world, int x, int y, int z);
}
@@ -9,14 +9,15 @@ import net.minecraft.block.Block;
public interface IHiveGenHelper {
/**
* Returns a hiveGen for a hive that spawns on the ground. validGroundBlocks specifies which block materials it can
* spawn on.
*/
IHiveGen ground(Block... validGroundBlocks);
/**
* Returns a hiveGen for a hive that spawns on the ground.
* validGroundBlocks specifies which block materials it can spawn on.
*/
IHiveGen ground(Block... validGroundBlocks);
/**
* Returns a hiveGen for a hive that spawns in trees.
*/
IHiveGen tree();
/**
* Returns a hiveGen for a hive that spawns in trees.
*/
IHiveGen tree();
}
@@ -6,29 +6,64 @@
package forestry.api.apiculture.hives;
import java.util.List;
import java.util.Locale;
import net.minecraft.util.IStringSerializable;
import forestry.api.apiculture.IHiveDrop;
public interface IHiveRegistry {
/* Forestry Hive Names */
public static final String forest = "Forestry:forest";
public static final String meadows = "Forestry:meadows";
public static final String desert = "Forestry:desert";
public static final String jungle = "Forestry:jungle";
public static final String end = "Forestry:end";
public static final String snow = "Forestry:snow";
public static final String swamp = "Forestry:swamp";
/* Forestry Hive Names */
enum HiveType implements IStringSerializable {
FOREST("forestry:forest", "forestry.speciesForest"),
MEADOWS("forestry:meadows", "forestry.speciesMeadows"),
DESERT("forestry:desert", "forestry.speciesModest"),
JUNGLE("forestry:jungle", "forestry.speciesTropical"),
END("forestry:end", "forestry.speciesEnded"),
SNOW("forestry:snow", "forestry.speciesWintry"),
SWAMP("forestry:swamp", "forestry.speciesMarshy"),
SWARM("forestry:swarm", "forestry.speciesForest");
/**
* Adds a new hive to be generated in the world.
*/
void registerHive(String hiveName, IHiveDescription hiveDescription);
public static final HiveType[] VALUES = values();
/**
* Add drops to a registered hive.
*/
void addDrops(String hiveName, IHiveDrop... drops);
private final String hiveUid;
private final String speciesUid;
void addDrops(String hiveName, List<IHiveDrop> drop);
HiveType(String hiveUid, String speciesUid) {
this.hiveUid = hiveUid;
this.speciesUid = speciesUid;
}
public String getHiveUid() {
return hiveUid;
}
public String getSpeciesUid() {
return speciesUid;
}
@Override
public String getName() {
return name().toLowerCase(Locale.ENGLISH);
}
public int getMeta() {
return ordinal();
}
}
/**
* Adds a new hive to be generated in the world.
*/
void registerHive(String hiveName, IHiveDescription hiveDescription);
/**
* Add drops to a registered hive.
*/
void addDrops(String hiveName, IHiveDrop... drops);
void addDrops(String hiveName, List<IHiveDrop> drop);
}
@@ -3,7 +3,12 @@
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
@API(apiVersion = "4.1.0", owner = "ForestryAPI|apiculture", provides = "ForestryAPI|hives")
package forestry.api.apiculture.hives;
import cpw.mods.fml.common.API;
import javax.annotation.ParametersAreNonnullByDefault;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraftforge.fml.common.API;
@@ -3,7 +3,12 @@
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
@API(apiVersion = "5.0.0", owner = "ForestryAPI|core", provides = "ForestryAPI|apiculture")
package forestry.api.apiculture;
import cpw.mods.fml.common.API;
import javax.annotation.ParametersAreNonnullByDefault;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraftforge.fml.common.API;
@@ -0,0 +1,20 @@
/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.arboriculture;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.CapabilityInject;
import forestry.api.core.IArmorNaturalist;
public class ArboricultureCapabilities {
/**
* Capability for {@link IArmorNaturalist}.
* The {@link Capability#getDefaultInstance()} will always show pollination with no side effects.
*/
@CapabilityInject(IArmorNaturalist.class)
public static Capability<IArmorNaturalist> ARMOR_NATURALIST;
}
@@ -0,0 +1,132 @@
/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.arboriculture;
import java.util.Locale;
import java.util.Random;
public enum EnumForestryWoodType implements IWoodType {
LARCH(4),
TEAK(4),
ACACIA(4),
LIME(4),
CHESTNUT(4),
WENGE(4),
BAOBAB(4),
SEQUOIA(3, 4.0f),
KAPOK(4),
EBONY(4),
MAHOGANY(4),
BALSA(4, 1.0f),
WILLOW(4),
WALNUT(4),
GREENHEART(4, 7.5f),
CHERRY(4),
MAHOE(4),
POPLAR(4),
PALM(4),
PAPAYA(4),
PINE(4, 3.0f),
PLUM(4),
MAPLE(4),
CITRUS(4),
GIGANTEUM(3, 4.0f),
IPE(4),
PADAUK(4),
COCOBOLO(4),
ZEBRAWOOD(4);
public static final float DEFAULT_HARDNESS = 2.0f;
public static final EnumForestryWoodType[] VALUES = values();
private final int carbonization;
private final float hardness;
EnumForestryWoodType(int carbonization) {
this(carbonization, DEFAULT_HARDNESS);
}
EnumForestryWoodType(int carbonization, float hardness) {
this.carbonization = carbonization;
this.hardness = hardness;
}
@Override
public float getHardness() {
return hardness;
}
public static EnumForestryWoodType getRandom(Random random) {
return VALUES[random.nextInt(VALUES.length)];
}
@Override
public String toString() {
return super.toString().toLowerCase(Locale.ENGLISH);
}
@Override
public String getName() {
return toString();
}
@Override
public int getMetadata() {
return ordinal();
}
public static EnumForestryWoodType byMetadata(int meta) {
if (meta < 0 || meta >= VALUES.length) {
meta = 0;
}
return VALUES[meta];
}
@Override
public int getCarbonization() {
return carbonization;
}
@Override
public float getCharcoalChance(int numberOfCharcoal) {
if (numberOfCharcoal == 3) {
return 0.75F;
} else if (numberOfCharcoal == 4) {
return 0.5F;
} else if (numberOfCharcoal == 5) {
return 0.25F;
}
return 0.15F;
}
@Override
public String getPlankTexture() {
return "forestry:blocks/wood/planks." + getName();
}
@Override
public String getDoorLowerTexture() {
return "forestry:blocks/doors/" + getName() + "_lower";
}
@Override
public String getDoorUpperTexture() {
return "forestry:blocks/doors/" + getName() + "_upper";
}
@Override
public String getBarkTexture() {
return "forestry:blocks/wood/bark." + getName();
}
@Override
public String getHeartTexture() {
return "forestry:blocks/wood/heart." + getName();
}
}
@@ -5,44 +5,45 @@
******************************************************************************/
package forestry.api.arboriculture;
import net.minecraft.util.StatCollector;
import net.minecraft.util.text.translation.I18n;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IFruitFamily;
public enum EnumFruitFamily implements IFruitFamily {
PRUNES("prunes", "Prunus domestica"),
POMES("pomes", "Pomum"),
JUNGLE("jungle", "Tropicus"),
NUX("nuts", "Nux"),
NONE("none", "None");
PRUNES("prunes", "Prunus domestica"),
POMES("pomes", "Pomum"),
JUNGLE("jungle", "Tropicus"),
NUX("nuts", "Nux");
private final String uid;
private final String scientific;
private final String uid;
private final String scientific;
EnumFruitFamily(String uid, String scientific) {
this.uid = uid;
this.scientific = scientific;
AlleleManager.alleleRegistry.registerFruitFamily(this);
}
EnumFruitFamily(String uid, String scientific) {
this.uid = uid;
this.scientific = scientific;
AlleleManager.alleleRegistry.registerFruitFamily(this);
}
@Override
public String getUID() {
return "forestry." + uid;
}
@Override
public String getUID() {
return "forestry." + uid;
}
@Override
public String getScientific() {
return this.scientific;
}
@Override
public String getScientific() {
return this.scientific;
}
@Override
public String getName() {
return I18n.translateToLocal("for.family." + uid);
}
@Override
public String getName() {
return StatCollector.translateToLocal("for.family." + uid);
}
@Override
public String getDescription() {
return I18n.translateToLocal("for.family." + uid + ".description");
}
@Override
public String getDescription() {
return StatCollector.translateToLocal("for.family." + uid + ".description");
}
}
@@ -8,22 +8,18 @@ package forestry.api.arboriculture;
import forestry.api.genetics.ISpeciesType;
public enum EnumGermlingType implements ISpeciesType {
SAPLING("sapling"), POLLEN("pollen");
SAPLING("sapling"),
BLOSSOM("blossom"),
POLLEN("pollen"),
GERMLING("germling"),
NONE("none");
public static final EnumGermlingType[] VALUES = values();
public static final EnumGermlingType[] VALUES = values();
private final String name;
private final String name;
EnumGermlingType(String name) {
this.name = name;
}
EnumGermlingType(String name) {
this.name = name;
}
public String getName() {
return name;
}
public String getName() {
return name;
}
}
@@ -6,10 +6,5 @@
package forestry.api.arboriculture;
public enum EnumLeafType {
DECIDUOUS,
CONIFERS,
JUNGLE,
WILLOW,
MAPLE,
PALM
DECIDUOUS, CONIFERS, JUNGLE, WILLOW, MAPLE, PALM
}
@@ -5,10 +5,10 @@
******************************************************************************/
package forestry.api.arboriculture;
public enum EnumGrowthConditions {
HOSTILE,
PALTRY,
NORMAL,
GOOD,
EXCELLENT
public enum EnumPileType {
WOOD,
DIRT,
ASH;
public static final EnumPileType[] VALUES = values();
}
@@ -7,97 +7,76 @@ package forestry.api.arboriculture;
import java.util.Locale;
import net.minecraftforge.common.EnumPlantType;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IAlleleArea;
import forestry.api.genetics.IAlleleBoolean;
import forestry.api.genetics.IAlleleFloat;
import forestry.api.genetics.IAlleleInteger;
import forestry.api.genetics.IAllelePlantType;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.IFruitFamily;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraftforge.common.EnumPlantType;
public enum EnumTreeChromosome implements IChromosomeType {
/**
* Determines the following: - WorldGen, including the used wood blocks - {@link IFruitFamily}s supported. Limits
* which {@link IFruitProvider} will actually yield fruit with this species. - Native {@link EnumPlantType} for this
* tree. Combines with the PLANT chromosome.
*/
SPECIES(IAlleleTreeSpecies.class),
/**
* {@link IGrowthProvider}, determines conditions required by the tree to grow.
*/
GROWTH(IAlleleGrowth.class),
/**
* A float modifying the height of the tree. Taken into account at worldgen.
*/
HEIGHT(IAlleleFloat.class),
/**
* Chance for saplings.
*/
FERTILITY(IAlleleFloat.class),
/**
* {@link IFruitProvider}, determines if and what fruits are grown on the tree. Limited by the {@link IFruitFamily}s
* the species supports.
*/
FRUITS(IAlleleFruit.class),
/**
* Chance for fruit leaves and/or drops.
*/
YIELD(IAlleleFloat.class),
/**
* May add additional tolerances for {@link EnumPlantTypes}.
*/
PLANT(IAllelePlantType.class),
/**
* Determines the speed at which fruit will ripen on this tree.
*/
SAPPINESS(IAlleleFloat.class),
/**
* Territory for leaf effects. Unused.
*/
TERRITORY(IAlleleArea.class),
/**
* Leaf effect. Unused.
*/
EFFECT(IAlleleLeafEffect.class),
/**
* Amount of random ticks which need to elapse before a sapling will grow into a tree.
*/
MATURATION(IAlleleInteger.class),
/**
* Determines the following: - WorldGen, including the used wood blocks - {@link IFruitFamily}s supported. Limits which {@link IFruitProvider}
* will actually yield fruit with this species. - Native {@link EnumPlantType} for this tree. Combines with the PLANT chromosome.
*/
SPECIES(IAlleleTreeSpecies.class),
/**
* A float modifying the height of the tree. Taken into account at worldgen.
*/
HEIGHT(IAlleleFloat.class),
/**
* Chance for saplings.
*/
FERTILITY(IAlleleFloat.class),
/**
* {@link IFruitProvider}, determines if and what fruits are grown on the tree. Limited by the {@link IFruitFamily}s the species supports.
*/
FRUITS(IAlleleFruit.class),
/**
* Chance for fruit leaves and/or drops.
*/
YIELD(IAlleleFloat.class),
/**
* Determines the speed at which fruit will ripen on this tree.
*/
SAPPINESS(IAlleleFloat.class),
/**
* Leaf effect. Unused.
*/
EFFECT(IAlleleLeafEffect.class),
/**
* Amount of random ticks which need to elapse before a sapling will grow into a tree.
*/
MATURATION(IAlleleInteger.class),
GIRTH(IAlleleInteger.class),
/**
* Determines if the tree can burn.
*/
FIREPROOF(IAlleleBoolean.class);
GIRTH(IAlleleInteger.class),
/**
* Determines if the tree can burn.
*/
FIREPROOF(IAlleleBoolean.class),;
final Class<? extends IAllele> clss;
private final Class<? extends IAllele> alleleClass;
/**
* Cached values() array for frequent read-only operations, the array should NOT be mutated.
*/
public static final EnumTreeChromosome[] VALUES = values();
EnumTreeChromosome(Class<? extends IAllele> alleleClass) {
this.alleleClass = alleleClass;
}
EnumTreeChromosome(Class<? extends IAllele> clss) {
this.clss = clss;
}
@Override
public Class<? extends IAllele> getAlleleClass() {
return alleleClass;
}
@Override
public Class<? extends IAllele> getAlleleClass() {
return clss;
}
@Override
public String getName() {
return this.toString().toLowerCase(Locale.ENGLISH);
}
@Override
public String getName() {
return this.toString().toLowerCase(Locale.ENGLISH);
}
@Override
public ISpeciesRoot getSpeciesRoot() {
return TreeManager.treeRoot;
}
@Override
public ISpeciesRoot getSpeciesRoot() {
return TreeManager.treeRoot;
}
}
@@ -0,0 +1,122 @@
/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.arboriculture;
import java.util.Locale;
import java.util.Random;
import net.minecraft.block.BlockPlanks;
public enum EnumVanillaWoodType implements IWoodType {
OAK(BlockPlanks.EnumType.OAK, 5),
SPRUCE(BlockPlanks.EnumType.SPRUCE, 4),
BIRCH(BlockPlanks.EnumType.BIRCH, 4),
JUNGLE(BlockPlanks.EnumType.JUNGLE, 5),
ACACIA(BlockPlanks.EnumType.ACACIA, 4),
DARK_OAK(BlockPlanks.EnumType.DARK_OAK, 5);
public static final EnumVanillaWoodType[] VALUES = values();
public static EnumVanillaWoodType getRandom(Random random) {
return VALUES[random.nextInt(VALUES.length)];
}
private final BlockPlanks.EnumType vanillaType;
private final int carbonization;
EnumVanillaWoodType(BlockPlanks.EnumType vanillaType, int carbonization) {
this.vanillaType = vanillaType;
this.carbonization = carbonization;
}
public BlockPlanks.EnumType getVanillaType() {
return vanillaType;
}
@Override
public String toString() {
return super.toString().toLowerCase(Locale.ENGLISH);
}
@Override
public String getName() {
return toString();
}
@Override
public int getMetadata() {
return ordinal();
}
public static EnumVanillaWoodType byMetadata(int meta) {
if (meta < 0 || meta >= VALUES.length) {
meta = 0;
}
return VALUES[meta];
}
@Override
public float getHardness() {
return 2.0F;
}
@Override
public int getCarbonization() {
return carbonization;
}
@Override
public float getCharcoalChance(int numberOfCharcoal) {
if (numberOfCharcoal == 3) {
return 0.75F;
} else if (numberOfCharcoal == 4) {
return 0.5F;
} else if (numberOfCharcoal == 5) {
return 0.25F;
}
return 0.15F;
}
@Override
public String getPlankTexture() {
if (this == DARK_OAK) {
return "blocks/planks_big_oak";
}
return "blocks/planks_" + getName();
}
@Override
public String getDoorLowerTexture() {
if (this == OAK) {
return "blocks/door_wood_lower";
}
return "blocks/door_wood_lower";
}
@Override
public String getDoorUpperTexture() {
if (this == OAK) {
return "blocks/door_wood_upper";
}
return "blocks/door_" + getName() + "_upper";
}
@Override
public String getBarkTexture() {
if (this == DARK_OAK) {
return "blocks/log_big_oak";
}
return "blocks/log_" + getName();
}
@Override
public String getHeartTexture() {
if (this == DARK_OAK) {
return "blocks/log_big_oak_top";
}
return "blocks/log_" + getName() + "_top";
}
}
@@ -1,93 +0,0 @@
/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.arboriculture;
import java.util.Locale;
import java.util.Random;
import net.minecraft.nbt.NBTTagCompound;
public enum EnumWoodType {
LARCH,
TEAK,
ACACIA,
LIME,
CHESTNUT,
WENGE,
BAOBAB,
SEQUOIA(4.0f),
KAPOK,
EBONY,
MAHOGANY,
BALSA(1.0f),
WILLOW,
WALNUT,
GREENHEART(7.5f),
CHERRY,
MAHOE,
POPLAR,
PALM,
PAPAYA,
PINE(3.0f),
PLUM,
MAPLE,
CITRUS,
GIGANTEUM,
IPE,
PADAUK,
COCOBOLO,
ZEBRAWOOD;
public static final float DEFAULT_HARDNESS = 2.0f;
public static final EnumWoodType[] VALUES = values();
private final float hardness;
EnumWoodType() {
this.hardness = DEFAULT_HARDNESS;
}
EnumWoodType(float hardness) {
this.hardness = hardness;
}
public float getHardness() {
return hardness;
}
/**
* @deprecated since Forestry 4.2. Woods use itemDamage instead of NBT now
*/
@Deprecated
public void saveToCompound(NBTTagCompound compound) {
compound.setInteger("WoodType", ordinal());
}
/**
* @deprecated since Forestry 4.2. Woods use itemDamage instead of NBT now
*/
@Deprecated
public static EnumWoodType getFromCompound(NBTTagCompound compound) {
if (compound != null) {
int typeOrdinal = compound.getInteger("WoodType");
if (typeOrdinal >= 0 && typeOrdinal < VALUES.length) {
return VALUES[typeOrdinal];
}
}
return EnumWoodType.LARCH;
}
public static EnumWoodType getRandom(Random random) {
return VALUES[random.nextInt(VALUES.length)];
}
@Override
public String toString() {
return super.toString().toLowerCase(Locale.ENGLISH);
}
}
@@ -5,12 +5,18 @@
******************************************************************************/
package forestry.api.arboriculture;
import forestry.api.genetics.IAllele;
import javax.annotation.Nullable;
import forestry.api.genetics.IAlleleProperty;
/**
* Simple allele encapsulating an {@link IFruitProvider}.
*/
public interface IAlleleFruit extends IAllele {
public interface IAlleleFruit extends IAlleleProperty<IAlleleFruit> {
IFruitProvider getProvider();
@Nullable
String getModelName();
IFruitProvider getProvider();
}
@@ -5,15 +5,16 @@
******************************************************************************/
package forestry.api.arboriculture;
import net.minecraft.world.World;
import forestry.api.genetics.IAlleleEffect;
import forestry.api.genetics.IEffectData;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
/**
* Simple allele encapsulating a leaf effect. (Not implemented)
*/
public interface IAlleleLeafEffect extends IAlleleEffect {
IEffectData doEffect(ITreeGenome genome, IEffectData storedData, World world, int x, int y, int z);
IEffectData doEffect(ITreeGenome genome, IEffectData storedData, World world, BlockPos pos);
}
@@ -7,42 +7,61 @@ package forestry.api.arboriculture;
import java.util.Collection;
import net.minecraft.util.IIcon;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.common.EnumPlantType;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import forestry.api.core.IModelManager;
import forestry.api.genetics.IAlleleProperty;
import forestry.api.genetics.IAlleleSpecies;
import forestry.api.genetics.IFruitFamily;
public interface IAlleleTreeSpecies extends IAlleleSpecies {
public interface IAlleleTreeSpecies extends IAlleleSpecies, IAlleleProperty<IAlleleTreeSpecies> {
ITreeRoot getRoot();
@Override
ITreeRoot getRoot();
/**
* @return Native plant type of this species.
*/
EnumPlantType getPlantType();
/**
* @return Native plant type of this species.
*/
EnumPlantType getPlantType();
/**
* @return List of all {@link IFruitFamily}s which can grow on leaves generated by this species.
*/
Collection<IFruitFamily> getSuitableFruit();
/**
* @return List of all {@link IFruitFamily}s which can grow on leaves generated by this species.
*/
Collection<IFruitFamily> getSuitableFruit();
/**
* @return Tree generator for this species.
*/
ITreeGenerator getGenerator();
/**
* @return Tree generator for this species.
*/
ITreeGenerator getGenerator();
/**
* @return Float between 0 and 1 representing the rarity of the species, will affect spawn rate. If it's 0, it will not spawn.
*/
float getRarity();
/* TEXTURES AND OVERRIDES */
int getLeafColour(boolean pollinated);
IWoodProvider getWoodProvider();
ILeafProvider getLeafProvider();
IGrowthProvider getGrowthProvider();
@SideOnly(Side.CLIENT)
IIcon getLeafIcon(boolean pollinated, boolean fancy);
/* MODELS AND OVERRIDES */
@SideOnly(Side.CLIENT)
ILeafSpriteProvider getLeafSpriteProvider();
@SideOnly(Side.CLIENT)
IIcon getGermlingIcon(EnumGermlingType type, int renderPass);
@SideOnly(Side.CLIENT)
int getGermlingColour(EnumGermlingType type, int renderPass);
@SideOnly(Side.CLIENT)
ModelResourceLocation getGermlingModel(EnumGermlingType type);
@SideOnly(Side.CLIENT)
void registerModels(Item item, IModelManager manager, EnumGermlingType type);
@SideOnly(Side.CLIENT)
int getGermlingColour(EnumGermlingType type, int renderPass);
}
@@ -0,0 +1,37 @@
/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.arboriculture;
import forestry.api.genetics.IAlleleSpeciesBuilder;
import forestry.api.genetics.IFruitFamily;
import net.minecraftforge.common.EnumPlantType;
public interface IAlleleTreeSpeciesBuilder extends IAlleleSpeciesBuilder {
@Override
IAlleleTreeSpecies build();
/**
* Add a fruit family for this tree. Trees can have multiple fruit families.
*/
IAlleleTreeSpeciesBuilder addFruitFamily(IFruitFamily family);
/**
* Set the minecraft plant type for this tree. Default is Plains.
*/
IAlleleTreeSpeciesBuilder setPlantType(EnumPlantType type);
/**
* Set rarity of the species, will affect spawn rate in the world. Must be a float between 0 and 1. If it's 0, it will not spawn.
*/
IAlleleTreeSpeciesBuilder setRarity(float rarity);
/**
* Set the growth provider.
*/
IAlleleTreeSpeciesBuilder setGrowthProvider(IGrowthProvider growthProvider);
}
@@ -1,20 +0,0 @@
/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.arboriculture;
import net.minecraftforge.common.EnumPlantType;
import forestry.api.genetics.IAlleleSpeciesCustom;
import forestry.api.genetics.IFruitFamily;
public interface IAlleleTreeSpeciesCustom extends IAlleleSpeciesCustom, IAlleleTreeSpecies {
/** Add a fruit family for this tree. Trees can have multiple fruit families. */
IAlleleTreeSpeciesCustom addFruitFamily(IFruitFamily family);
/** Set the minecraft plant type for this tree. Default is Plains. */
IAlleleTreeSpeciesCustom setPlantType(EnumPlantType type);
}
Loaded 100 of 3890 files, more files were not shown because too many files have changed in this diff. Show more