diff --git a/magicbees_res/changelog.txt b/magicbees_res/changelog.txt index aa7c8f2..f1f87ed 100644 --- a/magicbees_res/changelog.txt +++ b/magicbees_res/changelog.txt @@ -5,6 +5,9 @@ Added zh_CN localization (by crafteverywhere) Added de_DE localization (by philip98) Added ru_RU localization (by CrazyTechno) +1.4.7b +Fix for creative mode crash when a certain config option is enabled. + 1.4.7a Update for Forestry Beta. diff --git a/magicbees_res/lang/magicbees/de_DE.xml b/magicbees_res/lang/magicbees/de_DE.xml index 5bf565f..27ec3e3 100644 --- a/magicbees_res/lang/magicbees/de_DE.xml +++ b/magicbees_res/lang/magicbees/de_DE.xml @@ -1,190 +1,194 @@ - - Handvoll Gummibärchen - Thaumium-Kescher - Thaumium-Gartenschere - - - Großholz-Planken - Großholz-Stufe - Silberholz-Planken - Silberholz-Stufe - - - Okkultistische Wabe - Jenseitige Wabe - Papierwabe - Extreme Wabe - Luftige Wabe - Feurige Wabe - Wässrige Wabe - Irdene Wabe - Magische Wabe - Gedächniswabe - Verstohlene Wabe - - - Magisches Wachs - - - Bezaubernder Tropfen - Verstandestropfen - - - Ungewöhnliche Pollen - Geschichtete Pollen - - - Trübe Propolis - Hauchige Propolis - Brennende Propolis - Fließende Propolis - Steinige Propolis - Durchdrungene Propolis - - - Wissensfragment - Aromatischer Klumpen - Konzentriertes Gemisch - Kristallisierter %s - Aspekt - - - Magisches Rähmchen - Elastisches Rähmchen - Behutsames Rähmchen - Metabolisches Rähmchen - Nekrotisches Rähmchen - Zeiträhmchen - - - Magische Kapsel - Kapsel der Leere - - - Leere - Wasser - Lava - Biomasse - Biodiesel - Öl - Diesel - Samenkernöl - Honig - Saft - Eis - Milch - Säure - Gift - Flüssiger Stickstoff - DNA - Kreosot - Dampf - - - Vollmond - Abnehmender Dreiviertelmond - Zunehmender Dreiviertelmond - Abnehmender Halbmond - Zunehmender Halbmond - Abnehmender Sichelmond - Zunehmender Sichelmond - Neumond - - - Rucksack des Wundertäters - - - Esoterisch - Eine ungewöhnliche Kreuzung, welche magische Eigenschaften zu haben scheint.|Apinomicon - Mysteriös - Diese Bienen sind zum Ender der Welt und wieder zurück geflogen, ihre Macht ist dabei gestiegen.|Apinomicon - Geheimnisvoll - "Ihre Erzeugnisse sind mit Energie geladen."|Azanor, Master Thaumaturge - Bezaubert - Deine ersten Versuche in der Thaumcraft-Bienenzucht haben Früchte getragen. Summende Früchte.|Apinomicon - Verzaubert - Erfolgreiche Generationen bezauberter Bienen haben ihre Verbindungen zum Unbekannten verstärkt.|Apinomicon - Übernatürlich - Diese Bienen markieren die Linie zwischen dieser Welt und dem Jenseits.|Apinomicon - Schülerhaft - "Was will die Biene mit meinem Papier?!"|Yorae, Biblothekar - Schulisch - "Ich bin mir nicht sicher, aber ich glaube sie sind schlauer als ich..."|Yorae, Bibliothekar - Gelehrt - lim(x^(i / pi)/ log(e * 7 - ln(32/x^-pi))). Löse nach Honig auf.|Notiz, gefunden auf Yoraes Schreibtisch - Extrem - "Diese fühlen sich ungewönlich zu Scherben hingezogen. Das verlangt weitere Untersuchungen."|Azanor, Meister-Thaumaturg - Aura - "Sie arbeiten so atemberaubend schnell."|Sengir, verrückter Imker - Ignis - Achtung: Inhalt des Bienenkorbs extrem heiß.|Warnschild auf Azanors Bienenkorb - Aqua - "Ich habe mal versucht, die zu züchten, aber es lief nicht alles so gut."|MysteriousAges, Fortgeschrittener Thaumaturge - Solum - "Ich muss noch mal das Rezept für diese Bienen ausgraben, aber Achtung, ihre Stacheln boren sich in deine Haut."|MysteriousAges, Anfänger in der Comedy - Praecantatio - Bienenzucht ist Magie!|Apinomicon, Preface - Bewusst - "Sie können in deine Seele sehen!"|Florastar, Bienenzucht-Expertin - Vis - "Sie können Veränderungen in der Aura wahrnehmen, aber noch nicht verändern."|Azanors Mitschriften - Pur - "Es ist wie ein Bienenwächter!"|MysteriousAges, Thaumaturg - Flux - "Ich dachte, sie würden mit beim Aufräumen helfen, aber sie haben es noch dreckiger gemacht!"|Kreicus, Fortgeschrittener Thaumaturg - Knotenhaft - Nachdem sie eine irre Verwandlung hinter sich gebracht haben, wirken diese Bienen nun anziehend auf Magie.|Apinomicon - Schleichend - Diese Bienen wurden xenophob und schlecht gelaunt, lass Vorsicht walten!|Apinomicon - Intelligent - Ihre Waben mögen zwar übel riechen und stinken, aber ihr Geist ist weit entwickelt.|Apinomicon - Hauchdünn - Während sie arbeiten werden sie immer wieder für kurze Zeit unsichtbar.|Apinomicon - Dünn - Ihre Sprache ist entstellt und unverständlich. Es ist möglich, dass sie zu unnatürlichen Wesen sprechen.|Apinomicon - Verrückt - Sie scheinen auf unerklärliche Art und Weise Fledermäuse anzuziehen.|Apinomicon - Gespenstisch - "*seufz*... Ernsthaft?"|Taveria - Rechtzeitig - "Ein Imker ist nie zu spät. Er kommt immer dann an, wenn er er es geplant hat!"|Sengir, Verrückter Imker - Stolz - Sie leben in Frieden innerhalb des Sichtfelds des Auges der Harmonie|Ramponierte überreste des antiken Apinomicons - Doktorisch - "Willst du ein Gummibärchen haben?"|Vorbeigehender Unbekannter mit großem Schal und blauer Box - - - Reinigend - Abbaugeschwindigkeit - Schnelligkeit - Langsamkeit - Aura-Anziehungskraft - Intelligent - Verrückt - Dünn - Gespenstisch - Bücher - Magische Blumen - Knotenpunkt - Knotenreinigung - Knotenverschmutzung - - - Geheimnisvoll - - Übernatürlich - - Gelehrt - - Thaumisch - - Schleichend - - Kraft - - Zwit - + + Handvoll Gummibärchen + Thaumium-Kescher + Thaumium-Gartenschere + + + Großholz-Planken + Großholz-Stufe + Silberholz-Planken + Silberholz-Stufe + + + Okkultistische Wabe + Jenseitige Wabe + Papierwabe + Extreme Wabe + Luftige Wabe + Feurige Wabe + Wässrige Wabe + Irdene Wabe + Magische Wabe + Gedächniswabe + Verstohlene Wabe + + + Magisches Wachs + + + Bezaubernder Tropfen + Verstandestropfen + + + Ungewöhnliche Pollen + Geschichtete Pollen + + + Trübe Propolis + Hauchige Propolis + Brennende Propolis + Fließende Propolis + Steinige Propolis + Durchdrungene Propolis + + + Wissensfragment + Aromatischer Klumpen + Konzentriertes Gemisch + Kristallisierter %s - Aspekt + + + Magisches Rähmchen + Elastisches Rähmchen + Behutsames Rähmchen + Metabolisches Rähmchen + Nekrotisches Rähmchen + Zeiträhmchen + + + Magische Kapsel + Kapsel der Leere + + + Leere + Wasser + Lava + Biomasse + Biodiesel + Öl + Diesel + Samenkernöl + Honig + Saft + Eis + Milch + Säure + Gift + Flüssiger Stickstoff + DNA + Kreosot + Dampf + + + Vollmond + Abnehmender Dreiviertelmond + Zunehmender Dreiviertelmond + Abnehmender Halbmond + Zunehmender Halbmond + Abnehmender Sichelmond + Zunehmender Sichelmond + Neumond + + + Rucksack des Wundertäters + + + Esoterisch + Eine ungewöhnliche Kreuzung, welche magische Eigenschaften zu haben scheint.|Apinomicon + Mysteriös + Diese Bienen sind zum Ender der Welt und wieder zurück geflogen, ihre Macht ist dabei gestiegen.|Apinomicon + Geheimnisvoll + "Ihre Erzeugnisse sind mit Energie geladen."|Azanor, Master Thaumaturge + + Bezaubert + Deine ersten Versuche in der Thaumcraft-Bienenzucht haben Früchte getragen. Summende Früchte.|Apinomicon + Verzaubert + Erfolgreiche Generationen bezauberter Bienen haben ihre Verbindungen zum Unbekannten verstärkt.|Apinomicon + Übernatürlich + Diese Bienen markieren die Linie zwischen dieser Welt und dem Jenseits.|Apinomicon + + Schülerhaft + "Was will die Biene mit meinem Papier?!"|Yorae, Biblothekar + Schulisch + "Ich bin mir nicht sicher, aber ich glaube sie sind schlauer als ich..."|Yorae, Bibliothekar + Gelehrt + lim(x^(i / pi)/ log(e * 7 - ln(32/x^-pi))). Löse nach Honig auf.|Notiz, gefunden auf Yoraes Schreibtisch + + Bewusst + "Sie können in deine Seele sehen!"|Florastar, Bienenzucht-Expertin + + Schleichend + Diese Bienen wurden xenophob und schlecht gelaunt, lass Vorsicht walten!|Apinomicon + Gespenstisch + "*seufz*... Ernsthaft?"|Taveria + + Rechtzeitig + "Ein Imker ist nie zu spät. Er kommt immer dann an, wenn er er es geplant hat!"|Sengir, Verrückter Imker + Stolz + Sie leben in Frieden innerhalb des Sichtfelds des Auges der Harmonie|Ramponierte überreste des antiken Apinomicons + Doktorisch + "Willst du ein Gummibärchen haben?"|Vorbeigehender Unbekannter mit großem Schal und blauer Box + + Extrem + "Diese fühlen sich ungewönlich zu Scherben hingezogen. Das verlangt weitere Untersuchungen."|Azanor, Meister-Thaumaturg + Aura + "Sie arbeiten so atemberaubend schnell."|Sengir, verrückter Imker + Ignis + Achtung: Inhalt des Bienenkorbs extrem heiß.|Warnschild auf Azanors Bienenkorb + Aqua + "Ich habe mal versucht, die zu züchten, aber es lief nicht alles so gut."|MysteriousAges, Fortgeschrittener Thaumaturge + Solum + "Ich muss noch mal das Rezept für diese Bienen ausgraben, aber Achtung, ihre Stacheln boren sich in deine Haut."|MysteriousAges, Anfänger in der Comedy + Praecantatio + Bienenzucht ist Magie!|Apinomicon, Preface + + Vis + "Sie können Veränderungen in der Aura wahrnehmen, aber noch nicht verändern."|Azanors Mitschriften + Pur + "Es ist wie ein Bienenwächter!"|MysteriousAges, Thaumaturg + Flux + "Ich dachte, sie würden mit beim Aufräumen helfen, aber sie haben es noch dreckiger gemacht!"|Kreicus, Fortgeschrittener Thaumaturg + + Intelligent + Ihre Waben mögen zwar übel riechen und stinken, aber ihr Geist ist weit entwickelt.|Apinomicon + Dünn + Ihre Sprache ist entstellt und unverständlich. Es ist möglich, dass sie zu unnatürlichen Wesen sprechen.|Apinomicon + Verrückt + Sie scheinen auf unerklärliche Art und Weise Fledermäuse anzuziehen.|Apinomicon + + + Reinigend + Abbaugeschwindigkeit + Schnelligkeit + Langsamkeit + Aura-Anziehungskraft + Intelligent + Verrückt + Dünn + Gespenstisch + Bücher + Magische Blumen + Knotenpunkt + Knotenreinigung + Knotenverschmutzung + + + Geheimnisvoll + + Übernatürlich + + Gelehrt + + Thaumisch + + Schleichend + + Kraft + + Zwit + diff --git a/magicbees_res/lang/magicbees/en_US.xml b/magicbees_res/lang/magicbees/en_US.xml index bccd3ac..6ed342c 100644 --- a/magicbees_res/lang/magicbees/en_US.xml +++ b/magicbees_res/lang/magicbees/en_US.xml @@ -2,79 +2,81 @@ - Handful of Jelly Babies - Thaumium Scoop - Thaumium Grafter + Handful of Jelly Babies + Thaumium Scoop + Thaumium Grafter - Jade Moon Dial + Jade Moon Dial - Greatwood Planks - Greatwood Slab - Silverwood Planks - Silverwood Slab - Bee Collector's Jar - Curious Hive - Unusual Hive - Deep Hive - Infernal Hive - Oblivion Hive + Greatwood Planks + Greatwood Slab + Silverwood Planks + Silverwood Slab + Bee Collector's Jar + Curious Hive + Unusual Hive + Deep Hive + Resonating Hive + Infernal Hive + Oblivion Hive - Occult Comb - Otherworldy Comb - Papery Comb - Stark Comb - Airy Comb - Firey Comb - Watery Comb - Earthy Comb - Infused Comb - Memory Comb - Furtive Comb - Soul Comb - Essence Comb - Potent Comb + Mundane Comb + Occult Comb + Otherworldy Comb + Papery Comb + Stark Comb + Airy Comb + Firey Comb + Watery Comb + Earthy Comb + Infused Comb + Memory Comb + Furtive Comb + Soul Comb + Essence Comb + Potent Comb - Magic Wax - Soulful Wax + Magic Wax + Soulful Wax - Enchanting Drop - Intellect Drop + Enchanting Drop + Intellect Drop - Unusual Pollen - Phased Pollen + Unusual Pollen + Phased Pollen - Iron Nugget - Steel Nugget - Copper Nugget - Tin Nugget - Silver Nugget - Lead Nugget - Diamond Shard - Emerald Shard - Apatite Shard + Iron Nugget + Steel Nugget + Copper Nugget + Tin Nugget + Silver Nugget + Lead Nugget + Diamond Shard + Emerald Shard + Apatite Shard - Dull Propolis - Breezey Propolis - Burning Propolis - Flowing Propolis - Stony Propolis - Infused Propolis + Dull Propolis + Breezey Propolis + Burning Propolis + Flowing Propolis + Stony Propolis + Infused Propolis - Lore Fragment - Aromatic Lump - Concentrated Compound - Bees and Magic - Stark Infusion - Crystalized %s Aspect + Lore Fragment + Aromatic Lump + Concentrated Compound + Bees and Magic + Stark Infusion + Crystalized %s Aspect Magic Frame @@ -86,190 +88,217 @@ Oblivion Frame - Magic Capsule - Void Capsule + Magic Capsule + Void Capsule - Empty - Water - Lava - Biomass - Biofuel - Oil - Fuel - Seed Oil - Honey - Juice - Ice - Milk - Acid - Poison - Liquid Nitrogen - Liquid DNA - Creosote Oil - Steam + Empty + Water + Lava + Biomass + Biofuel + Oil + Fuel + Seed Oil + Honey + Juice + Ice + Milk + Acid + Poison + Liquid Nitrogen + Liquid DNA + Creosote Oil + Steam - Full Moon - Waning Gibbous - Waxing Gibbous - Waning Half - Waxing Half - Waning Crescent - Waxing Crescent - New Moon + Full Moon + Waning Gibbous + Waxing Gibbous + Waning Half + Waxing Half + Waning Crescent + Waxing Crescent + New Moon - Thaumaturge's Backpack - Thaumic Bees + Thaumaturge's Backpack + Thaumic Bees - Esoteric - An unusual crossbreed which seems to have magical properties.|Apinomicon - Mysterious - These bees have been to the end of the world and back, and their power has grown.|Apinomicon - Arcane - "Their produce is charged with magic."|Azanor, Master Thaumaturge - Charmed - Your first experiments in Thaumaturgical Apiculture have yielded fruit. Buzzing fruit.|Apinomicon - Enchanted - Successive generations of Charmed bees have reinforced their connection to the unknown.|Apinomicon - Supernatural - These bees walk the line between this world and the unseen.|Apinomicon - Pupil - "What does that bee want with my paper?!"|Yorae, Librarian - Stark - "These are unusually attracted to shards. This warrents further investigation."|Azanor, Master Thaumaturge - Aura - "They work so fast it's breathtaking."|Sengir, Mad Apiarist - Ignis - Caution: Contents of hive extremely hot.|Warning label on Azanor's apiary - Aqua - "I tried to breed them once, but that was a wash."|MysteriousAges, Apprentice Thaumaturge - Solum - "You're really gonna dig these bees, but watch out - they bore quite easily."|MysteriousAges, Apprentice Comedian - Aware - "They can see into your soul!"|Florastar, Expert Beekeeper - Skulking - These bees have become xenophobic and bad-tempered. Use caution.|Apinomicon - Ghastly - "*sigh*... Really, Myst?"|Taveria, irritated Apiarist - Spidery - Spiderbee; n. Does whatever a spider-bee does.|Unknown - Timely - "An apiarist is never late. He arrives precisely when he means to!"|Sengir, Mad Apiarist - Lordly - They live in peace, within the sight of the Eye of Harmony|Tattered Remains of ancient Apinomicon - Doctoral - "Would you like a Jelly Baby?"|Passing stranger with a great scarf and a blue box - Spirit - It is said these bees are able to contact the dead.|Apinomicon - Soul - "The Dread Pirate Roberts has come for your SOOOOOOULS!"|Dread Pirate Roberts - Ferrous - Having absorbed some of the base metal, these bees can concentrate the essence of iron from the region.|Apinomicon - Auric - Not all that glitters is gold.|Ancient Aphorism - Cuprum - A base metal common in many applications; these bees are helpful for resource-starved magicians.|Apinomicon - Stannum - While metalic, these bees are suprisingly fragile.|Apinomicon - Argentum - While they do not recieve as much attention as Golden bees, they are nonetheless valuable.|Apinomicon - Plumbum - A favourite of amateur alchemists, they believe they can transform these bees into gold.|Apinomicon - Diamandi - Crystalline, glittering, and harder than dragon's teeth. These bees are none of those.|Apinomicon - Esmeraldi - It is said they have been to a land ruled by a Great Wizard, and have taken the aspect of his city.|Apinomicon - Apatine - Day and night the whining droned on. I barricaded the windows and hid in the cellar, but everywhere the high-pitched noise of the apatine bees penetrated the walls and drove me to distraction.|Beekeeping 101 + Mystical + + Sorcerous + + Unusual + + Attuned + - Scholarly - "I can't be sure, but I think they might be smarter than me..."|Yorae, Librarian - Savant - lim(x^(i / pi)/ log(e * 7 - ln(32/x^-pi))). Solve for honey.|Note found on Yorae's desk - Praecantatio - Beekeeping is magic!|Apinomicon, Preface - Vis - "They can feel changes in the aura, but are not yet able to affect it."|Azanor, research notes - Pure - "It's like a bee janitor!"|MysteriousAges, Thaumaturge - Flux - "I thought they would help clean up, but it only makes things worse!"|Kreicus, Apprentice Thaumaturge - Node - Having undergone a freak mutation, these bees now attract magic to them.|Apinomicon - Rejuvenating - The hum of the hive is magical, and over time is absorbed by nearby nodes.|Apinomicon - Brainy - Their combs may be fetid and foul-smelling, but their intelligence is well-developed.|Apinomicon - Gossamer - As they work, they seem to fade out from light for brief moments.|Apinomicon - Wispy - Their language is garbled and unintelligible. It is probable they are speaking to unnatural beings.|Apinomicon - Batty - They tend to attract bats to their hives through means unknown.|Apinomicon - Poultry - "Cluck. Cluck cluck! ... You heard me."|Confused bee - Beefy - "Moo, moo, moo. Wait, what?"|Confused bee - Porcine - "Oink, oink. Er.... bzzz?"|Confused bee + Eldritch + - Minium - It may be possible to exploit their mercurial and changeable nature.|Apinomicon + Esoteric + An unusual crossbreed which seems to have magical properties.|Apinomicon + Mysterious + These bees have been to the end of the world and back, and their power has grown.|Apinomicon + Arcane + "Their produce is charged with magic."|Azanor, Master Thaumaturge - Essence - Drawing from motes of dust in the air and ground, they concentrate the energy - Quintessential - The heart of magic lies dormant in all things.|Apinomicon, preface - Erde - Empowered by the Earth, their produce is infused with its essence.|Apinomicon - Luft - Swift as the wind, and lighter than air.|Apinomicon - Feuer - Their colony can reach temperatures that boil water and melt metals.|Apinomicon - Wasser - Through prolonged exposure to liquids, their combs are quite wet and heavy.|Apinomicon - Blitz - They can travel vast distances in a blink, and are known for starting many wildfires.|Apinomicon - Staude - They have an affinity for all that is green and grows.|Apinomicon - Eis - "They keep stealing stuff from me, and I never see them. They're far too slippery."|MysteriousAges, incorrigible punster - Magma - As they fly by, they sear the surface of the landscape, eventually scouring all plants and fragile minerals away.|Apinomicon - Arkanen - "Curious creatures, though their produce is quite useful."|Mithion, Adept - Vortex - Ravenous for mana, they may be dangerous for any caster.|Apinomicon - Wight - "They attract magical spirits; not always docile."|Mithion, Adept + Charmed + Your first experiments in Thaumaturgical Apiculture have yielded fruit. Buzzing fruit.|Apinomicon + Enchanted + Successive generations of Charmed bees have reinforced their connection to the unknown.|Apinomicon + Supernatural + These bees walk the line between this world and the unseen.|Apinomicon + + Ethereal + + + Pupil + "What does that bee want with my paper?!"|Yorae, Librarian + Scholarly + "I can't be sure, but I think they might be smarter than me..."|Yorae, Librarian + Savant + lim(x^(i / pi)/ log(e * 7 - ln(32/x^-pi))). Solve for honey.|Note found on Yorae's desk + + Aware + "They can see into your soul!"|Florastar, Expert Beekeeper + Spirit + It is said these bees are able to contact the dead.|Apinomicon + Soul + "The Dread Pirate Roberts has come for your SOOOOOOULS!"|Dread Pirate Roberts + + Skulking + These bees have become xenophobic and bad-tempered. Use caution.|Apinomicon + Ghastly + "*sigh*... Really, Myst?"|Taveria, irritated Apiarist + Spidery + Spiderbee; n. Does whatever a spider-bee does.|Unknown + + Timely + "An apiarist is never late. He arrives precisely when he means to!"|Sengir, Mad Apiarist + Lordly + They live in peace, within the sight of the Eye of Harmony|Tattered Remains of ancient Apinomicon + Doctoral + "Would you like a Jelly Baby?"|Passing stranger with a great scarf and a blue box + + Ferrous + Having absorbed some of the base metal, these bees can concentrate the essence of iron from the region.|Apinomicon + Auric + Not all that glitters is gold.|Ancient Aphorism + Cuprum + A base metal common in many applications; these bees are helpful for resource-starved magicians.|Apinomicon + Stannum + While metalic, these bees are suprisingly fragile.|Apinomicon + Argentum + While they do not recieve as much attention as Golden bees, they are nonetheless valuable.|Apinomicon + Plumbum + A favourite of amateur alchemists, they believe they can transform these bees into gold.|Apinomicon + Diamandi + Crystalline, glittering, and harder than dragon's teeth. These bees are none of those.|Apinomicon + Esmeraldi + It is said they have been to a land ruled by a Great Wizard, and have taken the aspect of his city.|Apinomicon + Apatine + Day and night the whining droned on. I barricaded the windows and hid in the cellar, but everywhere the high-pitched noise of the apatine bees penetrated the walls and drove me to distraction.|Beekeeping 101 + + Stark + "These are unusually attracted to shards. This warrents further investigation."|Azanor, Master Thaumaturge + Aura + "They work so fast it's breathtaking."|Sengir, Mad Apiarist + Ignis + Caution: Contents of hive extremely hot.|Warning label on Azanor's apiary + Aqua + "I tried to breed them once, but that was a wash."|MysteriousAges, Apprentice Thaumaturge + Solum + "You're really gonna dig these bees, but watch out - they bore quite easily."|MysteriousAges, Apprentice Comedian + Praecantatio + Beekeeping is magic!|Apinomicon, Preface + + Vis + "They can feel changes in the aura, but are not yet able to affect it."|Azanor, research notes + Pure + "It's like a bee janitor!"|MysteriousAges, Thaumaturge + Flux + "I thought they would help clean up, but it only makes things worse!"|Kreicus, Apprentice Thaumaturge + Attractive + Having undergone a freak mutation, these bees now attract magic to them.|Apinomicon + Rejuvenating + The hum of the hive is magical, and over time is absorbed by nearby nodes.|Apinomicon + + Brainy + Their combs may be fetid and foul-smelling, but their intelligence is well-developed.|Apinomicon + Wispy + Their language is garbled and unintelligible. It is probable they are speaking to unnatural beings.|Apinomicon + Batty + They tend to attract bats to their hives through means unknown.|Apinomicon + + Poultry + "Cluck. Cluck cluck! ... You heard me."|Confused bee + Beefy + "Moo, moo, moo. Wait, what?"|Confused bee + Porcine + "Oink, oink. Er.... bzzz?"|Confused bee + + Minium + It may be possible to exploit their mercurial and changeable nature.|Apinomicon + + Essence + Drawing from motes of dust in the air and ground, they concentrate the energy + Quintessential + The heart of magic lies dormant in all things.|Apinomicon, preface + + Erde + Empowered by the Earth, their produce is infused with its essence.|Apinomicon + Luft + Swift as the wind, and lighter than air.|Apinomicon + Feuer + Their colony can reach temperatures that boil water and melt metals.|Apinomicon + Wasser + Through prolonged exposure to liquids, their combs are quite wet and heavy.|Apinomicon + + Blitz + They can travel vast distances in a blink, and are known for starting many wildfires.|Apinomicon + Staude + They have an affinity for all that is green and grows.|Apinomicon + Eis + "They keep stealing stuff from me, and I never see them. They're far too slippery."|MysteriousAges, incorrigible punster + Magma + As they fly by, they sear the surface of the landscape, eventually scouring all plants and fragile minerals away.|Apinomicon + + Arkanen + "Curious creatures, though their produce is quite useful."|Mithion, Adept + + Vortex + Ravenous for mana, they may be dangerous for any caster.|Apinomicon + Wight + "They attract magical spirits; not always docile."|Mithion, Adept - Cleansing - Mining - Swiftness - Time Warp - Aura Attract - Purify Aura - Aura Flux - Aura Charge - Brainy - Batty - Wispy - Ghastly - Vortex - Spiritual - Books - Thaumic Flowers - Exotic Flowers - Node + Cleansing + Mining + Swiftness + Time Warp + Aura Attract + Purify Aura + Aura Flux + Aura Charge + Brainy + Batty + Wispy + Ghastly + Spidery + Vortex + Spiritual + Books + Thaumic Flowers + Exotic Flowers + Node Arcane diff --git a/magicbees_res/lang/magicbees/ru_RU.xml b/magicbees_res/lang/magicbees/ru_RU.xml index b7ac5c1..ed78ba1 100644 --- a/magicbees_res/lang/magicbees/ru_RU.xml +++ b/magicbees_res/lang/magicbees/ru_RU.xml @@ -2,190 +2,130 @@ - Горсть Маленького Желе - Таумический Сачок - Таумический Садовый Нож + Горсть Маленького Желе + Таумический Сачок + Таумический Садовый Нож -Доски Великого Дерева -Плита Великого Дерева -Доски Сильвервуда -Плиты Сильвервуда + Доски Великого Дерева + Плита Великого Дерева + Доски Сильвервуда + Плиты Сильвервуда - Оккультические Соты - Потусторонние Соты - Бумажные Соты - Абсолютные Соты - Воздушные Соты - Огненные Соты - Водяные Соты - Земляные Соты - Зраяженные Соты - Памятные Соты - Незаметные Соты + Оккультические Соты + Потусторонние Соты + Бумажные Соты + Абсолютные Соты + Воздушные Соты + Огненные Соты + Водяные Соты + Земляные Соты + Зраяженные Соты + Памятные Соты + Незаметные Соты - Магичнский Воск + Магичнский Воск - Зачарованая Капля - Интеллектуальная Капля + Зачарованая Капля + Интеллектуальная Капля - Необычная Пыльца -Поэтепная Пыльца + Необычная Пыльца + Поэтепная Пыльца - Тупой Прополис - Прохладный Пропорлис - Горящий Прополис - Текущий Прополис - Каменный Прополис - Заряженный Прополис + Тупой Прополис + Прохладный Пропорлис + Горящий Прополис + Текущий Прополис + Каменный Прополис + Заряженный Прополис - Фрагмент Знаний - Ароматическая Лампа - Концентрированные соединения - Кристаллизованный %s Аспект + Фрагмент Знаний + Ароматическая Лампа + Концентрированные соединения + Кристаллизованный %s Аспект - Магическая Рамка - Эластичная Рамка - Нежная Рамка - Метобалическая Рамка - Некротическая Рамка - Временная Рамка + Магическая Рамка + Эластичная Рамка + Нежная Рамка + Метобалическая Рамка + Некротическая Рамка + Временная Рамка - Магическая Капсула - Пустотная Капсула + Магическая Капсула + Пустотная Капсула - Пустая - Вода - Лава - Биомасса - Биотопливная - Нефтяная - Дизельно Топливная - Подсолнечная - Медная/entry> - Фруктовая - Ледяная - Молочная - Кислотная - Ядовитая - Жидкий Азот - Жидкий ДНК - Креозотное Масло - Пар + Пустая + Вода + Лава + Биомасса + Биотопливная + Нефтяная + Дизельно Топливная + Подсолнечная + Медная/entry> + Фруктовая + Ледяная + Молочная + Кислотная + Ядовитая + Жидкий Азот + Жидкий ДНК + Креозотное Масло + Пар - Полная Луна - Убывающая луна - Растущая луна - Убывающая половина - Растущая половина - Убывающая луна - Растущая луна - Новая Луна + Полная Луна + Убывающая луна + Растущая луна + Убывающая половина + Растущая половина + Убывающая луна + Растущая луна + Новая Луна - Таумотургический Рюкзак - - - Esoteric - An unusual crossbreed which seems to have magical properties.|Apinomicon - Mysterious - These bees have been to the end of the world and back, and their power has grown.|Apinomicon - Arcane - "Their produce is charged with magic."|Azanor, Master Thaumaturge - Charmed - Your first experiments in Thaumaturgical Apiculture have yielded fruit. Buzzing fruit.|Apinomicon - Enchanted - Successive generations of Charmed bees have reinforced their connection to the unknown.|Apinomicon - Supernatural - These bees walk the line between this world and the unseen.|Apinomicon - Pupil - "What does that bee want with my paper?!|Yorae, Librarian - Scholarly - "I can't be sure, but I think they might be smarter than me..."|Yorae, Librarian - Savant - lim(x^(i / pi)/ log(e * 7 - ln(32/x^-pi))). Solve for honey.|Note found on Yorae's desk - Stark - "These are unusually attracted to shards. This warrents further investigation."|Azanor, Master Thaumaturge - Aura - "They work so fast it's breathtaking."|Sengir, Mad Apiarist - Ignis - Caution: Contents of hive extremely hot.|Warning label on Azanor's apiary - Aqua - "I tried to breed them once, but that was a wash."|MysteriousAges, Apprentice Thaumaturge - Solum - "You're really gonna dig these bees, but watch out - they bore quite easily."|MysteriousAges, Apprentice Comedian - Praecantatio - Beekeeping is magic!|Apinomicon, Preface - Aware - "They can see into your soul!"|Florastar, Expert Beekeeper - Vis - "They can feel changes in the aura, but are not yet able to affect it."|Azanor, research notes - Pure - "It's like a bee janitor!"|MysteriousAges, Thaumaturge - Flux - "I thought they would help clean up, but it only makes things worse!"|Kreicus, Apprentice Thaumaturge - Node - Having undergone a freak mutation, these bees now attract magic to them.|Apinomicon - Skulking - These bees have become xenophobic and bad-tempered. Use caution.|Apinomicon - Brainy - Their combs may be fetid and foul-smelling, but their intelligence is well-developed.|Apinomicon - Gossamer - As they work, they seem to fade out from light for brief moments.|Apinomicon - Wispy - Their language is garbled and unintelligible. It is probable they are speaking to unnatural beings.|Apinomicon - Batty - They tend to attract bats to their hives through means unknown.|Apinomicon - Ghastly - "*sigh*... Really, Myst?"|Taveria - Timely - "An apiarist is never late. He arrives precicely when he means to!"|Sengir, Mad Apiarist - Lordly - They live in peace, within the sight of the Eye of Harmony|Tattered Remains of ancient Apinomicon - Doctoral - "Would you like a Jelly Baby?"|Passing stranger with a great scarf and a blue box + Таумотургический Рюкзак - -Очищающая -Добывающая -Ускоряющая -Искревляющая Время -Привлеченная Аурой -Умная -Сумашедшая -Призрачная -Ужасная -Книги -Магические Цветы -Узел -Очищающая Узел -Загрезняющая Узел - - -Тайныее - -Сверхестественные - -Научные - -Таумические - -Прячующиеся - -Vis - -Временные - + + Очищающая + Добывающая + Ускоряющая + Искревляющая Время + Привлеченная Аурой + Умная + Сумашедшая + Призрачная + Ужасная + Книги + Магические Цветы + Узел + Очищающая Узел + Загрезняющая Узел + + + Тайныее + + Сверхестественные + + Научные + + Таумические + + Прячующиеся + + Vis + + Временные + \ No newline at end of file diff --git a/magicbees_res/lang/magicbees/zh_CN.xml b/magicbees_res/lang/magicbees/zh_CN.xml index e09af86..a9f3ffe 100644 --- a/magicbees_res/lang/magicbees/zh_CN.xml +++ b/magicbees_res/lang/magicbees/zh_CN.xml @@ -2,73 +2,74 @@ - 胶糖娃娃 - 奥法捕蜂网 - 奥法剪枝器 + 胶糖娃娃 + 奥法捕蜂网 + 奥法剪枝器 - 翡翠色月相盘 + 翡翠色月相盘 + - 宏伟之木木板 - 宏伟之木台阶 - 银树木板 - 银树台阶 - 蜜蜂收集者的罐子 + 宏伟之木木板 + 宏伟之木台阶 + 银树木板 + 银树台阶 + 蜜蜂收集者的罐子 - 神秘蜂巢 - 异域蜂巢 - 纸质蜂巢 - 朴实蜂巢 - 风之蜂巢 - 火之蜂巢 - 水之蜂巢 - 地之蜂巢 - 蕴魔蜂巢 - 回忆蜂巢 - 诡秘蜂巢 - 灵魂蜂巢 - 源质蜂巢 - 强力蜂巢 + 神秘蜂巢 + 异域蜂巢 + 纸质蜂巢 + 朴实蜂巢 + 风之蜂巢 + 火之蜂巢 + 水之蜂巢 + 地之蜂巢 + 蕴魔蜂巢 + 回忆蜂巢 + 诡秘蜂巢 + 灵魂蜂巢 + 源质蜂巢 + 强力蜂巢 - 魔力蜜蜡 - 灵魂蜜蜡 + 魔力蜜蜡 + 灵魂蜜蜡 - 蕴魔液滴 - 智慧液滴 + 蕴魔液滴 + 智慧液滴 - 罕见花粉 - 相位花粉 + 罕见花粉 + 相位花粉 - 铁粒 - 钢粒 - 铜粒 - 锡粒 - 银粒 - 铅粒 - 钻石碎片 - 绿宝石碎片 - 磷灰石碎片 + 铁粒 + 钢粒 + 铜粒 + 锡粒 + 银粒 + 铅粒 + 钻石碎片 + 绿宝石碎片 + 磷灰石碎片 - 枯竭蜂胶 - 和风蜂胶 - 炽热蜂胶 - 奔流蜂胶 - 石化蜂胶 - 蕴魔蜂胶 + 枯竭蜂胶 + 和风蜂胶 + 炽热蜂胶 + 奔流蜂胶 + 石化蜂胶 + 蕴魔蜂胶 - 卷章碎片 - 芬芳块 - 浓缩复合物 - 蜜蜂与魔法 - 朴实蜂蕴魔物 - 晶化%s要素 + 卷章碎片 + 芬芳块 + 浓缩复合物 + 蜜蜂与魔法 + 朴实蜂蕴魔物 + 晶化%s要素 魔力框架 @@ -80,186 +81,195 @@ 湮灭框架 - 魔力胶囊 - 虚空胶囊 + 魔力胶囊 + 虚空胶囊 - 空 - 水 - 岩浆 - 生物质 - 空 - 石油 - 燃油 - 种子油 - 蜂蜜 - 果汁 - 冰 - 牛奶 - 酸 - 毒液 - 液氮 - 液态DNA - 木榴油 - 蒸汽 + 空 + 水 + 岩浆 + 生物质 + 空 + 石油 + 燃油 + 种子油 + 蜂蜜 + 果汁 + 冰 + 牛奶 + 酸 + 毒液 + 液氮 + 液态DNA + 木榴油 + 蒸汽 - 满月 - 亏凸月 - 盈凸月 - 下弦月 - 上弦月 - 亏蛾眉月 - 凸娥眉月 - 新月 + 满月 + 亏凸月 + 盈凸月 + 下弦月 + 上弦月 + 亏蛾眉月 + 凸娥眉月 + 新月 - 神秘使背包 - 神秘蜜蜂 + 神秘使背包 + 神秘蜜蜂 - 玄奥 - 罕见的杂交品种,具有魔力特性。|Apinomicon - 神秘 - 这些蜜蜂曾经去过世界的尽头并凯旋归来,它们的能力得到了长足增强。|Apinomicon - 奥能 - "它们的产物充满了魔力!"|Azanor, 大神秘使 - 魅惑 - 你的神秘学养蜂试验终于结出了硕果-一种会嗡嗡叫名为蜜蜂的硕果。|Apinomicon - 蕴魔 - 数带魅惑蜂的繁衍让小东西们逐渐接触到未知的存在。|Apinomicon - 超能 - 蜜蜂行走在不可视境界线之上。|Apinomicon - 学徒 - "这群蜜蜂想对我的研究稿做什么?!|Yorae,图书馆馆员 - 朴实 - "它们能吸引魔力的碎片,具体有待研究!"|Azanor,大神秘使 - 灵气 - "工作敏捷,扣人心弦!"|Sengir,养蜂狂人 - 灼热 - 注意:蜂房中的东西相当灼热。|Azanor的蜂房的警告牌 - 流水 - "我试图养育它们,结果变成落汤鸡!"|MysteriousAges,神秘使学徒 - 泥土 - "这些蜜蜂真心是挖掘专家,小心它们挖洞"|MysteriousAges,滑稽剧学徒 - 感知 - "它们看得见你的灵魂!"|Florastar,养蜂专家 - 诡隐 - 这些蜜蜂变得暴躁排外,你可得当心了!|Apinomicon - 幽魂 - "*叹息*... 真的,神秘?"|Taveria - 蜘蛛 - 蜘蛛蜂; 嗯.做蜘蛛蜂该做的事情。|未知语 - 瞬息 - "养蜂员从不迟到,他想去的时候就能准点到达!"|Sengir,养蜂狂人 - 贵族 - 它们平和生活,共建和谐社会|古遗物 - 博士 - "你们喜欢胶糖娃娃吗?"|戴着大围巾,手持蓝色盒子的陌生人 - 精神 - 据说这种蜜蜂能和死者沟通。|Apinomicon - 魂魄 - "路西法亲自收割你的灵魂来啦!"|Yooooooooo - 灰铁 - 这种蜜蜂能从周围聚集铁元素。|Apinomicon - 黄金 - 闪光的东西未必是黄金。|古代格言 - 紫铜 - 铜是非常有用的常见金属,这种蜜蜂能从周围聚集铜元素。|Apinomicon - 白锡 - 涉及到金属的时候,这些蜜蜂异常脆弱。|Apinomicon - 白银 - 即使略逊于黄金蜂,它们也自有其价值所在。|Apinomicon - 黑铅 - 业余炼金术师的最好,它们相信这种蜜蜂能点铅化金。|Apinomicon - 钻石 - 闪光的结晶,硬比龙牙。钻石恒久远,一颗永流传。|Apinomicon - 宝石 - 据说它们曾造访伟大巫师统治之地,并带走了巫师之城的要素。|Apinomicon - 磷化 - 这些东西真心是日夜牢骚不断。我关紧窗户躲进地下室,但蜜蜂尖锐的嗡嗡声却无处不在地透墙而过,乱我心绪。|养蜂入门 - 博学 - "我难以确信,但我觉得它们比我更聪明 ..."|Yorae,图书馆馆员 - 专家 - lim(x^(i / pi)/ log(e * 7 - ln(32/x^-pi))). 把这个解出来我就给你们蜂蜜。|Yorae的桌子上发现的便签 - 奇术 - 养蜂本身就是一种魔法!|Apinomicon,绪论 - 魔力 - "它们能感知到魔力的存在,却还不能影响到魔力。"|Azanor,研究笔记 - 纯净 - "蜜蜂中的卫士!"|MysteriousAges,神秘使 - 咒波 - "我以为能解决咒波问题呢,结果情况更糟糕了!"|Kreicus,神秘使学徒 - 节点 - 经历了不寻常的突变后,这些蜜蜂具备了吸引魔力的能力。|Apinomicon - 复兴 - 神奇的蜜蜂,能吸引附近的节点靠近。|Apinomicon - 怒尸 - 蜂巢变得恶臭难闻,但这些家伙变得好聪明!|Apinomicon - 蜘丝 - 他们工作的瞬息彷佛消失在光芒之中。|Apinomicon - 精灵 - 它们的语言支离破碎,难以理解,也许它们在和某种超自然的生物沟通?|Apinomicon - 火蝠 - 它们通过未知的方法吸引了许多火焰蝙蝠。|Apinomicon - 家禽 - "咯咯。咯咯咯,咯咯咯咯! ... 听到没?"|困惑的蜜蜂 - 壮牛 - "哞哞,哞哞,哞哞。稍等,咋回事?"|困惑的蜜蜂 - 猪啰 - "呼噜,呼噜噜.额.... 嗡嗡?"|困惑的蜜蜂 - 铅丹 - 善变乃其天性。|Apinomicon - 源质 - 集中力量汇集大气中的微尘。|Apinomicon - 精萃 - 魔法之心蕴藏世间诸事。|Apinomicon,绪论 - 大地 - 大地的力量灌注下,它们制造地属性的源质。|Apinomicon - 和风 - 在风的加持下,比空气更轻盈。|Apinomicon - 焰火 - 它们能沸水溶金。|Apinomicon - 水灵 - 浸透了液体后,它们的蜂巢潮湿又沉重。|Apinomicon - 闪电 - 瞬息千里,所到即生野火。|Apinomicon - 延年 - 与绿色和生命的力量天生亲和。|Apinomicon - 冰霜 - "它们老偷我东西,但我却抓不住它们。它们太滑溜。"|MysteriousAges, incorrigible punster - 熔岩 - 它们飞过之处,大地被烧灼成灰烬之地,所有的植被都被焚烧干净。|Apinomicon - 奥义 - "古怪的生物,但是产物蛮有用的"|Mithion,专家级法师 - 漩涡 - 它们贪婪地渴求法力,被任何施法者它们都能危险。|Apinomicon - 重量 - "它们能吸收魔力;并非总是很温顺。"|Mithion,专家级法师 + 玄奥 + 罕见的杂交品种,具有魔力特性。|Apinomicon + 神秘 + 这些蜜蜂曾经去过世界的尽头并凯旋归来,它们的能力得到了长足增强。|Apinomicon + 奥能 + "它们的产物充满了魔力!"|Azanor, 大神秘使 + + 魅惑 + 你的神秘学养蜂试验终于结出了硕果-一种会嗡嗡叫名为蜜蜂的硕果。|Apinomicon + 蕴魔 + 数带魅惑蜂的繁衍让小东西们逐渐接触到未知的存在。|Apinomicon + 超能 + 蜜蜂行走在不可视境界线之上。|Apinomicon + + 学徒 + "这群蜜蜂想对我的研究稿做什么?!|Yorae,图书馆馆员 + 博学 + "我难以确信,但我觉得它们比我更聪明 ..."|Yorae,图书馆馆员 + 专家 + lim(x^(i / pi)/ log(e * 7 - ln(32/x^-pi))). 把这个解出来我就给你们蜂蜜。|Yorae的桌子上发现的便签 + + 感知 + "它们看得见你的灵魂!"|Florastar,养蜂专家 + 精神 + 据说这种蜜蜂能和死者沟通。|Apinomicon + 魂魄 + "路西法亲自收割你的灵魂来啦!"|Yooooooooo + + 诡隐 + 这些蜜蜂变得暴躁排外,你可得当心了!|Apinomicon + 幽魂 + "*叹息*... 真的,神秘?"|Taveria + 蜘蛛 + 蜘蛛蜂; 嗯.做蜘蛛蜂该做的事情。|未知语 + + 瞬息 + "养蜂员从不迟到,他想去的时候就能准点到达!"|Sengir,养蜂狂人 + 贵族 + 它们平和生活,共建和谐社会|古遗物 + 博士 + "你们喜欢胶糖娃娃吗?"|戴着大围巾,手持蓝色盒子的陌生人 + + 灰铁 + 这种蜜蜂能从周围聚集铁元素。|Apinomicon + 黄金 + 闪光的东西未必是黄金。|古代格言 + 紫铜 + 铜是非常有用的常见金属,这种蜜蜂能从周围聚集铜元素。|Apinomicon + 白锡 + 涉及到金属的时候,这些蜜蜂异常脆弱。|Apinomicon + 白银 + 即使略逊于黄金蜂,它们也自有其价值所在。|Apinomicon + 黑铅 + 业余炼金术师的最好,它们相信这种蜜蜂能点铅化金。|Apinomicon + 钻石 + 闪光的结晶,硬比龙牙。钻石恒久远,一颗永流传。|Apinomicon + 宝石 + 据说它们曾造访伟大巫师统治之地,并带走了巫师之城的要素。|Apinomicon + 磷化 + 这些东西真心是日夜牢骚不断。我关紧窗户躲进地下室,但蜜蜂尖锐的嗡嗡声却无处不在地透墙而过,乱我心绪。|养蜂入门 + + 朴实 + "它们能吸引魔力的碎片,具体有待研究!"|Azanor,大神秘使 + 灵气 + "工作敏捷,扣人心弦!"|Sengir,养蜂狂人 + 灼热 + 注意:蜂房中的东西相当灼热。|Azanor的蜂房的警告牌 + 流水 + "我试图养育它们,结果变成落汤鸡!"|MysteriousAges,神秘使学徒 + 泥土 + "这些蜜蜂真心是挖掘专家,小心它们挖洞"|MysteriousAges,滑稽剧学徒 + 奇术 + 养蜂本身就是一种魔法!|Apinomicon,绪论 + + 魔力 + "它们能感知到魔力的存在,却还不能影响到魔力。"|Azanor,研究笔记 + 纯净 + "蜜蜂中的卫士!"|MysteriousAges,神秘使 + 咒波 + "我以为能解决咒波问题呢,结果情况更糟糕了!"|Kreicus,神秘使学徒 + 复兴 + 神奇的蜜蜂,能吸引附近的节点靠近。|Apinomicon + + 怒尸 + 蜂巢变得恶臭难闻,但这些家伙变得好聪明!|Apinomicon + 精灵 + 它们的语言支离破碎,难以理解,也许它们在和某种超自然的生物沟通?|Apinomicon + 火蝠 + 它们通过未知的方法吸引了许多火焰蝙蝠。|Apinomicon + + 家禽 + "咯咯。咯咯咯,咯咯咯咯! ... 听到没?"|困惑的蜜蜂 + 壮牛 + "哞哞,哞哞,哞哞。稍等,咋回事?"|困惑的蜜蜂 + 猪啰 + "呼噜,呼噜噜.额.... 嗡嗡?"|困惑的蜜蜂 + + 铅丹 + 善变乃其天性。|Apinomicon + + 源质 + 集中力量汇集大气中的微尘。|Apinomicon + 精萃 + 魔法之心蕴藏世间诸事。|Apinomicon,绪论 + 大地 + 大地的力量灌注下,它们制造地属性的源质。|Apinomicon + 和风 + 在风的加持下,比空气更轻盈。|Apinomicon + 焰火 + 它们能沸水溶金。|Apinomicon + 水灵 + 浸透了液体后,它们的蜂巢潮湿又沉重。|Apinomicon + 闪电 + 瞬息千里,所到即生野火。|Apinomicon + 延年 + 与绿色和生命的力量天生亲和。|Apinomicon + 冰霜 + "它们老偷我东西,但我却抓不住它们。它们太滑溜。"|MysteriousAges, incorrigible punster + 熔岩 + 它们飞过之处,大地被烧灼成灰烬之地,所有的植被都被焚烧干净。|Apinomicon + 奥义 + "古怪的生物,但是产物蛮有用的"|Mithion,专家级法师 + 漩涡 + 它们贪婪地渴求法力,被任何施法者它们都能危险。|Apinomicon + 重量 + "它们能吸收魔力;并非总是很温顺。"|Mithion,专家级法师 - 驱散 - 挖掘加速 - 速度 - 缓慢 - 灵气吸收 - 灵气纯化 - 咒波 - 灵气充能 - 怒尸 - 火蝠 - 精灵 - 幽魂 - 漩涡 - 精灵[AM] - 书 - 神秘植物 - 异域植物 - 节点 + 驱散 + 挖掘加速 + 速度 + 缓慢 + 灵气吸收 + 灵气纯化 + 咒波 + 灵气充能 + 怒尸 + 火蝠 + 精灵 + 幽魂 + 漩涡 + 精灵[AM] + 书 + 神秘植物 + 异域植物 + 节点 + 奥能 对奥法亲和的蜜蜂。|Apinomicon diff --git a/magicbees_src/magicbees/bees/Allele.java b/magicbees_src/magicbees/bees/Allele.java index ebeb027..85d94e1 100644 --- a/magicbees_src/magicbees/bees/Allele.java +++ b/magicbees_src/magicbees/bees/Allele.java @@ -1,5 +1,6 @@ package magicbees.bees; +import magicbees.main.utils.LocalizationManager; import magicbees.main.utils.compat.ArsMagicaHelper; import magicbees.main.utils.compat.ThaumcraftHelper; import net.minecraft.potion.Potion; @@ -9,6 +10,7 @@ import forestry.api.genetics.AlleleManager; import forestry.api.genetics.IAllele; import forestry.api.genetics.IAlleleEffect; import forestry.api.genetics.IAlleleFlowers; +import forestry.api.genetics.IAlleleRegistry; public class Allele implements IAllele { @@ -21,12 +23,8 @@ public class Allele implements IAllele public static IAlleleFlowers flowerThaumcraft; public static IAlleleFlowers flowerArsMagica; public static IAlleleFlowers flowerAuraNode; - @Deprecated - public static IAlleleFlowers flowerNodePurify; - @Deprecated - public static IAlleleFlowers flowerNodeFluxify; - public static IAlleleEffect cleansingEffect; + public static IAlleleEffect effectCleansing; public static IAlleleEffect digSpeed; public static IAlleleEffect moveSpeed; public static IAlleleEffect slowSpeed; @@ -51,29 +49,25 @@ public class Allele implements IAllele Allele.fertilityHighDominant = new AlleleInteger("fertilityHighDominant", 3, true); Allele.speedBlinding = new AlleleFloat("speedBlinding", 2f, false); - Allele.flowerBookshelf = new AlleleFlower("flowerBookshelf", new FlowerProviderBookshelf(), true); + Allele.flowerBookshelf = new AlleleFlower("Bookshelf", new FlowerProviderBookshelf(), true); + if (ThaumcraftHelper.isActive()) { - FlowerProviderAuraNode provider = new FlowerProviderAuraNode(); - Allele.flowerThaumcraft = new AlleleFlower("flowerThaumcraftPlant", new FlowerProviderThaumcraftFlower(), false); - Allele.flowerAuraNode = new AlleleFlower("flowerAuraNode", provider, true); - Allele.flowerNodePurify = new AlleleFlower("flowerAuraNodePurify", provider, false); - Allele.flowerNodeFluxify = new AlleleFlower("flowerAuraNodeFlux", provider, false); + Allele.flowerThaumcraft = new AlleleFlower("ThaumcraftPlant", new FlowerProviderThaumcraftFlower(), false); + Allele.flowerAuraNode = new AlleleFlower("AuraNode", new FlowerProviderAuraNode(), true); - Allele.spawnBrainyZombie = new AlleleEffectSpawnMob("effectBrainy", false, ThaumcraftHelper.Entity.BRAINY_ZOMBIE.entityID) + Allele.spawnBrainyZombie = new AlleleEffectSpawnMob("Brainy", false, ThaumcraftHelper.Entity.BRAINY_ZOMBIE.entityID) .setAggrosPlayerOnSpawn().setThrottle(800).setSpawnsOnPlayerNear(null).setMaxMobsInSpawnZone(2); - Allele.spawnBats = new AlleleEffectSpawnMob("effectBatty", false, ThaumcraftHelper.Entity.FIREBAT.entityID) + Allele.spawnBats = new AlleleEffectSpawnMob("Batty", false, ThaumcraftHelper.Entity.FIREBAT.entityID) .setThrottle(300).setSpawnsOnPlayerNear("Bat"); - Allele.spawnWisp = new AlleleEffectSpawnWisp("effectWispy", false, ThaumcraftHelper.Entity.WISP.entityID, "thaumcraft.wisplive") + Allele.spawnWisp = new AlleleEffectSpawnWisp("Wispy", false, ThaumcraftHelper.Entity.WISP.entityID, "thaumcraft.wisplive") .setThrottle(1800).setChanceToSpawn(79); } else { Allele.flowerThaumcraft = Allele.flowerAuraNode = (IAlleleFlowers)Allele.getBaseAllele("flowersVanilla"); - Allele.flowerNodePurify = Allele.flowerNodeFluxify = (IAlleleFlowers)Allele.getBaseAllele("flowersVanilla"); - Allele.spawnBrainyZombie = Allele.spawnBats = Allele.spawnWisp = (IAlleleEffect)Allele.getBaseAllele("effectNone"); } @@ -81,11 +75,11 @@ public class Allele implements IAllele { Allele.flowerArsMagica = new AlleleFlower("flowerArsMagicaPlant", new FlowerProviderArsMagicaFlower(), false); //String id, boolean isDominant, int throttle, String[] mobs, int[] chance - Allele.spawnManaDrainer = new AlleleEffectSpawnMobWeighted("effectManaDrainer", true, 20, + Allele.spawnManaDrainer = new AlleleEffectSpawnMobWeighted("ManaDrain", true, 20, new String[] { "ArsMagica.MobManaCreeper", "ArsMagica.ManaVortex" }, new int[] { 60, 2 }); - Allele.spawnWispOrHecate = new AlleleEffectSpawnMobWeighted("effectAMWisp", true, 20, + Allele.spawnWispOrHecate = new AlleleEffectSpawnMobWeighted("AMWisp", true, 20, new String[] { "ArsMagica.MobWisp", "ArsMagica.MobHecate" }, new int[] { 40, 3 }); } @@ -95,25 +89,100 @@ public class Allele implements IAllele Allele.spawnManaDrainer = Allele.spawnWispOrHecate = (IAlleleEffect)Allele.getBaseAllele("effectNone"); } - Allele.effectNodeAttract = new AlleleEffectAuraNodeAttract("effectNodeGeneration", false, 400); - Allele.effectNodePurify = new AlleleEffectAuraNodePurify("effectNodePurify", false, 600, 150); - Allele.effectNodeFlux = new AlleleEffectAuraNodeFlux("effectNodeFlux", true, 300, 300); - Allele.effectNodeCharge = new AlleleEffectAuraNodeCharge("effectNodeCharge", true, 1200); + Allele.effectNodeAttract = new AlleleEffectAuraNodeAttract("NodeAttract", false, 400); + Allele.effectNodePurify = new AlleleEffectAuraNodePurify("NodePurify", false, 600, 150); + Allele.effectNodeFlux = new AlleleEffectAuraNodeFlux("NodeFlux", true, 300, 300); + Allele.effectNodeCharge = new AlleleEffectAuraNodeCharge("NodeCharge", true, 1200); - Allele.cleansingEffect = new AlleleEffectCure("effectCurative", false); - Allele.digSpeed = new AlleleEffectPotion("effectDigSpeed", Potion.digSpeed, 15, false); - Allele.moveSpeed = new AlleleEffectPotion("effectMoveSpeed", Potion.moveSpeed, 10, false); - Allele.slowSpeed = new AlleleEffectPotion("effectSlowSpeed", Potion.moveSlowdown, 3, false); + Allele.effectCleansing = new AlleleEffectCure("Curative", false); + Allele.digSpeed = new AlleleEffectPotion("DigSpeed", Potion.digSpeed, 15, false); + Allele.moveSpeed = new AlleleEffectPotion("MoveSpeed", Potion.moveSpeed, 10, false); + Allele.slowSpeed = new AlleleEffectPotion("SlowSpeed", Potion.moveSlowdown, 3, false); - Allele.spawnGhast = new AlleleEffectSpawnMob("Ghast", false, "Ghast", "mob.ghast.moan") + Allele.spawnGhast = new AlleleEffectSpawnMob("Ghastly", false, "Ghast", "mob.ghast.moan") .setThrottle(2060).setChanceToSpawn(10).setMaxMobsInSpawnZone(1); - Allele.spawnSpider = new AlleleEffectSpawnMob("Spider", false, "Spider", "mob.spider.step") + Allele.spawnSpider = new AlleleEffectSpawnMob("Spidery", false, "Spider", "mob.spider.step") .setThrottle(400).setChanceToSpawn(70).setMaxMobsInSpawnZone(4); } - private String uid; - private boolean dominant; + public static void registerDeprecatedAlleleReplacements() + { + IAlleleRegistry registry = AlleleManager.alleleRegistry; + + registry.registerDeprecatedAlleleReplacement("thaumicbees.fertilityHighDominant", fertilityHighDominant); + registry.registerDeprecatedAlleleReplacement("thaumicbees.flowerflowerBookshelf", flowerBookshelf); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speedBlinding", speedBlinding); + registry.registerDeprecatedAlleleReplacement("thaumicbees.effectNodeAttract", effectNodeAttract); + registry.registerDeprecatedAlleleReplacement("thaumicbees.effectNodePurify", effectNodePurify); + registry.registerDeprecatedAlleleReplacement("thaumicbees.effectNodeFlux", effectNodeFlux); + registry.registerDeprecatedAlleleReplacement("thaumicbees.effectNodeCharge", effectNodeCharge); + registry.registerDeprecatedAlleleReplacement("thaumicbees.effectCurative", effectCleansing); + registry.registerDeprecatedAlleleReplacement("thaumicbees.effecteffectDigSpeed", digSpeed); + registry.registerDeprecatedAlleleReplacement("thaumicbees.effecteffectMoveSpeed", moveSpeed); + registry.registerDeprecatedAlleleReplacement("thaumicbees.effecteffectSlowSpeed", slowSpeed); + registry.registerDeprecatedAlleleReplacement("thaumicbees.Ghast", spawnGhast); + registry.registerDeprecatedAlleleReplacement("thaumicbees.Spider", spawnSpider); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesEsoteric", BeeSpecies.ESOTERIC); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesMysterious", BeeSpecies.MYSTERIOUS); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesArcane", BeeSpecies.ARCANE); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesCharmed", BeeSpecies.CHARMED); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesEnchanted", BeeSpecies.ENCHANTED); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesSupernatural", BeeSpecies.SUPERNATURAL); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesPupil", BeeSpecies.PUPIL); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesScholarly", BeeSpecies.SCHOLARLY); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesSavant", BeeSpecies.SAVANT); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesAware", BeeSpecies.AWARE); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesSpirit", BeeSpecies.SPIRIT); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesSoul", BeeSpecies.SOUL); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesSkulking", BeeSpecies.SKULKING); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesGhastly", BeeSpecies.GHASTLY); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesSpidery", BeeSpecies.SPIDERY); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesTimely", BeeSpecies.TIMELY); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesLordly", BeeSpecies.LORDLY); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesDoctoral", BeeSpecies.DOCTORAL); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesIron", BeeSpecies.IRON); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesGold", BeeSpecies.GOLD); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesCopper", BeeSpecies.COPPER); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesTin", BeeSpecies.TIN); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesSilver", BeeSpecies.SILVER); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesLead", BeeSpecies.LEAD); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesDiamond", BeeSpecies.DIAMOND); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesEmerald", BeeSpecies.EMERALD); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesApatite", BeeSpecies.APATITE); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesStark", BeeSpecies.TC_STARK); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesAura", BeeSpecies.TC_AIR); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesIgnis", BeeSpecies.TC_FIRE); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesAqua", BeeSpecies.TC_WATER); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesSolum", BeeSpecies.TC_EARTH); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesPraecantatio", BeeSpecies.TC_MAGIC); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesVis", BeeSpecies.TC_VIS); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesPure", BeeSpecies.TC_PURE); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesFlux", BeeSpecies.TC_FLUX); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesNode", BeeSpecies.TC_ATTRACT); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesRejuvenating", BeeSpecies.TC_REJUVENATING); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesBrainy", BeeSpecies.TC_BRAINY); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesGossamer", BeeSpecies.TC_WISPY); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesWispy", BeeSpecies.TC_WISPY); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesBatty", BeeSpecies.TC_BATTY); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesChicken", BeeSpecies.TC_CHICKEN); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesBeef", BeeSpecies.TC_BEEF); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesPork", BeeSpecies.TC_PORK); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesMinium", BeeSpecies.EE_MINIUM); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesEssence", BeeSpecies.AM_ESSENCE); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesQuintessence", BeeSpecies.AM_QUINTESSENCE); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesErde", BeeSpecies.AM_EARTH); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesLuft", BeeSpecies.AM_AIR); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesFeuer", BeeSpecies.AM_FIRE); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesWasser", BeeSpecies.AM_WATER); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesBlitz", BeeSpecies.AM_LIGHTNING); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesStaude", BeeSpecies.AM_PLANT); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesEis", BeeSpecies.AM_ICE); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesMagma", BeeSpecies.AM_MAGMA); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesArkanen", BeeSpecies.AM_ARCANE); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesVortex", BeeSpecies.AM_VORTEX); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesWight", BeeSpecies.AM_WIGHT); + } public static IAlleleBeeSpecies getBaseSpecies(String name) { @@ -135,9 +204,12 @@ public class Allele implements IAllele return AlleleManager.alleleRegistry.getAllele(name); } + private String uid; + private boolean dominant; + public Allele(String id, boolean isDominant) { - this.uid = "thaumicbees." + id; + this.uid = "magicbees." + id; this.dominant = isDominant; AlleleManager.alleleRegistry.registerAllele(this); } @@ -154,4 +226,10 @@ public class Allele implements IAllele return this.dominant; } + @Override + public String getName() + { + return LocalizationManager.getLocalizedString(getUID()); + } + } diff --git a/magicbees_src/magicbees/bees/AlleleEffect.java b/magicbees_src/magicbees/bees/AlleleEffect.java index c59ae9e..73463a4 100644 --- a/magicbees_src/magicbees/bees/AlleleEffect.java +++ b/magicbees_src/magicbees/bees/AlleleEffect.java @@ -4,7 +4,7 @@ import java.util.List; import cpw.mods.fml.common.registry.LanguageRegistry; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import magicbees.main.utils.LocalizationManager; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -20,7 +20,7 @@ public abstract class AlleleEffect extends Allele implements IAlleleBeeEffect public AlleleEffect(String id, boolean isDominant) { - super(id, isDominant); + super("effect" + id, isDominant); } @Override @@ -32,12 +32,6 @@ public abstract class AlleleEffect extends Allele implements IAlleleBeeEffect @Override public abstract IEffectData validateStorage(IEffectData storedData); - @Override - public String getIdentifier() - { - return LocalizationManager.getLocalizedString(getUID()); - } - @Override public abstract IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing); @@ -51,7 +45,7 @@ public abstract class AlleleEffect extends Allele implements IAlleleBeeEffect area[1] = Math.max((int)(area[1] * mod), 1); area[2] = Math.max((int)(area[2] * mod), 1); - ThaumicBees.proxy.drawBeeEffects(housing.getWorld(), housing.getXCoord(), housing.getYCoord(), housing.getZCoord(), + MagicBees.proxy.drawBeeEffects(housing.getWorld(), housing.getXCoord(), housing.getYCoord(), housing.getZCoord(), genome.getPrimary().getIconColour(0), area[0], area[1], area[2]); return storedData; } diff --git a/magicbees_src/magicbees/bees/AlleleEffectCure.java b/magicbees_src/magicbees/bees/AlleleEffectCure.java index ef2ccd9..cf31862 100644 --- a/magicbees_src/magicbees/bees/AlleleEffectCure.java +++ b/magicbees_src/magicbees/bees/AlleleEffectCure.java @@ -3,7 +3,7 @@ package magicbees.bees; import java.util.List; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; diff --git a/magicbees_src/magicbees/bees/AlleleEffectPotion.java b/magicbees_src/magicbees/bees/AlleleEffectPotion.java index 85784de..80e3ad1 100644 --- a/magicbees_src/magicbees/bees/AlleleEffectPotion.java +++ b/magicbees_src/magicbees/bees/AlleleEffectPotion.java @@ -20,7 +20,7 @@ public class AlleleEffectPotion extends AlleleEffect public AlleleEffectPotion(String name, Potion potionApplied, int effectDuration, boolean isDominant) { - super("effect" + name, isDominant); + super(name, isDominant); this.potionId = potionApplied.id; this.duration = 20 * effectDuration; } diff --git a/magicbees_src/magicbees/bees/BeeGenomeManager.java b/magicbees_src/magicbees/bees/BeeGenomeManager.java index e20c017..93a68eb 100644 --- a/magicbees_src/magicbees/bees/BeeGenomeManager.java +++ b/magicbees_src/magicbees/bees/BeeGenomeManager.java @@ -10,6 +10,7 @@ import forestry.api.apiculture.EnumBeeType; import forestry.api.core.ItemInterface; import forestry.api.genetics.AlleleManager; import forestry.api.genetics.IAllele; +import forestry.apiculture.genetics.BeeTemplates; /** * Simply a class to hold all the functions to manage species' default genomes. @@ -19,7 +20,7 @@ import forestry.api.genetics.IAllele; public class BeeGenomeManager { // Basic genome for All thaumic bees. - private static IAllele[] getTemplateBaseThaumic() + private static IAllele[] getTemplateModBase() { IAllele[] genome = new IAllele[EnumBeeChromosome.values().length]; @@ -39,10 +40,17 @@ public class BeeGenomeManager return genome; } + + public static IAllele[] addRainResist(IAllele[] genome) + { + genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); + + return genome; + } public static IAllele[] getTemplateMystical() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.MYSTICAL; @@ -51,7 +59,7 @@ public class BeeGenomeManager public static IAllele[] getTemplateSorcerous() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.SORCEROUS; genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityHigh"); @@ -61,7 +69,7 @@ public class BeeGenomeManager public static IAllele[] getTemplateUnusual() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.UNUSUAL; genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth2"); @@ -71,7 +79,7 @@ public class BeeGenomeManager public static IAllele[] getTemplateAttuned() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.ATTUNED; genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityHigh"); @@ -81,7 +89,7 @@ public class BeeGenomeManager public static IAllele[] getTemplateEldritch() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.ELDRITCH; genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlower"); @@ -92,7 +100,7 @@ public class BeeGenomeManager // Basic genome for Arcane branch bees. private static IAllele[] getTemplateBaseArcane() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1"); genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringSlow"); @@ -135,7 +143,7 @@ public class BeeGenomeManager private static IAllele[] getTemplateBaseSupernatural() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.getBaseAllele("boolTrue"); genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedNorm"); @@ -176,7 +184,7 @@ public class BeeGenomeManager public static IAllele[] getTemplateEthereal() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.ETHEREAL; genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedNorm"); @@ -188,7 +196,7 @@ public class BeeGenomeManager private static IAllele[] getTemplateBaseScholarly() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlow"); genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanElongated"); @@ -231,185 +239,48 @@ public class BeeGenomeManager return genome; } - private static IAllele[] getTemplateBaseElemental() - { - IAllele[] genome = getTemplateBaseThaumic(); - - genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = AlleleFlower.flowerThaumcraft; - genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow"); - - return genome; - } - - public static IAllele[] getTemplateStark() - { - IAllele[] genome = getTemplateBaseElemental(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_STARK; - genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityNormal"); - - return genome; - } - - public static IAllele[] getTemplateAir() - { - IAllele[] genome = getTemplateBaseElemental(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_AIR; - genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFastest"); - genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanShortened"); - genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLargest"); - genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); - genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringMaximum"); - genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.moveSpeed; - - return genome; - } - - public static IAllele[] getTemplateFire() - { - IAllele[] genome = getTemplateBaseElemental(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_FIRE; - genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFaster"); - genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanNormal"); - genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown3"); - genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceUp2"); - genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); - genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.getBaseAllele("effectIgnition"); - - return genome; - } - - public static IAllele[] getTemplateWater() - { - IAllele[] genome = getTemplateBaseElemental(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_WATER; - genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFast"); - genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanLong"); - genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown2"); - genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); - genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLarge"); - genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.cleansingEffect; - - return genome; - } - - public static IAllele[] getTemplateEarth() - { - IAllele[] genome = getTemplateBaseElemental(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_EARTH; - genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlow"); - genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanLonger"); - genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown1"); - genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); - genome[EnumBeeChromosome.CAVE_DWELLING.ordinal()] = Allele.getBaseAllele("boolTrue"); - genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringFastest"); - genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.digSpeed; - - return genome; - } - - public static IAllele[] getTemplateInfused() - { - IAllele[] genome = getTemplateBaseElemental(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_INFUSED; - genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedNorm"); - genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanNormal"); - - return genome; - } - - private static IAllele[] getTemplateBaseVis() - { - IAllele[] genome = getTemplateBaseThaumic(); - - genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow"); - genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1"); - genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1"); - - return genome; - } - public static IAllele[] getTemplateAware() { - IAllele[] genome = getTemplateBaseVis(); + IAllele[] genome = getTemplateBaseSoul(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AWARE; - genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerThaumcraft; return genome; } - public static IAllele[] getTemplateVis() + private static IAllele[] getTemplateBaseSoul() { - IAllele[] genome = getTemplateBaseVis(); + IAllele[] genome = getTemplateModBase(); - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_VIS; - genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlow"); - genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringSlower"); - genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerAuraNode; - - return genome; - } - - public static IAllele[] getTemplatePure() - { - IAllele[] genome = getTemplateBaseVis(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_PURE; - genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone"); - genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone"); - genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringAverage"); - genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerAuraNode; - genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectNodePurify; + genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1"); + genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); return genome; } - public static IAllele[] getTemplateFlux() + public static IAllele[] getTemplateSpirit() { - IAllele[] genome = getTemplateBaseVis(); + IAllele[] genome = getTemplateBaseSoul(); - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_FLUX; - genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone"); - genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone"); - genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerAuraNode; - genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectNodeFlux; + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.SPIRIT; + genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanShortened"); return genome; } - public static IAllele[] getTemplateNode() + public static IAllele[] getTemplateSoul() { - IAllele[] genome = getTemplateBaseVis(); + IAllele[] genome = getTemplateBaseSoul(); - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_NODE; - genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringSlowest"); - genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerAuraNode; - genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectNodeAttract; - - return genome; - } - - public static IAllele[] getTemplateRejuvinating() - { - IAllele[] genome = getTemplateBaseVis(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_REJUVENATING; - genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectNodeCharge; - genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerAuraNode; - genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone"); + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.SOUL; + genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanNormal"); return genome; } private static IAllele[] getTemplateBaseMalevolent() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFast"); genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringFaster"); @@ -430,52 +301,6 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateBrainy() - { - IAllele[] genome = getTemplateBaseMalevolent(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_BRAINY; - genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.spawnBrainyZombie; - genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow"); - - return genome; - } - - public static IAllele[] getTemplateGossamer() - { - IAllele[] genome = getTemplateBaseMalevolent(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_GOSSAMER; - genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); - genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerThaumcraft; - - return genome; - } - - public static IAllele[] getTemplateWispy() - { - IAllele[] genome = getTemplateBaseMalevolent(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_WISPY; - genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.spawnWisp; - genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); - genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow"); - genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerThaumcraft; - - return genome; - } - - public static IAllele[] getTemplateBatty() - { - IAllele[] genome = getTemplateBaseMalevolent(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_BATTY; - genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.spawnBats; - genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLarge"); - - return genome; - } - public static IAllele[] getTemplateGhastly() { IAllele[] genome = getTemplateBaseMalevolent(); @@ -506,7 +331,7 @@ public class BeeGenomeManager private static IAllele[] getTemplateBaseTemporal() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1"); genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityNormal"); @@ -555,58 +380,9 @@ public class BeeGenomeManager return genome; } - private static IAllele[] getTemplateBaseAlchemical() - { - IAllele[] genome = getTemplateBaseThaumic(); - - genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLarge"); - genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlow"); - - return genome; - } - - public static IAllele[] getTemplateMinium() - { - IAllele[] genome = getTemplateBaseAlchemical(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.EE_MINIUM; - - return genome; - } - - private static IAllele[] getTemplateBaseSoul() - { - IAllele[] genome = getTemplateBaseThaumic(); - - genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1"); - genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); - - return genome; - } - - public static IAllele[] getTemplateSpirit() - { - IAllele[] genome = getTemplateBaseSoul(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.SPIRIT; - genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanShortened"); - - return genome; - } - - public static IAllele[] getTemplateSoul() - { - IAllele[] genome = getTemplateBaseSoul(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.SOUL; - genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanNormal"); - - return genome; - } - private static IAllele[] getTemplateBaseMetallic() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlowest"); genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow"); @@ -699,7 +475,215 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateChicken() + private static IAllele[] getTemplateTCBase() + { + IAllele[] genome = getTemplateModBase(); + + genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = AlleleFlower.flowerThaumcraft; + genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow"); + + return genome; + } + + public static IAllele[] getTemplateTCStark() + { + IAllele[] genome = getTemplateTCBase(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_STARK; + genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityNormal"); + + return genome; + } + + public static IAllele[] getTemplateTCAir() + { + IAllele[] genome = getTemplateTCBase(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_AIR; + genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFastest"); + genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanShortened"); + genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLargest"); + genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); + genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringMaximum"); + genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.moveSpeed; + + return genome; + } + + public static IAllele[] getTemplateTCFire() + { + IAllele[] genome = getTemplateTCBase(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_FIRE; + genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFaster"); + genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanNormal"); + genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown3"); + genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceUp2"); + genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); + genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.getBaseAllele("effectIgnition"); + + return genome; + } + + public static IAllele[] getTemplateTCWater() + { + IAllele[] genome = getTemplateTCBase(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_WATER; + genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFast"); + genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanLong"); + genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown2"); + genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); + genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLarge"); + genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectCleansing; + + return genome; + } + + public static IAllele[] getTemplateTCEarth() + { + IAllele[] genome = getTemplateTCBase(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_EARTH; + genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlow"); + genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanLonger"); + genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown1"); + genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); + genome[EnumBeeChromosome.CAVE_DWELLING.ordinal()] = Allele.getBaseAllele("boolTrue"); + genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringFastest"); + genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.digSpeed; + + return genome; + } + + public static IAllele[] getTemplateTCMagic() + { + IAllele[] genome = getTemplateTCBase(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_MAGIC; + genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedNorm"); + genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanNormal"); + + return genome; + } + + private static IAllele[] getTemplateTCBaseVis() + { + IAllele[] genome = getTemplateTCBase(); + + genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow"); + genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1"); + genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1"); + + return genome; + } + + public static IAllele[] getTemplateTCVis() + { + IAllele[] genome = getTemplateTCBaseVis(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_VIS; + genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlow"); + genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringSlower"); + genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerAuraNode; + + return genome; + } + + public static IAllele[] getTemplateTCPure() + { + IAllele[] genome = getTemplateTCBaseVis(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_PURE; + genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone"); + genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone"); + genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringAverage"); + genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerAuraNode; + genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectNodePurify; + + return genome; + } + + public static IAllele[] getTemplateTCFlux() + { + IAllele[] genome = getTemplateTCBaseVis(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_FLUX; + genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone"); + genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone"); + genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerAuraNode; + genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectNodeFlux; + + return genome; + } + + public static IAllele[] getTemplateTCRejuvinating() + { + IAllele[] genome = getTemplateTCBaseVis(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_REJUVENATING; + genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectNodeCharge; + genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerAuraNode; + genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone"); + + return genome; + } + + public static IAllele[] getTemplateTCBrainy() + { + IAllele[] genome = getTemplateBaseMalevolent(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_BRAINY; + genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.spawnBrainyZombie; + genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow"); + + return genome; + } + + public static IAllele[] getTemplateTCWispy() + { + IAllele[] genome = getTemplateBaseMalevolent(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_WISPY; + genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.spawnWisp; + genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); + genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow"); + genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerThaumcraft; + + return genome; + } + + public static IAllele[] getTemplateTCBatty() + { + IAllele[] genome = getTemplateBaseMalevolent(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_BATTY; + genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.spawnBats; + genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLarge"); + + return genome; + } + + private static IAllele[] getTemplateEEBase() + { + IAllele[] genome = getTemplateModBase(); + + genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLarge"); + genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlow"); + + return genome; + } + + public static IAllele[] getTemplateEEMinium() + { + IAllele[] genome = getTemplateEEBase(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.EE_MINIUM; + + return genome; + } + + public static IAllele[] getTemplateTCChicken() { IAllele[] genome = getTemplateBaseMetallic(); @@ -708,7 +692,7 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateBeef() + public static IAllele[] getTemplateTCBeef() { IAllele[] genome = getTemplateBaseMetallic(); @@ -717,7 +701,7 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplatePork() + public static IAllele[] getTemplateTCPork() { IAllele[] genome = getTemplateBaseMetallic(); @@ -726,18 +710,18 @@ public class BeeGenomeManager return genome; } - private static IAllele[] getTemplateBaseMagica() + private static IAllele[] getTemplateAMBase() { - IAllele[] genome = getTemplateBaseThaumic(); + IAllele[] genome = getTemplateModBase(); genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerArsMagica; return genome; } - public static IAllele[] getTemplateEssence() + public static IAllele[] getTemplateAMEssence() { - IAllele[] genome = getTemplateBaseMagica(); + IAllele[] genome = getTemplateAMBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_ESSENCE; genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedNorm"); @@ -748,9 +732,9 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateQuintessence() + public static IAllele[] getTemplateAMQuintessence() { - IAllele[] genome = getTemplateEssence(); + IAllele[] genome = getTemplateAMEssence(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_QUINTESSENCE; genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanElongated"); @@ -761,9 +745,9 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateEarthAM() + public static IAllele[] getTemplateAMEarth() { - IAllele[] genome = getTemplateBaseMagica(); + IAllele[] genome = getTemplateAMBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_EARTH; genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringFaster"); @@ -774,22 +758,22 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateAirAM() + public static IAllele[] getTemplateAMAir() { - IAllele[] genome = getTemplateBaseMagica(); + IAllele[] genome = getTemplateAMBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_AIR; genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFast"); - genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryMaximum"); + genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLargest"); genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth2"); return genome; } - public static IAllele[] getTemplateFireAM() + public static IAllele[] getTemplateAMFire() { - IAllele[] genome = getTemplateBaseMagica(); + IAllele[] genome = getTemplateAMBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_FIRE; genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedNorm"); @@ -801,9 +785,9 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateWaterAM() + public static IAllele[] getTemplateAMWater() { - IAllele[] genome = getTemplateBaseMagica(); + IAllele[] genome = getTemplateAMBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_WATER; genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown1"); @@ -814,13 +798,13 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateLightning() + public static IAllele[] getTemplateAMLightning() { - IAllele[] genome = getTemplateBaseMagica(); + IAllele[] genome = getTemplateAMBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_LIGHTNING; genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanShortest"); - genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryMaximum"); + genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLargest"); genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.speedBlinding; genome[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.getBaseAllele("boolTrue"); @@ -832,9 +816,9 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplatePlant() + public static IAllele[] getTemplateAMPlant() { - IAllele[] genome = getTemplateBaseMagica(); + IAllele[] genome = getTemplateAMBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_PLANT; genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringFastest"); @@ -845,9 +829,9 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateIce() + public static IAllele[] getTemplateAMIce() { - IAllele[] genome = getTemplateBaseMagica(); + IAllele[] genome = getTemplateAMBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_ICE; genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceUp2"); @@ -860,9 +844,9 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateMagma() + public static IAllele[] getTemplateAMMagma() { - IAllele[] genome = getTemplateBaseMagica(); + IAllele[] genome = getTemplateAMBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_MAGMA; genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown2"); @@ -874,9 +858,9 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateArcaneAM() + public static IAllele[] getTemplateAMArcane() { - IAllele[] genome = getTemplateBaseMagica(); + IAllele[] genome = getTemplateAMBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_ARCANE; genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow"); @@ -887,9 +871,9 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateVortex() + public static IAllele[] getTemplateAMVortex() { - IAllele[] genome = getTemplateBaseMagica(); + IAllele[] genome = getTemplateAMBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_VORTEX; genome[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.getBaseAllele("boolTrue"); @@ -901,9 +885,9 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateWight() + public static IAllele[] getTemplateAMWight() { - IAllele[] genome = getTemplateBaseMagica(); + IAllele[] genome = getTemplateAMBase(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AM_WIGHT; genome[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.getBaseAllele("boolTrue"); @@ -955,4 +939,25 @@ public class BeeGenomeManager selectedGene.setString("UID1", allele.getUID()); } + // ---------- Forestry templates ----------------------- + + public static IAllele[] getTemplateForestryValiant() + { + return BeeTemplates.getValiantTemplate(); + } + + public static IAllele[] getTemplateForestrySinister() + { + return BeeTemplates.getSinisterTemplate(); + } + + public static IAllele[] getTemplateForestrySteadfast() + { + return BeeTemplates.getSteadfastTemplate(); + } + + public static IAllele[] getTemplateForestryEnder() + { + return BeeTemplates.getEnderTemplate(); + } } diff --git a/magicbees_src/magicbees/bees/BeeManager.java b/magicbees_src/magicbees/bees/BeeManager.java new file mode 100644 index 0000000..d8b14f9 --- /dev/null +++ b/magicbees_src/magicbees/bees/BeeManager.java @@ -0,0 +1,15 @@ +package magicbees.bees; + +import magicbees.block.types.HiveType; + +public class BeeManager +{ + public static void ititializeBees() + { + Allele.setupAdditionalAlleles(); + BeeSpecies.setupBeeSpecies(); + Allele.registerDeprecatedAlleleReplacements(); + BeeMutation.setupMutations(); + HiveType.initHiveDrops(); + } +} diff --git a/magicbees_src/magicbees/bees/BeeMutation.java b/magicbees_src/magicbees/bees/BeeMutation.java index f5797c6..bf695a0 100644 --- a/magicbees_src/magicbees/bees/BeeMutation.java +++ b/magicbees_src/magicbees/bees/BeeMutation.java @@ -6,8 +6,9 @@ import forestry.api.core.ItemInterface; import forestry.api.genetics.IAllele; import forestry.api.genetics.IGenome; import java.util.ArrayList; +import java.util.Collection; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import magicbees.main.utils.MoonPhase; import magicbees.main.utils.compat.ArsMagicaHelper; import magicbees.main.utils.compat.EquivalentExchangeHelper; @@ -273,4 +274,11 @@ public class BeeMutation implements IBeeMutation return this.setAuraNodeRequired(range); } + + @Override + public Collection getSpecialConditions() + { + // TODO Auto-generated method stub + return null; + } } diff --git a/magicbees_src/magicbees/bees/BeeSpecies.java b/magicbees_src/magicbees/bees/BeeSpecies.java index 26c7b24..0c34ec2 100644 --- a/magicbees_src/magicbees/bees/BeeSpecies.java +++ b/magicbees_src/magicbees/bees/BeeSpecies.java @@ -20,6 +20,7 @@ import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; +import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -36,6 +37,7 @@ import forestry.api.core.IIconProvider; import forestry.api.genetics.AlleleManager; import forestry.api.genetics.IAllele; import forestry.api.genetics.IClassification; +import forestry.api.genetics.IIndividual; import forestry.api.genetics.ISpeciesRoot; public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider @@ -50,7 +52,7 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider BeeClassification.VEILED, 0x0086A8, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false, true), ELDRITCH("Eldritch", "prodigiosus", - BeeClassification.VEILED, 0x0, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), + BeeClassification.VEILED, 0x8D75A0, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), ESOTERIC("Esoteric", "secretiore", BeeClassification.ARCANE, 0x001099, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), @@ -127,83 +129,83 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider BeeClassification.GEM, 0x2EA7EC, 0x001D51, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false), // --------- Thaumcraft Bees --------------------------------------------------------------------------------------- - TC_STARK("Stark", "torridae", + TC_STARK("TCStark", "torridae", // Stark BeeClassification.THAUMIC, 0xCCCCCC, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false), - TC_AIR("Aura", "aether", + TC_AIR("TCAir", "aether", // Aura BeeClassification.THAUMIC, 0xD9D636, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true), - TC_FIRE("Ignis", "praefervidus", + TC_FIRE("TCFire", "praefervidus", // Ignis BeeClassification.THAUMIC, 0xE50B0B, 0x999999, EnumTemperature.HOT, EnumHumidity.ARID, true, true), - TC_WATER("Aqua", "umidus", + TC_WATER("TCWater", "umidus", // Aqua BeeClassification.THAUMIC, 0x36CFD9, 0x999999, EnumTemperature.NORMAL, EnumHumidity.DAMP, true, true), - TC_EARTH("Solum", "sordida", + TC_EARTH("TCEarth", "sordida", // Solum BeeClassification.THAUMIC, 0x005100, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true), - TC_INFUSED("Praecantatio", "azanorius", + TC_MAGIC("TCMagic", "azanorius", //Praecantatio BeeClassification.THAUMIC, 0xaa32fc, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true), - TC_VIS("Vis", "arcanus saecula", + TC_VIS("TCVis", "arcanus saecula", BeeClassification.THAUMIC, 0x004c99, 0x675ED1, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false), - TC_FLUX("Flux", "arcanus labe", + TC_FLUX("TCFlux", "arcanus labe", BeeClassification.THAUMIC, 0x004c99, 0x675ED1, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false), - TC_ATTRACT("Attractive", "", + TC_ATTRACT("TCAttractive", "", BeeClassification.THAUMIC, 0x0, 0x675ED1, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), - TC_REJUVENATING("Rejuvenating", "arcanus vitae", + TC_REJUVENATING("TCRejuvenating", "arcanus vitae", BeeClassification.THAUMIC, 0x91D0D9, 0x675ED1, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false), - TC_PURE("Pure", "arcanus puritatem", + TC_PURE("TCPure", "arcanus puritatem", BeeClassification.THAUMIC, 0xb0092e, 0x675ED1, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false), - TC_BRAINY("Brainy", "cerebrum", + TC_BRAINY("TCBrainy", "cerebrum", BeeClassification.THAUMIC, 0x83FF70, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), - TC_WISPY("Wispy", "umbrabilis", + TC_WISPY("TCWispy", "umbrabilis", BeeClassification.THAUMIC, 0x9cb8d5, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false), - TC_BATTY("Batty", "chiroptera", + TC_BATTY("TCBatty", "chiroptera", BeeClassification.THAUMIC, 0x27350d, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), - TC_CHICKEN("Chicken", "pullus", + TC_CHICKEN("TCChicken", "pullus", BeeClassification.FLESHY, 0x7D431E, 0xE0905E, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), - TC_BEEF("Beef", "bubulae", + TC_BEEF("TCBeef", "bubulae", BeeClassification.FLESHY, 0x40221A, 0xAC6753, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), - TC_PORK("Pork", "porcina", + TC_PORK("TCPork", "porcina", BeeClassification.FLESHY, 0x725D2F, 0xD2BF93, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), - @Deprecated - TC_NODE("Node", "conficiens", +/* @Deprecated + TC_NODE("TCNode", "conficiens", BeeClassification.THAUMIC, 0xFFF266, 0xFF8CE9, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false), @Deprecated - TC_GOSSAMER("Gossamer", "perlucidus", + TC_GOSSAMER("TCGossamer", "perlucidus", BeeClassification.THAUMIC, 0x183f66, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), - +*/ // --------- Equivalent Exchange Bees ----------------------------------------------------------------------------- - EE_MINIUM("Minium", "mutabilis", + EE_MINIUM("EEMinium", "mutabilis", BeeClassification.ALCHEMICAL, 0xac0921, 0x3a030b, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), // --------- Ars Magica Bees -------------------------------------------------------------------------------------- - AM_ESSENCE("Essence", "essentia", + AM_ESSENCE("AMEssence", "essentia", BeeClassification.ESSENTIAL, 0x86BBC5, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), - AM_QUINTESSENCE("Quintessence", "cor essentia", + AM_QUINTESSENCE("AMQuintessence", "cor essentia", BeeClassification.ESSENTIAL, 0xE3A45B, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true), - AM_EARTH("Erde", "magica terra", + AM_EARTH("AMEarth", "magica terra", BeeClassification.ESSENTIAL, 0xAA875E, 0xE3A55B, EnumTemperature.WARM, EnumHumidity.ARID, false, false), - AM_AIR("Luft", "magica aer", + AM_AIR("AMAir", "magica aer", BeeClassification.ESSENTIAL, 0xD5EB9D, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false), - AM_FIRE("Feuer", "magica ignis", + AM_FIRE("AMFire", "magica ignis", BeeClassification.ESSENTIAL, 0x93451E, 0xE3A55B, EnumTemperature.HOT, EnumHumidity.ARID, false, false), - AM_WATER("Wasser", "magica aqua", + AM_WATER("AMWater", "magica aqua", BeeClassification.ESSENTIAL, 0x3B7D8C, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.DAMP, false, false), - AM_LIGHTNING("Blitz", "magica fulgur", + AM_LIGHTNING("AMLightning", "magica fulgur", BeeClassification.ESSENTIAL, 0xEBEFA1, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false), - AM_PLANT("Staude", "magica herba", + AM_PLANT("AMPlant", "magica herba", BeeClassification.ESSENTIAL, 0x49B549, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false), - AM_ICE("Eis", "magica glacium", + AM_ICE("AMIce", "magica glacium", BeeClassification.ESSENTIAL, 0x86BAC6, 0xE3A55B, EnumTemperature.COLD, EnumHumidity.NORMAL, false, false), - AM_MAGMA("Magma", "magica torrens igneus", + AM_MAGMA("AMMagma", "magica torrens igneus", BeeClassification.ESSENTIAL, 0x932B1E, 0xE3A55B, EnumTemperature.HELLISH, EnumHumidity.ARID, false, false), - AM_ARCANE("Arkanen", "magica arcanum", + AM_ARCANE("AMArcane", "magica arcanum", BeeClassification.ESSENTIAL, 0x76184D, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false), - AM_VORTEX("Vortex", "gurges", + AM_VORTEX("AMVortex", "gurges", BeeClassification.ESSENTIAL, 0x71BBE2, 0x0B35A8, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), - AM_WIGHT("Wight", "vectem", + AM_WIGHT("AMWight", "vectem", BeeClassification.ESSENTIAL, 0xB50000, 0x4C4837, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false), ; @@ -221,21 +223,21 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider } else { - TC_INFUSED.setInactive(); + TC_MAGIC.setInactive(); TC_VIS.setInactive(); TC_PURE.setInactive(); TC_FLUX.setInactive(); TC_REJUVENATING.setInactive(); TC_BRAINY.setInactive(); - TC_GOSSAMER.setInactive(); TC_WISPY.setInactive(); TC_BATTY.setInactive(); TC_CHICKEN.setInactive(); TC_BEEF.setInactive(); TC_PORK.setInactive(); } + /*TC_GOSSAMER.setInactive(); // Node bee is getting phased out. - TC_NODE.setInactive(); + TC_NODE.setInactive();*/ if (EquivalentExchangeHelper.isActive()) { @@ -277,6 +279,7 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider AM_VORTEX.setInactive(); AM_WIGHT.setInactive(); } + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("thaumicbees.speciesBlitz", AM_LIGHTNING); // Oredict bees if (OreDictionary.getOres("ingotCopper").size() <= 0) @@ -351,25 +354,6 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider .setGenome(BeeGenomeManager.getTemplateSavant()) .register(); - TC_STARK.addProduct(Config.combs.getStackForType(CombType.TC_STARK), 10) - .setGenome(BeeGenomeManager.getTemplateStark()) - .register(); - TC_AIR.addProduct(Config.combs.getStackForType(CombType.TC_AIRY), 9) - .addSpecialty(new ItemStack(Item.feather), 4) - .setGenome(BeeGenomeManager.getTemplateAir()) - .register(); - TC_FIRE.addProduct(Config.combs.getStackForType(CombType.TC_FIREY), 15) - .addSpecialty(new ItemStack(Item.blazePowder), 4).setGenome(BeeGenomeManager.getTemplateFire()) - .register(); - TC_WATER.addProduct(Config.combs.getStackForType(CombType.TC_WATERY), 20) - .addSpecialty(new ItemStack(Block.ice), 1) - .setGenome(BeeGenomeManager.getTemplateWater()) - .register(); - TC_EARTH.addProduct(Config.combs.getStackForType(CombType.TC_EARTHY), 30) - .addSpecialty(new ItemStack(Block.obsidian), 4) - .setGenome(BeeGenomeManager.getTemplateEarth()) - .register(); - AWARE.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 18) .setGenome(BeeGenomeManager.getTemplateAware()) .register(); @@ -408,6 +392,7 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider .addSpecialty(new ItemStack(Config.jellyBaby), 7) .setGenome(BeeGenomeManager.getTemplateDoctoral()) .register(); + IRON.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10) .addSpecialty(Config.nuggets.getStackForType(NuggetType.IRON), 8) .setGenome(BeeGenomeManager.getTemplateIron()) @@ -444,93 +429,111 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider .addSpecialty(Config.nuggets.getStackForType(NuggetType.APATITE), 2) .setGenome(BeeGenomeManager.getTemplateApatite()) .register(); - - TC_INFUSED.addProduct(Config.combs.getStackForType(CombType.TC_INFUSED), 20) - .setGenome(BeeGenomeManager.getTemplateInfused()) + + + TC_STARK.addProduct(Config.combs.getStackForType(CombType.TC_STARK), 10) + .setGenome(BeeGenomeManager.getTemplateTCStark()) .register(); - TC_VIS.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 25) - .setGenome(BeeGenomeManager.getTemplateVis()) + TC_AIR.addProduct(Config.combs.getStackForType(CombType.TC_AIRY), 9) + .addSpecialty(new ItemStack(Item.feather), 4) + .setGenome(BeeGenomeManager.getTemplateTCAir()) .register(); - TC_PURE.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20) - .setGenome(BeeGenomeManager.getTemplatePure()) + TC_FIRE.addProduct(Config.combs.getStackForType(CombType.TC_FIREY), 15) + .addSpecialty(new ItemStack(Item.blazePowder), 4) + .setGenome(BeeGenomeManager.getTemplateTCFire()) .register(); - TC_FLUX.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20) - .setGenome(BeeGenomeManager.getTemplateFlux()) + TC_WATER.addProduct(Config.combs.getStackForType(CombType.TC_WATERY), 20) + .addSpecialty(new ItemStack(Block.ice), 1) + .setGenome(BeeGenomeManager.getTemplateTCWater()) .register(); - TC_NODE.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20) - .setGenome(BeeGenomeManager.getTemplateNode()) + TC_EARTH.addProduct(Config.combs.getStackForType(CombType.TC_EARTHY), 30) + .addSpecialty(new ItemStack(Block.obsidian), 4) + .setGenome(BeeGenomeManager.getTemplateTCEarth()) .register(); - TC_REJUVENATING.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20) - .setGenome(BeeGenomeManager.getTemplateRejuvinating()) - .register(); - TC_BRAINY.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10) - .addProduct(new ItemStack(Item.rottenFlesh), 6) - .setGenome(BeeGenomeManager.getTemplateBrainy()) - .register(); - TC_BATTY.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10) - .addSpecialty(new ItemStack(Item.gunpowder), 4) - .setGenome(BeeGenomeManager.getTemplateBatty()) - .register(); - TC_GOSSAMER.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.SILKY.ordinal()), 15) - .setGenome(BeeGenomeManager.getTemplateGossamer()) - .register(); - TC_WISPY.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.SILKY.ordinal()), 22) - .addSpecialty(new ItemStack(Config.fCraftingResource, 1, ForestryHelper.CraftingMaterial.SILK_WISP.ordinal()), 4) - .setGenome(BeeGenomeManager.getTemplateWispy()) - .register(); - TC_CHICKEN.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10) - .setGenome(BeeGenomeManager.getTemplateChicken()) - .register(); - TC_BEEF.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10) - .setGenome(BeeGenomeManager.getTemplateBeef()) - .register(); - TC_PORK.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10) - .setGenome(BeeGenomeManager.getTemplatePork()) - .register(); - - EE_MINIUM.addProduct(Config.combs.getStackForType(CombType.OCCULT), 16) - .setGenome(BeeGenomeManager.getTemplateMinium()) + TC_MAGIC.addProduct(Config.combs.getStackForType(CombType.TC_INFUSED), 20) + .setGenome(BeeGenomeManager.getTemplateTCMagic()) .register(); + TC_VIS.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 25) + .setGenome(BeeGenomeManager.getTemplateTCVis()) + .register(); + TC_PURE.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20) + .setGenome(BeeGenomeManager.getTemplateTCPure()) + .register(); + TC_FLUX.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20) + .setGenome(BeeGenomeManager.getTemplateTCFlux()) + .register(); + TC_REJUVENATING.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20) + .setGenome(BeeGenomeManager.getTemplateTCRejuvinating()) + .register(); + + TC_BRAINY.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10) + .addProduct(new ItemStack(Item.rottenFlesh), 6) + .setGenome(BeeGenomeManager.getTemplateTCBrainy()) + .register(); + TC_BATTY.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10) + .addSpecialty(new ItemStack(Item.gunpowder), 4) + .setGenome(BeeGenomeManager.getTemplateTCBatty()) + .register(); + TC_WISPY.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.SILKY.ordinal()), 22) + .addSpecialty(new ItemStack(Config.fCraftingResource, 1, ForestryHelper.CraftingMaterial.SILK_WISP.ordinal()), 4) + .setGenome(BeeGenomeManager.getTemplateTCWispy()) + .register(); + TC_CHICKEN.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10) + .setGenome(BeeGenomeManager.getTemplateTCChicken()) + .register(); + TC_BEEF.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10) + .setGenome(BeeGenomeManager.getTemplateTCBeef()) + .register(); + TC_PORK.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10) + .setGenome(BeeGenomeManager.getTemplateTCPork()) + .register(); + + + EE_MINIUM.addProduct(Config.combs.getStackForType(CombType.OCCULT), 16) + .setGenome(BeeGenomeManager.getTemplateEEMinium()) + .register(); + + AM_ESSENCE.addProduct(Config.combs.getStackForType(CombType.AM_ESSENCE), 12) - .setGenome(BeeGenomeManager.getTemplateEssence()) + .setGenome(BeeGenomeManager.getTemplateAMEssence()) .register(); AM_QUINTESSENCE.addProduct(Config.combs.getStackForType(CombType.AM_ESSENCE), 23) - .setGenome(BeeGenomeManager.getTemplateQuintessence()) + .setGenome(BeeGenomeManager.getTemplateAMQuintessence()) .register(); AM_EARTH.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12) - .setGenome(BeeGenomeManager.getTemplateEarthAM()) + .setGenome(BeeGenomeManager.getTemplateAMEarth()) .register(); AM_AIR.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12) - .setGenome(BeeGenomeManager.getTemplateAirAM()) + .setGenome(BeeGenomeManager.getTemplateAMAir()) .register(); AM_FIRE.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12) - .setGenome(BeeGenomeManager.getTemplateFireAM()) + .setGenome(BeeGenomeManager.getTemplateAMFire()) .register(); AM_WATER.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12) - .setGenome(BeeGenomeManager.getTemplateWaterAM()) + .setGenome(BeeGenomeManager.getTemplateAMWater()) .register(); AM_LIGHTNING.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12) - .setGenome(BeeGenomeManager.getTemplateLightning()) + .setGenome(BeeGenomeManager.getTemplateAMLightning()) .register(); AM_PLANT.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12) - .setGenome(BeeGenomeManager.getTemplatePlant()) + .setGenome(BeeGenomeManager.getTemplateAMPlant()) .register(); AM_ICE.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12) - .setGenome(BeeGenomeManager.getTemplateIce()) + .setGenome(BeeGenomeManager.getTemplateAMIce()) .register(); AM_MAGMA.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12) - .setGenome(BeeGenomeManager.getTemplateMagma()) + .setGenome(BeeGenomeManager.getTemplateAMMagma()) .register(); AM_ARCANE.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 19) - .setGenome(BeeGenomeManager.getTemplateArcaneAM()) + .setGenome(BeeGenomeManager.getTemplateAMArcane()) .register(); AM_VORTEX.addProduct(Config.combs.getStackForType(CombType.AM_ESSENCE), 10) - .setGenome(BeeGenomeManager.getTemplateVortex()) + .setGenome(BeeGenomeManager.getTemplateAMVortex()) .register(); AM_WIGHT.addProduct(Config.combs.getStackForType(CombType.SOUL), 30) .addProduct(Config.combs.getStackForType(CombType.SKULKING), 10) - .setGenome(BeeGenomeManager.getTemplateWight()) + .setGenome(BeeGenomeManager.getTemplateAMWight()) .register(); } @@ -580,7 +583,7 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider private BeeSpecies(String speciesName, String genusName, IClassification classification, int body, int firstColour, int secondColour, EnumTemperature preferredTemp, EnumHumidity preferredHumidity, boolean hasGlowEffect, boolean isSpeciesSecret, boolean isSpeciesCounted, boolean isSpeciesDominant) { - this.uid = "thaumicbees.species" + speciesName; + this.uid = "magicbees.species" + speciesName; this.dominant = isSpeciesDominant; AlleleManager.alleleRegistry.registerAllele(this); binomial = genusName; @@ -778,7 +781,7 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider return icons[type.ordinal()][Math.min(renderPass, 2)]; } - private static final BeeSpecies[] skulkingIconBees = { SKULKING, GHASTLY, SPIDERY, TC_BRAINY, TC_GOSSAMER, TC_WISPY, TC_BATTY, AM_VORTEX, TC_WISPY }; + private static final BeeSpecies[] skulkingIconBees = { SKULKING, GHASTLY, SPIDERY, TC_BRAINY, TC_WISPY, TC_BATTY, AM_VORTEX, TC_WISPY }; public void registerItemIcons(IconRegister itemMap) { @@ -806,7 +809,7 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider switch (this) { case SKULKING: case GHASTLY: case SPIDERY: - case TC_BRAINY: case TC_GOSSAMER: case TC_WISPY: case TC_BATTY: + case TC_BRAINY: case TC_WISPY: case TC_BATTY: case AM_VORTEX: case AM_WIGHT: value = VersionInfo.ModName.toLowerCase() + ":bees/skulking/"; break; @@ -831,4 +834,22 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider @Override @SideOnly(Side.CLIENT) public void registerTerrainIcons(IconRegister terrainMap) { } + + @Override + public int getComplexity() + { + return 0; + } + + @Override + public float getResearchSuitability(ItemStack itemstack) + { + return 0; + } + + @Override + public ItemStack[] getResearchBounty(World world, String researcher, IIndividual individual, int bountyLevel) + { + return null; + } } diff --git a/magicbees_src/magicbees/block/BlockEffectJar.java b/magicbees_src/magicbees/block/BlockEffectJar.java index 290d7c0..8dd7531 100644 --- a/magicbees_src/magicbees/block/BlockEffectJar.java +++ b/magicbees_src/magicbees/block/BlockEffectJar.java @@ -4,8 +4,8 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import magicbees.client.gui.UIScreens; import magicbees.main.CommonProxy; -import magicbees.main.ThaumicBees; -import magicbees.main.utils.TabThaumicBees; +import magicbees.main.MagicBees; +import magicbees.main.utils.TabMagicBees; import magicbees.tileentity.TileEntityEffectJar; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -22,8 +22,8 @@ public class BlockEffectJar extends BlockContainer public BlockEffectJar(int id) { super(id, Material.glass); - this.setCreativeTab(TabThaumicBees.tabThaumicBees); - this.setUnlocalizedName("tb.effectJar"); + this.setCreativeTab(TabMagicBees.tabMagicBees); + this.setUnlocalizedName("effectJar"); this.setBlockBounds(0.25f, 0f, 0.25f, 0.75f, 0.81f, 0.74f); this.setHardness(0.1f); this.setResistance(1.5f); @@ -36,7 +36,7 @@ public class BlockEffectJar extends BlockContainer if (!player.isSneaking()) { - player.openGui(ThaumicBees.object, UIScreens.EFFECT_JAR.ordinal(), world, x, y, z); + player.openGui(MagicBees.object, UIScreens.EFFECT_JAR.ordinal(), world, x, y, z); activate = true; } diff --git a/magicbees_src/magicbees/block/BlockHive.java b/magicbees_src/magicbees/block/BlockHive.java index b0e5b1e..14d7d44 100644 --- a/magicbees_src/magicbees/block/BlockHive.java +++ b/magicbees_src/magicbees/block/BlockHive.java @@ -15,9 +15,11 @@ import net.minecraft.util.Icon; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import forestry.api.core.Tabs; +import forestry.core.config.ForestryBlock; public class BlockHive extends Block { @@ -27,7 +29,7 @@ public class BlockHive extends Block this.setLightValue(0.8f); setHardness(1f); setCreativeTab(Tabs.tabApiculture); - setUnlocalizedName("tb.hive"); + setUnlocalizedName("hive"); } @Override @@ -68,17 +70,8 @@ public class BlockHive extends Block @Override public ArrayList getBlockDropped(World world, int x, int y, int z, int metadata, int fortune) - { - ArrayList toDrop = new ArrayList(); - - // Grab a princess - - - // Maybe grab a drone - - // Maybe grab an item - - return toDrop; + { + return HiveType.getHiveFromMeta(metadata).getDrops(world, x, y, z, fortune); } @Override diff --git a/magicbees_src/magicbees/block/BlockPlanks.java b/magicbees_src/magicbees/block/BlockPlanks.java index 7f3ff1a..b85e8c9 100644 --- a/magicbees_src/magicbees/block/BlockPlanks.java +++ b/magicbees_src/magicbees/block/BlockPlanks.java @@ -3,7 +3,7 @@ package magicbees.block; import java.util.List; import magicbees.block.types.PlankType; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import magicbees.main.utils.VersionInfo; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -27,7 +27,7 @@ public class BlockPlanks extends Block this.setHardness(2.5f); this.setResistance(6.0f); this.setCreativeTab(CreativeTabs.tabBlock); - if (ThaumicBees.getConfig().AreMagicPlanksFlammable) + if (MagicBees.getConfig().AreMagicPlanksFlammable) { Block.setBurnProperties(id, 5, 20); } diff --git a/magicbees_src/magicbees/block/BlockWoodSlab.java b/magicbees_src/magicbees/block/BlockWoodSlab.java index 6d0f30e..b2fc71c 100644 --- a/magicbees_src/magicbees/block/BlockWoodSlab.java +++ b/magicbees_src/magicbees/block/BlockWoodSlab.java @@ -5,7 +5,7 @@ import java.util.Random; import magicbees.block.types.PlankType; import magicbees.main.Config; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import magicbees.main.utils.VersionInfo; import net.minecraft.block.Block; import net.minecraft.block.BlockHalfSlab; @@ -33,7 +33,7 @@ public class BlockWoodSlab extends BlockHalfSlab this.setUnlocalizedName("tb.slab.wood"); this.setCreativeTab(CreativeTabs.tabBlock); this.setLightOpacity(doubleSlab ? 255 : 0); - if (ThaumicBees.getConfig().AreMagicPlanksFlammable) + if (MagicBees.getConfig().AreMagicPlanksFlammable) { Block.setBurnProperties(id, 5, 20); } diff --git a/magicbees_src/magicbees/block/types/HiveType.java b/magicbees_src/magicbees/block/types/HiveType.java index 42768c6..d7a35e2 100644 --- a/magicbees_src/magicbees/block/types/HiveType.java +++ b/magicbees_src/magicbees/block/types/HiveType.java @@ -1,26 +1,48 @@ package magicbees.block.types; import java.util.ArrayList; +import java.util.Random; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; +import magicbees.bees.BeeGenomeManager; import magicbees.bees.BeeSpecies; import magicbees.bees.HiveDrop; import magicbees.item.types.CombType; import magicbees.main.Config; import magicbees.main.utils.VersionInfo; +import magicbees.main.utils.compat.ForestryHelper; +import magicbees.world.feature.FeatureHive; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Icon; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeDictionary.Type; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import forestry.api.apiculture.IHiveDrop; public enum HiveType { - CURIOUS("curious", 12, true), - UNUSUAL("unusual", 12, true), - DEEP("deep", 12, true), - INFERNAL("infernal", 15, false), - END("end", 7, false), + CURIOUS("curious", 12, true, + new BiomeDictionary.Type[] {Type.FOREST, Type.HILLS, Type.MOUNTAIN}, + new int[] {80, 30, 15}), + UNUSUAL("unusual", 12, true, + new BiomeDictionary.Type[] {Type.PLAINS, Type.JUNGLE, Type.HILLS}, + new int[] {90, 60, 20}), + RESONANT("resonant", 12, true, + new BiomeDictionary.Type[] {Type.MAGICAL, Type.HILLS}, + new int[] {95, 50}), + DEEP("deep", 4, true, + new BiomeDictionary.Type[] {Type.HILLS, Type.MOUNTAIN, Type.MUSHROOM}, + new int[] {40, 60, 50}), + INFERNAL("infernal", 15, true, + new BiomeDictionary.Type[] {Type.NETHER, Type.MAGICAL}, + new int[] {98, 10}), + OBLIVION("oblivion", 7, true, + new BiomeDictionary.Type[] {Type.END, Type.MAGICAL}, + new int[] {98, 6}), ; private static String[] nameList; @@ -29,6 +51,8 @@ public enum HiveType public boolean show; private int lightLevel; private ArrayList drops; + private BiomeDictionary.Type[] validBiomes; + private int[] rarity; @SideOnly(Side.CLIENT) private Icon[] icons; @@ -46,16 +70,47 @@ public enum HiveType public static void initHiveDrops() { - CURIOUS.drops.add(new HiveDrop(BeeSpecies.MYSTICAL.getGenome(), new ItemStack[] {Config.combs.getStackForType(CombType.MUNDANE)}, 55)); - CURIOUS.drops.add(new HiveDrop(BeeSpecies.SORCEROUS.getGenome(), new ItemStack[] {Config.combs.getStackForType(CombType.MUNDANE)}, 40)); + ItemStack[] combs = new ItemStack[] {Config.combs.getStackForType(CombType.MUNDANE)}; + HiveDrop valiantDrop = new HiveDrop(BeeGenomeManager.addRainResist(BeeGenomeManager.getTemplateForestryValiant()), combs, 5); + + CURIOUS.drops.add(new HiveDrop(BeeSpecies.MYSTICAL.getGenome(), combs, 80)); + CURIOUS.drops.add(new HiveDrop(BeeGenomeManager.addRainResist(BeeSpecies.MYSTICAL.getGenome()), combs, 15)); + CURIOUS.drops.add(valiantDrop); + + UNUSUAL.drops.add(new HiveDrop(BeeSpecies.UNUSUAL.getGenome(), combs, 80)); + UNUSUAL.drops.add(new HiveDrop(BeeGenomeManager.addRainResist(BeeSpecies.UNUSUAL.getGenome()), combs, 15)); + UNUSUAL.drops.add(valiantDrop); + + RESONANT.drops.add(new HiveDrop(BeeSpecies.ATTUNED.getGenome(), combs, 80)); + RESONANT.drops.add(new HiveDrop(BeeGenomeManager.addRainResist(BeeSpecies.ATTUNED.getGenome()), combs, 20)); + RESONANT.drops.add(valiantDrop); + + DEEP.drops.add(new HiveDrop(BeeSpecies.SORCEROUS.getGenome(), combs, 80)); + DEEP.drops.add(new HiveDrop(BeeGenomeManager.addRainResist(BeeSpecies.SORCEROUS.getGenome()), combs, 20)); + DEEP.drops.add(valiantDrop); + + combs = new ItemStack[] {new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.SIMMERING.ordinal()), new ItemStack(Item.lightStoneDust, 6)}; + + INFERNAL.drops.add(new HiveDrop(BeeGenomeManager.getTemplateForestrySinister(), combs, 80)); + INFERNAL.drops.add(new HiveDrop(BeeSpecies.ELDRITCH.getGenome(), combs, 10)); + INFERNAL.drops.add(new HiveDrop(BeeGenomeManager.getTemplateForestrySteadfast(), combs, 5)); + + combs = new ItemStack[] {new ItemStack(Config.fBeeComb, 3, ForestryHelper.Comb.MYSTERIOUS.ordinal()), new ItemStack(Item.enderPearl, 2)}; + + OBLIVION.drops.add(new HiveDrop(BeeGenomeManager.getTemplateForestryEnder(), combs, 80)); + OBLIVION.drops.add(new HiveDrop(BeeGenomeManager.getTemplateForestrySteadfast(), combs, 5)); } - private HiveType(String hiveName, int light, boolean visible) + private HiveType(String hiveName, int light, boolean visible, BiomeDictionary.Type[] biomes, int[] rarity) { this.name = hiveName; this.lightLevel = light; this.show = visible; this.drops = new ArrayList(); + this.validBiomes = biomes; + this.rarity = rarity; + + assert this.validBiomes.length == this.rarity.length; } @SideOnly(Side.CLIENT) @@ -97,6 +152,42 @@ public enum HiveType { return this.lightLevel; } + + public ArrayList getDrops(World world, int x, int y, int z, int fortune) + { + ArrayList hiveDrops = new ArrayList(); + int dart; + + // Get a princess. + int throttle = 0; + while (hiveDrops.size() <= 0 && throttle < 10) + { + ++throttle; + dart = world.rand.nextInt(100); + for (IHiveDrop drop : drops) + { + if (dart <= drop.getChance(world, x, y, z)) + { + hiveDrops.add(drop.getPrincess(world, x, y, z, fortune)); + break; + } + } + } + + // Get a drone, maybe. + dart = world.rand.nextInt(100); + for (IHiveDrop drop : drops) + { + if (dart <= drop.getChance(world, x, y, z)) + { + hiveDrops.addAll(drop.getDrones(world, x, y, z, fortune)); + hiveDrops.addAll(drop.getAdditional(world, x, y, z, fortune)); + break; + } + } + + return hiveDrops; + } public static String[] getAllNames() { @@ -112,4 +203,59 @@ public enum HiveType } return names; } + + public void generateHive(World world, Random random, int chunkX, int chunkZ, boolean initialGen) + { + BiomeDictionary.Type[] biomeType = BiomeDictionary.getTypesForBiome(world.getBiomeGenForCoordsBody(chunkX, chunkZ)); + + int maxRarity = 0; + for (int i = 0; i < biomeType.length; ++i) + { + int rarity = this.getRarityForBiome(biomeType[i]); + if (rarity > maxRarity) + { + maxRarity = rarity; + } + } + + if (world.rand.nextInt(100) < maxRarity) + { + switch (this) + { + default: + case CURIOUS: + FeatureHive.generateHiveCurious(world, random, chunkX, chunkZ, initialGen); + break; + case UNUSUAL: + FeatureHive.generateHiveUnusual(world, random, chunkX, chunkZ, initialGen); + break; + case RESONANT: + FeatureHive.generateHiveResonant(world, random, chunkX, chunkZ, initialGen); + break; + case DEEP: + FeatureHive.generateHiveDeep(world, random, chunkX, chunkZ, initialGen); + break; + case INFERNAL: + FeatureHive.generateHiveInfernal(world, random, chunkX, chunkZ, initialGen); + break; + case OBLIVION: + FeatureHive.generateHiveOblivion(world, random, chunkX, chunkZ, initialGen); + break; + } + } + } + + public int getRarityForBiome(BiomeDictionary.Type biomeType) + { + int rarity = 0; + for (int i = 0; i < this.validBiomes.length; ++i) + { + if (this.validBiomes[i].equals(biomeType)) + { + rarity = this.rarity[i]; + break; + } + } + return rarity; + } } diff --git a/magicbees_src/magicbees/item/ItemCapsule.java b/magicbees_src/magicbees/item/ItemCapsule.java index 5822a9a..6d0fb20 100644 --- a/magicbees_src/magicbees/item/ItemCapsule.java +++ b/magicbees_src/magicbees/item/ItemCapsule.java @@ -11,8 +11,8 @@ import magicbees.block.types.PlankType; import magicbees.item.types.CapsuleType; import magicbees.item.types.LiquidType; import magicbees.main.CommonProxy; -import magicbees.main.ThaumicBees; -import magicbees.main.utils.TabThaumicBees; +import magicbees.main.MagicBees; +import magicbees.main.utils.TabMagicBees; import magicbees.main.utils.VersionInfo; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IconRegister; @@ -37,11 +37,11 @@ public class ItemCapsule extends Item { super(itemId); this.capsuleType = type; - this.setCreativeTab(TabThaumicBees.tabThaumicBees); + this.setCreativeTab(TabMagicBees.tabMagicBees); this.setHasSubtypes(true); this.setMaxStackSize(maxStackSize); - this.setUnlocalizedName("tb.capsule." + type.toString().toLowerCase()); - GameRegistry.registerItem(this, "tb.capsule." + type.toString().toLowerCase()); + this.setUnlocalizedName("capsule." + type.toString().toLowerCase()); + GameRegistry.registerItem(this, "capsule." + type.toString().toLowerCase()); } public CapsuleType getType() diff --git a/magicbees_src/magicbees/item/ItemComb.java b/magicbees_src/magicbees/item/ItemComb.java index 32aa835..70deacc 100644 --- a/magicbees_src/magicbees/item/ItemComb.java +++ b/magicbees_src/magicbees/item/ItemComb.java @@ -8,7 +8,7 @@ import cpw.mods.fml.relauncher.SideOnly; import forestry.api.core.Tabs; import magicbees.item.types.CombType; import magicbees.main.CommonProxy; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import magicbees.main.utils.VersionInfo; import magicbees.main.utils.compat.ForestryHelper; import net.minecraft.client.renderer.texture.IconRegister; @@ -24,8 +24,8 @@ public class ItemComb extends Item super(itemID); this.setCreativeTab(Tabs.tabApiculture); this.setHasSubtypes(true); - this.setUnlocalizedName("tb.comb"); - GameRegistry.registerItem(this, "tb.comb"); + this.setUnlocalizedName("comb"); + GameRegistry.registerItem(this, "comb"); } public ItemStack getStackForType(CombType type) diff --git a/magicbees_src/magicbees/item/ItemCrystalAspect.java b/magicbees_src/magicbees/item/ItemCrystalAspect.java index 1924f81..4b2b868 100644 --- a/magicbees_src/magicbees/item/ItemCrystalAspect.java +++ b/magicbees_src/magicbees/item/ItemCrystalAspect.java @@ -9,9 +9,9 @@ import cpw.mods.fml.relauncher.SideOnly; import forestry.api.core.Tabs; import thaumcraft.api.EnumTag; import magicbees.main.CommonProxy; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import magicbees.main.utils.LocalizationManager; -import magicbees.main.utils.TabThaumicBees; +import magicbees.main.utils.TabMagicBees; import magicbees.main.utils.VersionInfo; import magicbees.main.utils.compat.ForestryHelper; import net.minecraft.client.renderer.texture.IconRegister; @@ -24,7 +24,7 @@ public class ItemCrystalAspect extends Item public ItemCrystalAspect(int itemId) { super(itemId); - this.setCreativeTab(TabThaumicBees.tabThaumicBees); + this.setCreativeTab(TabMagicBees.tabMagicBees); this.setHasSubtypes(true); this.setUnlocalizedName("crystalAspect"); GameRegistry.registerItem(this, "crystalAspect"); @@ -60,6 +60,6 @@ public class ItemCrystalAspect extends Item @Override public String getItemDisplayName(ItemStack stack) { - return String.format(LocalizationManager.getLocalizedString("tb.resource.crystalAspect"), EnumTag.get(stack.getItemDamage()).name); + return String.format(LocalizationManager.getLocalizedString("resource.crystalAspect"), EnumTag.get(stack.getItemDamage()).name); } } diff --git a/magicbees_src/magicbees/item/ItemDrop.java b/magicbees_src/magicbees/item/ItemDrop.java index 765f2aa..a290b04 100644 --- a/magicbees_src/magicbees/item/ItemDrop.java +++ b/magicbees_src/magicbees/item/ItemDrop.java @@ -10,7 +10,7 @@ import forestry.api.core.Tabs; import magicbees.item.types.DropType; import magicbees.item.types.PropolisType; import magicbees.main.CommonProxy; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import magicbees.main.utils.compat.ForestryHelper; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; @@ -25,8 +25,8 @@ public class ItemDrop extends Item super(itemID); this.setCreativeTab(Tabs.tabApiculture); this.setHasSubtypes(true); - this.setUnlocalizedName("tb.drop"); - GameRegistry.registerItem(this, "tb.drop"); + this.setUnlocalizedName("drop"); + GameRegistry.registerItem(this, "drop"); } public ItemStack getStackForType(DropType type) diff --git a/magicbees_src/magicbees/item/ItemMagicHiveFrame.java b/magicbees_src/magicbees/item/ItemMagicHiveFrame.java index b2f33da..ea932a0 100644 --- a/magicbees_src/magicbees/item/ItemMagicHiveFrame.java +++ b/magicbees_src/magicbees/item/ItemMagicHiveFrame.java @@ -2,7 +2,7 @@ package magicbees.item; import magicbees.item.types.HiveFrameType; import magicbees.main.Config; -import magicbees.main.utils.TabThaumicBees; +import magicbees.main.utils.TabMagicBees; import magicbees.main.utils.VersionInfo; import magicbees.main.utils.compat.ThaumcraftHelper; import net.minecraft.client.renderer.texture.IconRegister; @@ -29,7 +29,7 @@ public class ItemMagicHiveFrame extends Item implements IHiveFrame this.type = frameType; this.setMaxDamage(this.type.maxDamage); this.setMaxStackSize(1); - this.setCreativeTab(TabThaumicBees.tabThaumicBees); + this.setCreativeTab(TabMagicBees.tabMagicBees); this.setUnlocalizedName("frame" + frameType.getName()); GameRegistry.registerItem(this, "frame" + frameType.getName()); } @@ -52,51 +52,6 @@ public class ItemMagicHiveFrame extends Item implements IHiveFrame { int damage = wear; - if (ThaumcraftHelper.isActive()) - { - int fluxMod = 1; - // This throttles back the amount of aura consumed by the frame by storing a smidge of data on the item stack. - if (this.type.auraPerUse > 0) - { - NBTTagCompound tag; - if (frame.hasTagCompound()) - { - tag = frame.getTagCompound(); - } - else - { - tag = new NBTTagCompound(); - tag.setByte("wearTicks", (byte)0); - frame.setTagCompound(tag); - } - - int wearTicks = tag.getByte("wearTicks") + 1; - - if (wearTicks == this.type.wearTicksPerAura) - { - // Attempt to use aura for the frame. - if (!ThaumcraftApi.decreaseClosestAura(w, x, y, z, this.type.auraPerUse, true)) - { - // Insufficient aura, or no nearby node. - damage = wear + this.type.auraPerUse * this.type.wearTicksPerAura; - fluxMod = 1 + w.rand.nextInt(this.type.wearTicksPerAura); - } - wearTicks = 0; - - for (int i = 0; i < fluxMod; ++i) - { - ThaumcraftHelper.doFluxEffect(this.type, w, x, y, z); - } - } - - tag.setByte("wearTicks", (byte)wearTicks); - } - } - else - { - damage += 2; - } - frame.setItemDamage(frame.getItemDamage() + damage); if (frame.getItemDamage() >= frame.getMaxDamage()) diff --git a/magicbees_src/magicbees/item/ItemMiscResources.java b/magicbees_src/magicbees/item/ItemMiscResources.java index 6231c38..a6af2b7 100644 --- a/magicbees_src/magicbees/item/ItemMiscResources.java +++ b/magicbees_src/magicbees/item/ItemMiscResources.java @@ -8,8 +8,8 @@ import cpw.mods.fml.relauncher.SideOnly; import forestry.api.core.Tabs; import magicbees.item.types.ResourceType; import magicbees.main.CommonProxy; -import magicbees.main.ThaumicBees; -import magicbees.main.utils.TabThaumicBees; +import magicbees.main.MagicBees; +import magicbees.main.utils.TabMagicBees; import magicbees.main.utils.VersionInfo; import magicbees.main.utils.compat.ForestryHelper; import net.minecraft.client.renderer.texture.IconRegister; @@ -25,10 +25,10 @@ public class ItemMiscResources extends Item public ItemMiscResources(int ID) { super(ID); - this.setCreativeTab(TabThaumicBees.tabThaumicBees); + this.setCreativeTab(TabMagicBees.tabMagicBees); this.setHasSubtypes(true); - this.setUnlocalizedName("tb.miscResources"); - GameRegistry.registerItem(this, "tb.miscResources"); + this.setUnlocalizedName("miscResources"); + GameRegistry.registerItem(this, "miscResources"); } public ItemStack getStackForType(ResourceType type) diff --git a/magicbees_src/magicbees/item/ItemMoonDial.java b/magicbees_src/magicbees/item/ItemMoonDial.java index 9f76460..3daae29 100644 --- a/magicbees_src/magicbees/item/ItemMoonDial.java +++ b/magicbees_src/magicbees/item/ItemMoonDial.java @@ -7,9 +7,9 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import magicbees.item.types.PollenType; import magicbees.main.Config; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import magicbees.main.utils.MoonPhase; -import magicbees.main.utils.TabThaumicBees; +import magicbees.main.utils.TabMagicBees; import magicbees.main.utils.VersionInfo; import magicbees.main.utils.compat.ForestryHelper; import net.minecraft.client.renderer.texture.IconRegister; @@ -27,9 +27,9 @@ public class ItemMoonDial extends Item public ItemMoonDial(int id) { super(id); - this.setCreativeTab(TabThaumicBees.tabThaumicBees); - this.setUnlocalizedName("tb.moonDial"); - GameRegistry.registerItem(this, "tb.moonDial"); + this.setCreativeTab(TabMagicBees.tabMagicBees); + this.setUnlocalizedName("moonDial"); + GameRegistry.registerItem(this, "moonDial"); } @SideOnly(Side.CLIENT) @@ -54,7 +54,9 @@ public class ItemMoonDial extends Item @SideOnly(Side.CLIENT) public void addInformation(ItemStack itemStack, EntityPlayer entityPlayer, List infoList, boolean par4) { - if (ThaumicBees.getConfig().MoonDialShowsPhaseInText && entityPlayer.getCurrentEquippedItem().getItem() == this) + if (MagicBees.getConfig().MoonDialShowsPhaseInText && + entityPlayer.getCurrentEquippedItem() != null && + entityPlayer.getCurrentEquippedItem().getItem() == this) { infoList.add("\u00A77" + MoonPhase.getMoonPhaseFromTime(entityPlayer.worldObj.getWorldTime()).getLocalizedName()); } diff --git a/magicbees_src/magicbees/item/ItemPollen.java b/magicbees_src/magicbees/item/ItemPollen.java index a5f1329..45e680e 100644 --- a/magicbees_src/magicbees/item/ItemPollen.java +++ b/magicbees_src/magicbees/item/ItemPollen.java @@ -8,7 +8,7 @@ import cpw.mods.fml.relauncher.SideOnly; import forestry.api.core.Tabs; import magicbees.item.types.PollenType; import magicbees.main.CommonProxy; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import magicbees.main.utils.compat.ForestryHelper; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; @@ -23,8 +23,8 @@ public class ItemPollen extends Item super(itemID); this.setCreativeTab(Tabs.tabApiculture); this.setHasSubtypes(true); - this.setUnlocalizedName("tb.pollen"); - GameRegistry.registerItem(this, "tb.pollen"); + this.setUnlocalizedName("pollen"); + GameRegistry.registerItem(this, "pollen"); } public ItemStack getStackForType(PollenType type) { diff --git a/magicbees_src/magicbees/item/ItemPropolis.java b/magicbees_src/magicbees/item/ItemPropolis.java index 54decfa..4fec0f1 100644 --- a/magicbees_src/magicbees/item/ItemPropolis.java +++ b/magicbees_src/magicbees/item/ItemPropolis.java @@ -22,8 +22,8 @@ public class ItemPropolis extends Item super(id); this.setCreativeTab(Tabs.tabApiculture); this.setHasSubtypes(true); - this.setUnlocalizedName("tb.propolis"); - GameRegistry.registerItem(this, "tb.propolis"); + this.setUnlocalizedName("propolis"); + GameRegistry.registerItem(this, "propolis"); } public ItemStack getStackForType(PropolisType type) diff --git a/magicbees_src/magicbees/item/ItemThaumiumGrafter.java b/magicbees_src/magicbees/item/ItemThaumiumGrafter.java index f735003..59f7fe9 100644 --- a/magicbees_src/magicbees/item/ItemThaumiumGrafter.java +++ b/magicbees_src/magicbees/item/ItemThaumiumGrafter.java @@ -103,15 +103,10 @@ public class ItemThaumiumGrafter extends Item implements IVisRepairable, IToolGr { if (stack.getItemDamage() > 0) { - if (ThaumcraftApi.decreaseClosestAura(e.worldObj, e.posX, e.posY, e.posZ, 5, true)) + if (ThaumcraftApi.decreaseClosestAura(e.worldObj, e.posX, e.posY, e.posZ, 2, true)) { stack.damageItem(-1, (EntityLiving)e); } - if (e instanceof EntityPlayer) - { - EntityPlayer p = (EntityPlayer)e; - p.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 600)); - } } } } diff --git a/magicbees_src/magicbees/item/ItemThaumiumScoop.java b/magicbees_src/magicbees/item/ItemThaumiumScoop.java index 7dc018a..c2ac44d 100644 --- a/magicbees_src/magicbees/item/ItemThaumiumScoop.java +++ b/magicbees_src/magicbees/item/ItemThaumiumScoop.java @@ -1,19 +1,18 @@ package magicbees.item; -import cpw.mods.fml.common.registry.GameRegistry; -import thaumcraft.api.IVisRepairable; -import thaumcraft.api.ThaumcraftApi; -import magicbees.main.CommonProxy; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemTool; import net.minecraft.world.World; import net.minecraftforge.common.ForgeHooks; +import thaumcraft.api.IVisRepairable; +import thaumcraft.api.ThaumcraftApi; +import cpw.mods.fml.common.registry.GameRegistry; +import forestry.api.core.IToolScoop; -public class ItemThaumiumScoop extends Item implements IVisRepairable +public class ItemThaumiumScoop extends Item implements IVisRepairable, IToolScoop { public ItemThaumiumScoop(int itemID) { diff --git a/magicbees_src/magicbees/item/ItemWax.java b/magicbees_src/magicbees/item/ItemWax.java index 9b561c2..fd12525 100644 --- a/magicbees_src/magicbees/item/ItemWax.java +++ b/magicbees_src/magicbees/item/ItemWax.java @@ -24,8 +24,8 @@ public class ItemWax extends Item super(itemID); this.setCreativeTab(Tabs.tabApiculture); this.setHasSubtypes(true); - this.setUnlocalizedName("tb.wax"); - GameRegistry.registerItem(this, "tb.wax"); + this.setUnlocalizedName("wax"); + GameRegistry.registerItem(this, "wax"); } public ItemStack getStackForType(WaxType type) diff --git a/magicbees_src/magicbees/item/types/CapsuleType.java b/magicbees_src/magicbees/item/types/CapsuleType.java index a24d416..c060e1b 100644 --- a/magicbees_src/magicbees/item/types/CapsuleType.java +++ b/magicbees_src/magicbees/item/types/CapsuleType.java @@ -26,6 +26,6 @@ public enum CapsuleType public String getLocalizedName() { - return LocalizationManager.getLocalizedString("tb.capsule." + name); + return LocalizationManager.getLocalizedString("capsule." + name); } } \ No newline at end of file diff --git a/magicbees_src/magicbees/item/types/CombType.java b/magicbees_src/magicbees/item/types/CombType.java index 23c5bbf..6c3857b 100644 --- a/magicbees_src/magicbees/item/types/CombType.java +++ b/magicbees_src/magicbees/item/types/CombType.java @@ -39,6 +39,6 @@ public enum CombType public String getName() { - return LocalizationManager.getLocalizedString("tb.comb." + this.name); + return LocalizationManager.getLocalizedString("comb." + this.name); } } \ No newline at end of file diff --git a/magicbees_src/magicbees/item/types/DropType.java b/magicbees_src/magicbees/item/types/DropType.java index 55ff9a6..f87f88f 100644 --- a/magicbees_src/magicbees/item/types/DropType.java +++ b/magicbees_src/magicbees/item/types/DropType.java @@ -21,6 +21,6 @@ public enum DropType public String getName() { - return LocalizationManager.getLocalizedString("tb.drop." + this.name); + return LocalizationManager.getLocalizedString("drop." + this.name); } } \ No newline at end of file diff --git a/magicbees_src/magicbees/item/types/HiveFrameType.java b/magicbees_src/magicbees/item/types/HiveFrameType.java index 146ce34..5714401 100644 --- a/magicbees_src/magicbees/item/types/HiveFrameType.java +++ b/magicbees_src/magicbees/item/types/HiveFrameType.java @@ -4,29 +4,26 @@ import magicbees.main.utils.LocalizationManager; public enum HiveFrameType { - MAGIC("Magic", 32, 240, 1f, 1f, 1f, 2f, 2, 5), - RESILIENT("Resilient", 33, 840, 1f, 1f, 1f, 2f, 2, 5), - GENTLE("Gentle", 34, 200, 1f, 0.7f, 1.5f, 1.4f, 1, 5), - METABOLIC("Metabolic", 35, 120, 1f, 1.8f, 1f, 1.2f, 5, 5), - NECROTIC("Necrotic", 36, 290, 1f, 1f, 0.3f, 0.75f, 1, 5), - TEMPORAL("Temporal", 37, 300, 1f, 1f, 2.5f, 1f, 1, 5 ), - OBLIVION("Oblivion", 38, 60, 1f, 1f, 0.0001f, 0f, 15, 1), + MAGIC("Magic", 240, 1f, 1f, 1f, 2f), + RESILIENT("Resilient", 800, 1f, 1f, 1f, 2f), + GENTLE("Gentle", 200, 1f, 0.7f, 1.5f, 1.4f), + METABOLIC("Metabolic", 120, 1f, 1.8f, 1f, 1.2f), + NECROTIC("Necrotic", 290, 1f, 1f, 0.3f, 0.75f), + TEMPORAL("Temporal", 300, 1f, 1f, 2.5f, 1f), + OBLIVION("Oblivion", 60, 1f, 1f, 0.0001f, 0f), ; - private HiveFrameType(String name, int icon, int damage, - float territory, float mutation, float lifespan, float production, - int auraUse, int wearTicks) + private HiveFrameType(String name, int damage, + float territory, float mutation, float lifespan, float production) { - this(name, icon, damage, territory, mutation, lifespan, production, 1f, false, false, false, false, auraUse, wearTicks); + this(name, damage, territory, mutation, lifespan, production, 1f, false, false, false, false); } - private HiveFrameType(String name, int icon, int damage, + private HiveFrameType(String name, int damage, float territory, float mutation, float lifespan, float production, float flowering, - boolean sealed, boolean lit, boolean sunlit, boolean hellish, - int auraUse, int wearTicks) + boolean sealed, boolean lit, boolean sunlit, boolean hellish) { this.frameName = name; - this.iconIdx = icon; this.maxDamage = damage; this.territoryMod = territory; @@ -38,13 +35,9 @@ public enum HiveFrameType this.isLit = lit; this.isSunlit = sunlit; this.isHellish = hellish; - - this.auraPerUse = auraUse; - this.wearTicksPerAura = wearTicks; } private String frameName; - public int iconIdx; public int maxDamage; public float territoryMod; @@ -57,9 +50,6 @@ public enum HiveFrameType public boolean isSunlit; public boolean isHellish; - public int auraPerUse; - public int wearTicksPerAura; - public String getName() { return this.frameName; @@ -67,6 +57,6 @@ public enum HiveFrameType public String getLocalizedName() { - return LocalizationManager.getLocalizedString("tb.frame." + this.frameName); + return LocalizationManager.getLocalizedString("frame." + this.frameName); } } diff --git a/magicbees_src/magicbees/item/types/LiquidType.java b/magicbees_src/magicbees/item/types/LiquidType.java index 964074d..14c6dad 100644 --- a/magicbees_src/magicbees/item/types/LiquidType.java +++ b/magicbees_src/magicbees/item/types/LiquidType.java @@ -53,6 +53,6 @@ public enum LiquidType public String getDisplayName() { - return LocalizationManager.getLocalizedString("tb.liquid." + liquidID); + return LocalizationManager.getLocalizedString("liquid." + liquidID); } } diff --git a/magicbees_src/magicbees/item/types/NuggetType.java b/magicbees_src/magicbees/item/types/NuggetType.java index 48dadbe..188b687 100644 --- a/magicbees_src/magicbees/item/types/NuggetType.java +++ b/magicbees_src/magicbees/item/types/NuggetType.java @@ -45,6 +45,6 @@ public enum NuggetType public String getName() { - return LocalizationManager.getLocalizedString("tb.nugget." + this.toString().toLowerCase()); + return LocalizationManager.getLocalizedString("nugget." + this.toString().toLowerCase()); } } diff --git a/magicbees_src/magicbees/item/types/PollenType.java b/magicbees_src/magicbees/item/types/PollenType.java index f260349..a3cca9f 100644 --- a/magicbees_src/magicbees/item/types/PollenType.java +++ b/magicbees_src/magicbees/item/types/PollenType.java @@ -21,6 +21,6 @@ public enum PollenType public String getName() { - return LocalizationManager.getLocalizedString("tb.pollen." + this.name); + return LocalizationManager.getLocalizedString("pollen." + this.name); } } \ No newline at end of file diff --git a/magicbees_src/magicbees/item/types/PropolisType.java b/magicbees_src/magicbees/item/types/PropolisType.java index 6bda2a0..035bbbe 100644 --- a/magicbees_src/magicbees/item/types/PropolisType.java +++ b/magicbees_src/magicbees/item/types/PropolisType.java @@ -24,6 +24,6 @@ public enum PropolisType public String getName() { - return LocalizationManager.getLocalizedString("tb.propolis." + this.name); + return LocalizationManager.getLocalizedString("propolis." + this.name); } } diff --git a/magicbees_src/magicbees/item/types/ResourceType.java b/magicbees_src/magicbees/item/types/ResourceType.java index 64cf8d2..6a4d6b4 100644 --- a/magicbees_src/magicbees/item/types/ResourceType.java +++ b/magicbees_src/magicbees/item/types/ResourceType.java @@ -30,6 +30,6 @@ public enum ResourceType public String getLocalizedName() { - return LocalizationManager.getLocalizedString("tb.resource." + this.name); + return LocalizationManager.getLocalizedString("resource." + this.name); } } diff --git a/magicbees_src/magicbees/item/types/WaxType.java b/magicbees_src/magicbees/item/types/WaxType.java index 28af535..8400903 100644 --- a/magicbees_src/magicbees/item/types/WaxType.java +++ b/magicbees_src/magicbees/item/types/WaxType.java @@ -22,6 +22,6 @@ public enum WaxType public String getName() { - return LocalizationManager.getLocalizedString("tb.wax." + this.name); + return LocalizationManager.getLocalizedString("wax." + this.name); } } \ No newline at end of file diff --git a/magicbees_src/magicbees/main/ClientProxy.java b/magicbees_src/magicbees/main/ClientProxy.java index 5a1cb49..a271c24 100644 --- a/magicbees_src/magicbees/main/ClientProxy.java +++ b/magicbees_src/magicbees/main/ClientProxy.java @@ -17,9 +17,9 @@ public class ClientProxy extends CommonProxy public ClientProxy() { } @Override - public void registerTileEntities() + public void registerRenderers() { - super.registerTileEntities(); + super.registerRenderers(); RenderIdEffectJar = RenderingRegistry.getNextAvailableRenderId(); MinecraftForgeClient.registerItemRenderer(Config.effectJar.blockID, EffectJarRenderer.instance); @@ -30,7 +30,7 @@ public class ClientProxy extends CommonProxy public void drawBeeEffects(World world, double xPos, double yPos, double zPos, int colour, int rangeX, int rangeY, int rangeZ) { // drawParticleEffects flag pulled from Forestry after configs - if (ThaumicBees.getConfig().DrawParticleEffects) + if (MagicBees.getConfig().DrawParticleEffects) { double spawnX; double spawnY; diff --git a/magicbees_src/magicbees/main/CommonProxy.java b/magicbees_src/magicbees/main/CommonProxy.java index 5737b49..4d90fde 100644 --- a/magicbees_src/magicbees/main/CommonProxy.java +++ b/magicbees_src/magicbees/main/CommonProxy.java @@ -8,10 +8,10 @@ import net.minecraft.world.World; public class CommonProxy { - public static final String TEXTURE_PATH = "/mods/thaumicbees/textures/"; - public static final String MODEL_PATH = "/mods/thaumicbees/model/"; - public static final String TCBEES_RESEARCH = "/research/thaumicbees/"; - public static final String TCBEES_LOCDIR = "/lang/thaumicbees/"; + public static final String TEXTURE_PATH = "/mods/magicbees/textures/"; + public static final String MODEL_PATH = "/mods/magicbees/model/"; + public static final String TCBEES_RESEARCH = "/research/magicbees/"; + public static final String TCBEES_LOCDIR = "/lang/magicbees/"; public static String FORESTRY_GFX_ITEMS; public static String FORESTRY_GFX_BEEEFFECTS; @@ -23,11 +23,6 @@ public class CommonProxy public CommonProxy() { } - public void registerTileEntities() - { - GameRegistry.registerTileEntity(TileEntityEffectJar.class, "tb.entity.effectJar"); - } - public void drawBeeEffects(World world, double xPos, double yPos, double zPos, int colour, int rangeX, int rangeY, int rangeZ) { // Does nothing in common. diff --git a/magicbees_src/magicbees/main/Config.java b/magicbees_src/magicbees/main/Config.java index ebccb23..11da0c9 100644 --- a/magicbees_src/magicbees/main/Config.java +++ b/magicbees_src/magicbees/main/Config.java @@ -26,11 +26,13 @@ import magicbees.item.types.HiveFrameType; import magicbees.item.types.NuggetType; import magicbees.item.types.ResourceType; import magicbees.main.utils.LocalizationManager; +import magicbees.main.utils.VersionInfo; import magicbees.main.utils.compat.ArsMagicaHelper; import magicbees.main.utils.compat.EquivalentExchangeHelper; import magicbees.main.utils.compat.ForestryHelper; import magicbees.main.utils.compat.ThaumcraftHelper; import magicbees.storage.BackpackDefinition; +import magicbees.tileentity.TileEntityEffectJar; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; @@ -58,15 +60,16 @@ import forestry.api.storage.EnumBackpackType; */ public class Config { - public boolean DrawParticleEffects; - public boolean BeeInfusionsAdded; - public boolean AddThaumcraftItemsToBackpacks; - public boolean DisableUpdateCheck; - public boolean AreMagicPlanksFlammable; - public boolean UseImpregnatedStickInTools; - public boolean MoonDialShowsPhaseInText; - public String ThaumaturgeExtraItems; - public int CapsuleStackSizeMax; + public boolean DrawParticleEffects; + public boolean BeeInfusionsAdded; + public boolean AddThaumcraftItemsToBackpacks; + public boolean DisableUpdateNotification; + public boolean AreMagicPlanksFlammable; + public boolean UseImpregnatedStickInTools; + public boolean MoonDialShowsPhaseInText; + public String ThaumaturgeExtraItems; + public int CapsuleStackSizeMax; + public boolean DoHiveRetrogen; public static BlockPlanks planksWood; public static BlockWoodSlab slabWoodHalf; @@ -151,19 +154,19 @@ public class Config //----- Config State info ---------------------------------- - private Configuration tbConfig; + private Configuration configuration; public Config(File configFile) { - this.tbConfig = new Configuration(configFile); + this.configuration = new Configuration(configFile); - this.tbConfig.load(); + this.configuration.load(); this.doMiscConfig(); } public void saveConfigs() { - this.tbConfig.save(); + this.configuration.save(); } public void setupBlocks() @@ -176,27 +179,27 @@ public class Config int blockIdBase = 1750; { - int plankId = tbConfig.getBlock("planksTC", blockIdBase++).getInt(); - int slabFullId = tbConfig.getBlock("slabFull", blockIdBase++).getInt(); - int slabHalfId = tbConfig.getBlock("slabHalf", blockIdBase++).getInt(); + int plankId = configuration.getBlock("planksTC", blockIdBase++).getInt(); + int slabFullId = configuration.getBlock("slabFull", blockIdBase++).getInt(); + int slabHalfId = configuration.getBlock("slabHalf", blockIdBase++).getInt(); if (ThaumcraftHelper.isActive()) { planksWood = new BlockPlanks(plankId); - planksWood.setUnlocalizedName("tb.planks"); + planksWood.setUnlocalizedName("planks"); Item.itemsList[planksWood.blockID] = null; Item.itemsList[planksWood.blockID] = new ItemMultiTextureTile(planksWood.blockID - 256, planksWood, PlankType.getAllNames()); OreDictionary.registerOre("plankWood", new ItemStack(planksWood, 1, -1)); - FMLInterModComms.sendMessage("BuildCraft|Transport", "add-facade", ThaumicBees.getConfig().planksWood.blockID + "@" + PlankType.GREATWOOD.ordinal()); - FMLInterModComms.sendMessage("BuildCraft|Transport", "add-facade", ThaumicBees.getConfig().planksWood.blockID + "@" + PlankType.SILVERWOOD.ordinal()); + FMLInterModComms.sendMessage("BuildCraft|Transport", "add-facade", MagicBees.getConfig().planksWood.blockID + "@" + PlankType.GREATWOOD.ordinal()); + FMLInterModComms.sendMessage("BuildCraft|Transport", "add-facade", MagicBees.getConfig().planksWood.blockID + "@" + PlankType.SILVERWOOD.ordinal()); slabWoodFull = new BlockWoodSlab(slabFullId, true); slabWoodHalf = new BlockWoodSlab(slabHalfId, false); - slabWoodFull.setUnlocalizedName("tb.planks"); - slabWoodHalf.setUnlocalizedName("tb.planks"); + slabWoodFull.setUnlocalizedName("planks"); + slabWoodHalf.setUnlocalizedName("planks"); Item.itemsList[slabWoodHalf.blockID] = null; Item.itemsList[slabWoodHalf.blockID] = new ItemSlab(slabWoodHalf.blockID - 256, slabWoodHalf, slabWoodFull, false); @@ -207,11 +210,17 @@ public class Config } } - effectJar = new BlockEffectJar(tbConfig.getBlock("effectJar", blockIdBase++).getInt()); - GameRegistry.registerBlock(effectJar, "tb.effectJar"); + effectJar = new BlockEffectJar(configuration.getBlock("effectJar", blockIdBase++).getInt()); + GameRegistry.registerBlock(effectJar, "effectJar"); + GameRegistry.registerTileEntity(TileEntityEffectJar.class, TileEntityEffectJar.entityName); - hive = new BlockHive(tbConfig.getBlock("hives", blockIdBase++).getInt()); - GameRegistry.registerBlock(hive, "tb.hive"); + hive = new BlockHive(configuration.getBlock("hives", blockIdBase++).getInt()); + GameRegistry.registerBlock(hive, "hive"); + + for (HiveType t : HiveType.values()) + { + MinecraftForge.setBlockHarvestLevel(hive, t.ordinal(), "scoop", 0); + } Item.itemsList[hive.blockID] = null; Item.itemsList[hive.blockID] = new ItemMultiTextureTile(hive.blockID - 256, hive, HiveType.getAllNames()); @@ -226,61 +235,61 @@ public class Config int itemIDBase = 26090; - combs= new ItemComb(tbConfig.getItem("combs", itemIDBase++).getInt()); - wax = new ItemWax(tbConfig.getItem("wax", itemIDBase++).getInt()); - propolis = new ItemPropolis(tbConfig.getItem("propolis", itemIDBase++).getInt()); - drops = new ItemDrop(tbConfig.getItem("drop", itemIDBase++).getInt()); - miscResources = new ItemMiscResources(tbConfig.getItem("miscResources", itemIDBase++).getInt()); + combs= new ItemComb(configuration.getItem("combs", itemIDBase++).getInt() - 256); + wax = new ItemWax(configuration.getItem("wax", itemIDBase++).getInt() - 256); + propolis = new ItemPropolis(configuration.getItem("propolis", itemIDBase++).getInt() - 256); + drops = new ItemDrop(configuration.getItem("drop", itemIDBase++).getInt() - 256); + miscResources = new ItemMiscResources(configuration.getItem("miscResources", itemIDBase++).getInt() - 256); // Make Aromatic Lumps a swarmer inducer. Chance is /1000. - BeeManager.inducers.put(miscResources.getStackForType(ResourceType.AROMATIC_LUMP), 80); + BeeManager.inducers.put(miscResources.getStackForType(ResourceType.AROMATIC_LUMP), 95); { - int tier1 = tbConfig.getItem("thaumaturgePack1", itemIDBase++).getInt(); - int tier2 = tbConfig.getItem("thaumaturgePack2", itemIDBase++).getInt(); + int tier1 = configuration.getItem("thaumaturgePack1", itemIDBase++).getInt() - 256; + int tier2 = configuration.getItem("thaumaturgePack2", itemIDBase++).getInt() - 256; if (ThaumcraftHelper.isActive()) { try { // 0x8700C6 = purpleish. - String backpackName = LocalizationManager.getLocalizedString("tb.backpack.thaumaturge"); + String backpackName = LocalizationManager.getLocalizedString("backpack.thaumaturge"); BackpackDefinition def = new BackpackDefinition("thaumaturge", backpackName, 0x8700C6); thaumaturgeBackpackT1 = BackpackManager.backpackInterface.addBackpack(tier1, def, EnumBackpackType.T1); thaumaturgeBackpackT2 = BackpackManager.backpackInterface.addBackpack(tier2, def, EnumBackpackType.T2); // Add additional items from configs to backpack. - if (ThaumicBees.getConfig().ThaumaturgeExtraItems.length() > 0) + if (MagicBees.getConfig().ThaumaturgeExtraItems.length() > 0) { - FMLLog.info("Attempting to add extra items to Thaumaturge's backpack! If you get an error, check your ThaumicBees.conf."); - FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "thaumaturge@" + ThaumicBees.getConfig().ThaumaturgeExtraItems); + FMLLog.info("Attempting to add extra items to Thaumaturge's backpack. If you get an error, check your MagicBees.conf."); + FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "thaumaturge@" + MagicBees.getConfig().ThaumaturgeExtraItems); } } catch (Exception e) { - FMLLog.severe("ThaumicBees encountered a problem during loading!"); + FMLLog.severe("MagicBees encountered a problem during loading!"); FMLLog.severe("Could not register backpacks via Forestry. Check your FML Client log and see if Forestry crashed silently."); } } } - magicCapsule = new ItemCapsule(CapsuleType.MAGIC, tbConfig.getItem("magicCapsule", itemIDBase++).getInt(), this.CapsuleStackSizeMax); - pollen = new ItemPollen(tbConfig.getItem("pollen", itemIDBase++).getInt()); + magicCapsule = new ItemCapsule(CapsuleType.MAGIC, configuration.getItem("magicCapsule", itemIDBase++).getInt() - 256, this.CapsuleStackSizeMax); + pollen = new ItemPollen(configuration.getItem("pollen", itemIDBase++).getInt() - 256); { - int crystalId = tbConfig.getItem("fluxCrystal", itemIDBase++).getInt(); + int crystalId = configuration.getItem("fluxCrystal", itemIDBase++).getInt() - 256; if (ThaumcraftHelper.isActive()) { solidFlux = new ItemCrystalAspect(crystalId); } } - hiveFrameMagic = new ItemMagicHiveFrame(tbConfig.getItem("frameMagic", itemIDBase++).getInt(), HiveFrameType.MAGIC); - hiveFrameResilient = new ItemMagicHiveFrame(tbConfig.getItem("frameResilient", itemIDBase++).getInt(), HiveFrameType.RESILIENT); - hiveFrameGentle = new ItemMagicHiveFrame(tbConfig.getItem("frameGentle", itemIDBase++).getInt(), HiveFrameType.GENTLE); - hiveFrameMetabolic = new ItemMagicHiveFrame(tbConfig.getItem("frameMetabolic", itemIDBase++).getInt(), HiveFrameType.METABOLIC); - hiveFrameNecrotic = new ItemMagicHiveFrame(tbConfig.getItem("frameNecrotic", itemIDBase++).getInt(), HiveFrameType.NECROTIC); - hiveFrameTemporal = new ItemMagicHiveFrame(tbConfig.getItem("frameTemporal", itemIDBase++).getInt(), HiveFrameType.TEMPORAL); - hiveFrameOblivion = new ItemMagicHiveFrame(tbConfig.getItem("frameOblivion", itemIDBase++).getInt(), HiveFrameType.OBLIVION); + hiveFrameMagic = new ItemMagicHiveFrame(configuration.getItem("frameMagic", itemIDBase++).getInt() - 256, HiveFrameType.MAGIC); + hiveFrameResilient = new ItemMagicHiveFrame(configuration.getItem("frameResilient", itemIDBase++).getInt() - 256, HiveFrameType.RESILIENT); + hiveFrameGentle = new ItemMagicHiveFrame(configuration.getItem("frameGentle", itemIDBase++).getInt() - 256, HiveFrameType.GENTLE); + hiveFrameMetabolic = new ItemMagicHiveFrame(configuration.getItem("frameMetabolic", itemIDBase++).getInt() - 256, HiveFrameType.METABOLIC); + hiveFrameNecrotic = new ItemMagicHiveFrame(configuration.getItem("frameNecrotic", itemIDBase++).getInt() - 256, HiveFrameType.NECROTIC); + hiveFrameTemporal = new ItemMagicHiveFrame(configuration.getItem("frameTemporal", itemIDBase++).getInt() - 256, HiveFrameType.TEMPORAL); + hiveFrameOblivion = new ItemMagicHiveFrame(configuration.getItem("frameOblivion", itemIDBase++).getInt() - 256, HiveFrameType.OBLIVION); // Future frames, so they all are clumped together. itemIDBase++; itemIDBase++; @@ -294,27 +303,27 @@ public class Config ChestGenHooks.addItem(ChestGenHooks.STRONGHOLD_CORRIDOR, new WeightedRandomChestContent(new ItemStack(hiveFrameOblivion), 1, 1, 18)); ChestGenHooks.addItem(ChestGenHooks.STRONGHOLD_LIBRARY, new WeightedRandomChestContent(new ItemStack(hiveFrameOblivion), 1, 3, 23)); - jellyBaby = new ItemFood(tbConfig.getItem("jellyBabies", itemIDBase++).getInt(), 1, false).setAlwaysEdible() + jellyBaby = new ItemFood(configuration.getItem("jellyBabies", itemIDBase++).getInt() - 256, 1, false).setAlwaysEdible() .setPotionEffect(Potion.moveSpeed.id, 5, 1, 1f); - jellyBaby.setUnlocalizedName("thaumicbees:jellyBabies"); - GameRegistry.registerItem(jellyBaby, "thaumicbees:jellyBabies"); + jellyBaby.setUnlocalizedName("magicbees:jellyBabies"); + GameRegistry.registerItem(jellyBaby, "magicbees:jellyBabies"); - voidCapsule = new ItemCapsule(CapsuleType.VOID, tbConfig.getItem("voidCapsule", itemIDBase++).getInt(), this.CapsuleStackSizeMax); + voidCapsule = new ItemCapsule(CapsuleType.VOID, configuration.getItem("voidCapsule", itemIDBase++).getInt() - 256, this.CapsuleStackSizeMax); { - int scoopID = tbConfig.getItem("thaumiumScoop", itemIDBase++).getInt(); - int grafterID = tbConfig.getItem("thaumiumGrafter", itemIDBase++).getInt(); + int scoopID = configuration.getItem("thaumiumScoop", itemIDBase++).getInt() - 256; + int grafterID = configuration.getItem("thaumiumGrafter", itemIDBase++).getInt() - 256; if (ThaumcraftHelper.isActive()) { try { // Reflecting avoids the need to directly include the Thaumcraft API in the jar. BAM! - Constructor ctor1 = Class.forName("thaumicbees.item.ItemThaumiumScoop").getConstructor(int.class); + Constructor ctor1 = Class.forName("magicbees.item.ItemThaumiumScoop").getConstructor(int.class); thaumiumScoop = (Item)ctor1.newInstance(scoopID); MinecraftForge.setToolClass(thaumiumScoop, "scoop", 3); GameRegistry.registerItem(thaumiumScoop, thaumiumScoop.getUnlocalizedName()); - Constructor ctor2 = Class.forName("thaumicbees.item.ItemThaumiumGrafter").getConstructor(int.class); + Constructor ctor2 = Class.forName("magicbees.item.ItemThaumiumGrafter").getConstructor(int.class); thaumiumGrafter = (Item)ctor2.newInstance(grafterID); MinecraftForge.setToolClass(thaumiumGrafter, "grafter", 3); GameRegistry.registerItem(thaumiumGrafter, thaumiumGrafter.getUnlocalizedName()); @@ -322,15 +331,11 @@ public class Config } } - moonDial = new ItemMoonDial(tbConfig.getItem("moonDial", itemIDBase++).getInt()); + moonDial = new ItemMoonDial(configuration.getItem("moonDial", itemIDBase++).getInt() - 256); - // Other tools I might need in the future - itemIDBase++; + nuggets = new ItemNugget(configuration.getItem("beeNuggets", itemIDBase++).getInt() - 256); - nuggets = new ItemNugget(tbConfig.getItem("beeNuggets", itemIDBase++).getInt()); - - - OreDictionary.registerOre("beeComb", new ItemStack(combs, 1, -1)); + OreDictionary.registerOre("beeComb", new ItemStack(combs, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("nuggetIron", nuggets.getStackForType(NuggetType.IRON)); OreDictionary.registerOre("nuggetCopper", nuggets.getStackForType(NuggetType.COPPER)); OreDictionary.registerOre("nuggetTin", nuggets.getStackForType(NuggetType.TIN)); @@ -356,36 +361,40 @@ public class Config e.printStackTrace(); } - p = tbConfig.get("general", "backpack.thaumaturge.additionalItems", ""); + p = configuration.get("general", "backpack.thaumaturge.additionalItems", ""); p.comment = "Add additional items to the Thaumaturge's Backpack." + "\n Format is the same as Forestry's: id:meta;id;id:meta (etc)"; this.ThaumaturgeExtraItems = p.getString(); - p = tbConfig.get("general", "backpack.forestry.addThaumcraftItems", true); - p.comment = "Set to true if you want ThaumicBees to add several Thaumcraft blocks & items to Forestry backpacks." + + p = configuration.get("general", "backpack.forestry.addThaumcraftItems", true); + p.comment = "Set to true if you want MagicBees to add several Thaumcraft blocks & items to Forestry backpacks." + "\n Set to false to disable."; this.AddThaumcraftItemsToBackpacks = p.getBoolean(true); - p = tbConfig.get("general", "capsuleStackSize", 64); - p.comment = "Allows you to edit the stack size of the capsules in ThaumicBees if using GregTech, \n" + + p = configuration.get("general", "capsuleStackSize", 64); + p.comment = "Allows you to edit the stack size of the capsules in MagicBees if using GregTech, \n" + "or the reduced capsule size in Forestry & Railcraft. Default: 64"; this.CapsuleStackSizeMax = p.getInt(); - p = tbConfig.get("general", "disableVersionCheck", false); - p.comment = "Set to true to stop ThaumicBees from checking for updates."; - this.DisableUpdateCheck = p.getBoolean(false); + p = configuration.get("general", "disableVersionNotification", false); + p.comment = "Set to true to stop ThaumicBees from notifying you when new updates are available. (Does not supress critical updates)"; + this.DisableUpdateNotification = p.getBoolean(false); - p = tbConfig.get("general", "areMagicPlanksFlammable", false); + p = configuration.get("general", "areMagicPlanksFlammable", false); p.comment = "Set to true to allow Greatwood & Silverwood planks to burn in a fire."; this.AreMagicPlanksFlammable = p.getBoolean(false); - p = tbConfig.get("general", "useImpregnatedStickInTools", false); + p = configuration.get("general", "useImpregnatedStickInTools", false); p.comment = "Set to true to make Thaumium Grafter & Scoop require impregnated sticks in the recipe."; this.UseImpregnatedStickInTools = p.getBoolean(false); - p = tbConfig.get("general", "moonDialShowText", false); + p = configuration.get("general", "moonDialShowText", false); p.comment = "set to true to show the current moon phase in mouse-over text."; this.MoonDialShowsPhaseInText = p.getBoolean(false); + + p = configuration.get("general", "performHiveRetrogen", false); + p.comment = "Set to true to enable retroactive worldgen of Magic Bees hives."; + this.DoHiveRetrogen = p.getBoolean(false); } } diff --git a/magicbees_src/magicbees/main/ThaumicBees.java b/magicbees_src/magicbees/main/MagicBees.java similarity index 83% rename from magicbees_src/magicbees/main/ThaumicBees.java rename to magicbees_src/magicbees/main/MagicBees.java index 9dd98cb..610bec0 100644 --- a/magicbees_src/magicbees/main/ThaumicBees.java +++ b/magicbees_src/magicbees/main/MagicBees.java @@ -1,5 +1,6 @@ package magicbees.main; +import magicbees.bees.BeeManager; import magicbees.client.gui.GUIHandler; import magicbees.main.utils.CompatabilityManager; import magicbees.main.utils.CraftingManager; @@ -9,7 +10,7 @@ import magicbees.main.utils.compat.ArsMagicaHelper; import magicbees.main.utils.compat.EquivalentExchangeHelper; import magicbees.main.utils.compat.ExtraBeesHelper; import magicbees.main.utils.compat.ThaumcraftHelper; -import cpw.mods.fml.common.FMLLog; +import magicbees.world.WorldHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; @@ -17,28 +18,30 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.registry.GameRegistry; @Mod( modid=VersionInfo.ModName, - name="Thaumic Bees", + name="Magic Bees", useMetadata=true, acceptedMinecraftVersions=VersionInfo.MCVersion, version=VersionInfo.Version + " - " + VersionInfo.Build, dependencies=VersionInfo.Depends ) @NetworkMod(serverSideRequired=false, clientSideRequired=true) -public class ThaumicBees +public class MagicBees { - @Mod.Instance(value="ThaumicBees") - public static ThaumicBees object; + @Mod.Instance(VersionInfo.ModName) + public static MagicBees object; - @SidedProxy(serverSide="thaumicbees.main.CommonProxy", clientSide="thaumicbees.main.ClientProxy") + @SidedProxy(serverSide="magicbees.main.CommonProxy", clientSide="magicbees.main.ClientProxy") public static CommonProxy proxy; public GUIHandler guiHandler; private String configsPath; private Config modConfig; + private WorldHandler worldHandler; @Mod.PreInit public void preInit(FMLPreInitializationEvent event) @@ -59,10 +62,11 @@ public class ThaumicBees public void init(FMLInitializationEvent event) { this.modConfig.setupBlocks(); - this.proxy.registerTileEntities(); this.modConfig.setupItems(); CompatabilityManager.setupBackpacks(); + + GameRegistry.registerWorldGenerator(worldHandler = new WorldHandler()); } @Mod.PostInit @@ -70,10 +74,8 @@ public class ThaumicBees { this.guiHandler = new GUIHandler(); NetworkRegistry.instance().registerGuiHandler(this, this.guiHandler); - - magicbees.bees.Allele.setupAdditionalAlleles(); - magicbees.bees.BeeSpecies.setupBeeSpecies(); - magicbees.bees.BeeMutation.setupMutations(); + + BeeManager.ititializeBees(); this.modConfig.saveConfigs(); diff --git a/magicbees_src/magicbees/main/render/BeeRenderEffect.java b/magicbees_src/magicbees/main/render/BeeRenderEffect.java index 449f2e6..8e381ed 100644 --- a/magicbees_src/magicbees/main/render/BeeRenderEffect.java +++ b/magicbees_src/magicbees/main/render/BeeRenderEffect.java @@ -6,7 +6,7 @@ import cpw.mods.fml.client.FMLClientHandler; import magicbees.main.CommonProxy; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import net.minecraft.client.particle.EntityFX; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.World; @@ -97,7 +97,7 @@ public class BeeRenderEffect extends EntityFX GL11.glDepthMask(true); GL11.glPopMatrix(); - GL11.glBindTexture(3553 /* GL_TEXTURE_2D *//* GL_TEXTURE_2D */, ThaumicBees.proxy.getClientInstance().renderEngine.getTexture("/particles.png")); + GL11.glBindTexture(3553 /* GL_TEXTURE_2D *//* GL_TEXTURE_2D */, MagicBees.proxy.getClientInstance().renderEngine.getTexture("/particles.png")); tessellator.startDrawingQuads(); } diff --git a/magicbees_src/magicbees/main/utils/ChunkCoords.java b/magicbees_src/magicbees/main/utils/ChunkCoords.java new file mode 100644 index 0000000..15277ba --- /dev/null +++ b/magicbees_src/magicbees/main/utils/ChunkCoords.java @@ -0,0 +1,17 @@ +package magicbees.main.utils; + +import net.minecraft.world.chunk.Chunk; + +public class ChunkCoords +{ + public int dimension; + public int xCoord; + public int zCoord; + + public ChunkCoords(Chunk chunk) + { + this.dimension = chunk.worldObj.provider.dimensionId; + this.xCoord = chunk.xPosition; + this.zCoord = chunk.zPosition; + } +} diff --git a/magicbees_src/magicbees/main/utils/CompatabilityManager.java b/magicbees_src/magicbees/main/utils/CompatabilityManager.java index 11828ea..4409c45 100644 --- a/magicbees_src/magicbees/main/utils/CompatabilityManager.java +++ b/magicbees_src/magicbees/main/utils/CompatabilityManager.java @@ -34,7 +34,7 @@ import magicbees.item.types.ResourceType; import magicbees.item.types.WaxType; import magicbees.main.CommonProxy; import magicbees.main.Config; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import magicbees.main.utils.compat.ExtraBeesHelper; import magicbees.main.utils.compat.ForestryHelper; import magicbees.main.utils.compat.ThaumcraftHelper; diff --git a/magicbees_src/magicbees/main/utils/CraftingManager.java b/magicbees_src/magicbees/main/utils/CraftingManager.java index 8971f23..9d9ec39 100644 --- a/magicbees_src/magicbees/main/utils/CraftingManager.java +++ b/magicbees_src/magicbees/main/utils/CraftingManager.java @@ -28,7 +28,7 @@ import magicbees.item.types.PropolisType; import magicbees.item.types.ResourceType; import magicbees.item.types.WaxType; import magicbees.main.Config; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import magicbees.main.utils.compat.ArsMagicaHelper; import magicbees.main.utils.compat.ForestryHelper; import magicbees.main.utils.compat.ShapelessBeeInfusionCraftingRecipe; @@ -110,13 +110,13 @@ public class CraftingManager 'B', Item.glassBottle }); - GameRegistry.addRecipe(new ItemStack(Block.slowSand, 0, 4), new Object[] { + GameRegistry.addRecipe(new ItemStack(Block.slowSand, 4), new Object[] { "SwS", "wDw", "SwS", 'S', Block.sand, 'D', Block.dirt, 'w', Config.wax.getStackForType(WaxType.SOUL) }); - GameRegistry.addRecipe(new ItemStack(Block.slowSand, 0, 4), new Object[] { + GameRegistry.addRecipe(new ItemStack(Block.slowSand, 4), new Object[] { "wSw", "SDS", "wSw", 'S', Block.sand, 'D', Block.dirt, diff --git a/magicbees_src/magicbees/main/utils/TabThaumicBees.java b/magicbees_src/magicbees/main/utils/TabMagicBees.java similarity index 50% rename from magicbees_src/magicbees/main/utils/TabThaumicBees.java rename to magicbees_src/magicbees/main/utils/TabMagicBees.java index 27ffbbd..684772e 100644 --- a/magicbees_src/magicbees/main/utils/TabThaumicBees.java +++ b/magicbees_src/magicbees/main/utils/TabMagicBees.java @@ -3,22 +3,22 @@ package magicbees.main.utils; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import magicbees.item.types.ResourceType; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -public class TabThaumicBees extends CreativeTabs +public class TabMagicBees extends CreativeTabs { - public static TabThaumicBees tabThaumicBees = new TabThaumicBees(); + public static TabMagicBees tabMagicBees = new TabMagicBees(); - public TabThaumicBees() + public TabMagicBees() { - super(getNextID(), "thaumicBees"); + super(getNextID(), "magicBees"); } public ItemStack getIconItemStack() { - return ThaumicBees.getConfig().miscResources.getStackForType(ResourceType.RESEARCH_BEEINFUSION); + return MagicBees.getConfig().miscResources.getStackForType(ResourceType.RESEARCH_BEEINFUSION); } } \ No newline at end of file diff --git a/magicbees_src/magicbees/main/utils/TickHandlerVersion.java b/magicbees_src/magicbees/main/utils/TickHandlerVersion.java index 83b8502..6e0e592 100644 --- a/magicbees_src/magicbees/main/utils/TickHandlerVersion.java +++ b/magicbees_src/magicbees/main/utils/TickHandlerVersion.java @@ -3,6 +3,7 @@ package magicbees.main.utils; import java.util.ArrayList; import java.util.EnumSet; +import magicbees.main.MagicBees; import net.minecraft.entity.player.EntityPlayer; import cpw.mods.fml.common.IScheduledTickHandler; import cpw.mods.fml.common.TickType; @@ -54,7 +55,7 @@ public class TickHandlerVersion implements IScheduledTickHandler { VersionInfo anInfo = modVersionInfo.get(modIndex); - if (anInfo.isNewVersionAvailable()) + if ((!MagicBees.getConfig().DisableUpdateNotification || anInfo.isCriticalUpdate()) && anInfo.isNewVersionAvailable()) { EntityPlayer player = (EntityPlayer) tickData[0]; player.sendChatToPlayer("[" + anInfo.modName + "] A new version is available: " + anInfo.getLatestVersion()); diff --git a/magicbees_src/magicbees/main/utils/VersionInfo.java b/magicbees_src/magicbees/main/utils/VersionInfo.java index ebe466d..880906c 100644 --- a/magicbees_src/magicbees/main/utils/VersionInfo.java +++ b/magicbees_src/magicbees/main/utils/VersionInfo.java @@ -8,7 +8,7 @@ import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import cpw.mods.fml.common.FMLLog; @@ -22,13 +22,13 @@ import cpw.mods.fml.relauncher.Side; */ public class VersionInfo { - public static final String ModName = "ThaumicBees"; + public static final String ModName = "MagicBees"; public static final String Version = "@VERSION@"; public static final String Build = "@BUILD_NUMBER@"; public static final String MCVersion = "@MCVERSION@"; - public static final String VersionURL = "http://bit.ly/thaumicbeeversion"; + public static final String VersionURL = "http://bit.ly/magicbeesVersionInfo"; - public static final String Logo = "/gfx/thaumicbees/logo.png"; + public static final String Logo = "/gfx/magicbees/logo.png"; public static final String Depends = "required-after:Forestry;after:Thaumcraft;after:ExtraBees;after:EE3;after:ArsMagica"; @@ -241,15 +241,12 @@ public class VersionInfo public static void doVersionCheck() { - if (!ThaumicBees.getConfig().DisableUpdateCheck) - { - VersionInfo main = new VersionInfo("ThaumicBees", Version, VersionURL); - TickHandlerVersion.registerModVersionInfo(main); - TickHandlerVersion.initialize(); - TickRegistry.registerScheduledTickHandler(TickHandlerVersion.instance, Side.CLIENT); - - VersionCheckThread thread = main.new VersionCheckThread(); - thread.start(); - } + VersionInfo main = new VersionInfo(ModName, Version, VersionURL); + TickHandlerVersion.registerModVersionInfo(main); + TickHandlerVersion.initialize(); + TickRegistry.registerScheduledTickHandler(TickHandlerVersion.instance, Side.CLIENT); + + VersionCheckThread thread = main.new VersionCheckThread(); + thread.start(); } } diff --git a/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java b/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java index 012802c..c72dc14 100644 --- a/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java +++ b/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java @@ -16,7 +16,7 @@ import magicbees.item.types.ResourceType; import magicbees.item.types.WaxType; import magicbees.main.CommonProxy; import magicbees.main.Config; -import magicbees.main.ThaumicBees; +import magicbees.main.MagicBees; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -121,8 +121,6 @@ public class ThaumcraftHelper private static boolean isThaumcraftPresent = false; public static final String Name = "Thaumcraft"; - - private static HashMap fluxData; public static boolean isActive() { @@ -136,15 +134,6 @@ public class ThaumcraftHelper isThaumcraftPresent = true; registerResearchXML(); - - fluxData = new HashMap(); - fluxData.put(HiveFrameType.MAGIC, null); - fluxData.put(HiveFrameType.RESILIENT, new ObjectTags().add(EnumTag.ARMOR, 1)); - fluxData.put(HiveFrameType.GENTLE, new ObjectTags().add(EnumTag.HEAL, 1).add(EnumTag.LIFE, 1)); - fluxData.put(HiveFrameType.METABOLIC, new ObjectTags().add(EnumTag.EXCHANGE, 1).add(EnumTag.MOTION, 1)); - fluxData.put(HiveFrameType.NECROTIC, new ObjectTags().add(EnumTag.DEATH, 3).add(EnumTag.POISON, 2)); - fluxData.put(HiveFrameType.TEMPORAL, new ObjectTags().add(EnumTag.TIME, 5)); - fluxData.put(HiveFrameType.OBLIVION, new ObjectTags().add(EnumTag.TIME, 5).add(EnumTag.ELDRITCH, 5)); } } @@ -182,7 +171,7 @@ public class ThaumcraftHelper public static void addItemsToBackpack() { - if (isActive() && ThaumicBees.getConfig().AddThaumcraftItemsToBackpacks) + if (isActive() && MagicBees.getConfig().AddThaumcraftItemsToBackpacks) { // Add all shards and Thaumium to miner's backpack String ids = Config.tcShard.itemID + ":" + -1 + ";" @@ -638,7 +627,7 @@ public class ThaumcraftHelper ItemStack input; ItemStack output; - if (ThaumicBees.getConfig().UseImpregnatedStickInTools) + if (MagicBees.getConfig().UseImpregnatedStickInTools) { input = ItemInterface.getItem("stickImpregnated"); } @@ -766,20 +755,11 @@ public class ThaumcraftHelper 100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES); tags = new ObjectTags().add(EnumTag.MAGIC, 40).add(EnumTag.FLUX, 24); - ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION9", BeeSpecies.TC_INFUSED.getBeeItem(EnumBeeType.DRONE), new Object[] + ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION9", BeeSpecies.TC_MAGIC.getBeeItem(EnumBeeType.DRONE), new Object[] { drone, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.MAGIC.ordinal()) }, 100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES); - ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION0", BeeSpecies.TC_INFUSED.getBeeItem(EnumBeeType.PRINCESS), new Object[] + ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION0", BeeSpecies.TC_MAGIC.getBeeItem(EnumBeeType.PRINCESS), new Object[] { princess, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.MAGIC.ordinal()) }, 100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES); } - - public static void doFluxEffect(HiveFrameType frameType, World w, int x, int y, int z) - { - ObjectTags flux = (ObjectTags)(fluxData.get(frameType)); - if (flux != null && w.rand.nextInt(5) <= 1) - { - ThaumcraftApi.addFluxToClosest(w, x, y, z, flux); - } - } } diff --git a/magicbees_src/magicbees/tileentity/TileEntityEffectJar.java b/magicbees_src/magicbees/tileentity/TileEntityEffectJar.java index 6a1f06d..7f3cc7c 100644 --- a/magicbees_src/magicbees/tileentity/TileEntityEffectJar.java +++ b/magicbees_src/magicbees/tileentity/TileEntityEffectJar.java @@ -14,6 +14,8 @@ import forestry.api.genetics.IEffectData; public class TileEntityEffectJar extends TileEntity implements IInventory { + public static final String entityName = "tileEntity.effectJar"; + private String ownerName; private EffectJarHousing housingLogic; diff --git a/magicbees_src/magicbees/world/WorldHandler.java b/magicbees_src/magicbees/world/WorldHandler.java new file mode 100644 index 0000000..eb53f5e --- /dev/null +++ b/magicbees_src/magicbees/world/WorldHandler.java @@ -0,0 +1,83 @@ +package magicbees.world; + +import java.util.LinkedList; +import java.util.Random; + +import magicbees.main.MagicBees; +import magicbees.main.utils.ChunkCoords; +import magicbees.world.feature.FeatureHive; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.ForgeSubscribe; +import net.minecraftforge.event.world.ChunkDataEvent; +import cpw.mods.fml.common.IWorldGenerator; +import cpw.mods.fml.common.registry.TickRegistry; +import cpw.mods.fml.relauncher.Side; + +public class WorldHandler implements IWorldGenerator +{ + public WorldTicker ticker; + + public WorldHandler() + { + this.ticker = new WorldTicker(this); + TickRegistry.registerTickHandler(this.ticker, Side.SERVER); + MinecraftForge.EVENT_BUS.register(this); + + FeatureHive.initialize(); + } + + @ForgeSubscribe + public void chunkSaveEventHandler(ChunkDataEvent.Save event) + { + NBTTagCompound tag = new NBTTagCompound(); + if (MagicBees.getConfig().DoHiveRetrogen) + { + tag.setBoolean("hiveRetrogen", true); + } + + event.getData().setTag("MagicBees", tag); + } + + @ForgeSubscribe + public void chunkLoadEventHandler(ChunkDataEvent.Load event) + { + boolean doRetrogen = false; + + NBTTagCompound tag = (NBTTagCompound)event.getData().getTag("MagicBees"); + if (tag == null) + { + doRetrogen = true; + } + + if (doRetrogen) + { + ChunkCoords coords = new ChunkCoords(event.getChunk()); + ticker.queueChunkCoords(coords); + } + } + + @Override + public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) + { + generateWorld(world, random, chunkX, chunkZ, true); + } + + public void generateWorld(World world, Random random, int chunkX, int chunkZ, boolean initialGen) + { + boolean modified = false; + if (initialGen || MagicBees.getConfig().DoHiveRetrogen) + { + FeatureHive.generateHives(world, random, chunkX, chunkZ, initialGen); + modified = true; + } + + if (!initialGen && modified) + { + world.getChunkFromChunkCoords(chunkX, chunkZ).setChunkModified(); + } + } + +} diff --git a/magicbees_src/magicbees/world/WorldTicker.java b/magicbees_src/magicbees/world/WorldTicker.java new file mode 100644 index 0000000..d703c8f --- /dev/null +++ b/magicbees_src/magicbees/world/WorldTicker.java @@ -0,0 +1,77 @@ +package magicbees.world; + +import java.util.ArrayList; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Random; + +import magicbees.main.utils.ChunkCoords; +import magicbees.main.utils.VersionInfo; +import net.minecraft.world.World; +import cpw.mods.fml.common.ITickHandler; +import cpw.mods.fml.common.TickType; + +public class WorldTicker implements ITickHandler +{ + private WorldHandler parent; + private HashMap> chunkRegenList; + + public WorldTicker(WorldHandler p) + { + this.parent = p; + this.chunkRegenList = new HashMap>(); + } + + @Override + public void tickStart(EnumSet type, Object... tickData) { } + + @Override + public void tickEnd(EnumSet type, Object... tickData) + { + World world = (World)tickData[0]; + int dimensionID = world.provider.dimensionId; + LinkedList chunkList = chunkRegenList.get(dimensionID); + + if (chunkList != null && chunkList.size() > 0) + { + ChunkCoords coords = chunkList.removeFirst(); + + // This bit is from FML's GameRegistry.generateWorld where the seed is constructed. + long worldSeed = world.getSeed(); + Random random = new Random(worldSeed); + long xSeed = random.nextLong() >> 2 + 1L; + long zSeed = random.nextLong() >> 2 + 1L; + random.setSeed((xSeed * coords.xCoord + zSeed * coords.zCoord) ^ worldSeed); + + parent.generateWorld(world, random, coords.xCoord, coords.zCoord, false); + } + } + + @Override + public EnumSet ticks() + { + return EnumSet.of(TickType.WORLD); + } + + @Override + public String getLabel() + { + return VersionInfo.ModName.toLowerCase() + ".world"; + } + + public void queueChunkCoords(ChunkCoords coords) + { + if (!chunkRegenList.containsKey(coords.dimension)) + { + chunkRegenList.put(coords.dimension, new LinkedList()); + } + chunkRegenList.get(coords.dimension).addLast(coords); + } + + public LinkedList getChunksToGen(int dimensionId) + { + return chunkRegenList.get(dimensionId); + } + +} diff --git a/magicbees_src/magicbees/world/feature/FeatureHive.java b/magicbees_src/magicbees/world/feature/FeatureHive.java new file mode 100644 index 0000000..d89032d --- /dev/null +++ b/magicbees_src/magicbees/world/feature/FeatureHive.java @@ -0,0 +1,220 @@ +package magicbees.world.feature; + +import java.util.Random; + +import magicbees.block.types.HiveType; +import magicbees.main.Config; +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.WorldProviderEnd; +import net.minecraft.world.WorldType; +import net.minecraft.world.gen.feature.WorldGenMinable; +import forestry.api.core.GlobalManager; + +public class FeatureHive +{ + private static WorldGenMinable redstoneGen; + private static WorldGenMinable glowStoneGen; + + public static void initialize() + { + redstoneGen = new WorldGenMinable(Block.oreRedstone.blockID, 10); + glowStoneGen = new WorldGenMinable(Block.glowStone.blockID, 16, Block.netherrack.blockID); + } + + public static void generateHives(World world, Random random, int chunkX, int chunkZ, boolean initialGen) + { + if (world.provider.terrainType != WorldType.FLAT) + { + for (HiveType type : HiveType.values()) + { + type.generateHive(world, random, chunkX, chunkZ, initialGen); + } + } + } + + public static void generateHiveCurious(World world, Random random, int chunkX, int chunkZ, boolean initialGen) + { + // 1 per gen + int coordX = random.nextInt(16) + chunkX; + int coordZ = random.nextInt(16) + chunkZ; + int coordY = world.getHeight() - 1; + boolean doSpawn = false; + + do + { + --coordY; + if (world.isAirBlock(coordX, coordY - 1, coordZ) && world.isAirBlock(coordX, coordY, coordZ) && + GlobalManager.leafBlockIds.contains(world.getBlockId(coordX, coordY + 1, coordZ)) ) + { + doSpawn = true; + } + } + while (!doSpawn && coordY > 1); + + if (doSpawn) + { + world.setBlock(coordX, coordY, coordZ, Config.hive.blockID, HiveType.CURIOUS.ordinal(), 2); + } + } + + public static void generateHiveUnusual(World world, Random random, int chunkX, int chunkZ, boolean initialGen) + { + // 1 per gen + int coordX = random.nextInt(16) + chunkX; + int coordZ = random.nextInt(16) + chunkZ; + int coordY = world.provider.getAverageGroundLevel() - 10; + + // For sanity + if (coordY <= 0) + { + coordY = 0; + } + + boolean doSpawn = false; + do + { + ++coordY; + + if (world.isAirBlock(coordX, coordY + 1, coordZ) && world.isAirBlock(coordX, coordY, coordZ) && + GlobalManager.dirtBlockIds.contains(world.getBlockId(coordX, coordY - 1, coordZ)) ) + { + doSpawn = true; + } + } + while (!doSpawn && coordY < world.getHeight()); + + if (doSpawn) + { + world.setBlock(coordX, coordY, coordZ, Config.hive.blockID, HiveType.UNUSUAL.ordinal(), 2); + } + } + + public static void generateHiveResonant(World world, Random random, int chunkX, int chunkZ, boolean initialGen) + { + // 1 per gen + int coordX = random.nextInt(16) + chunkX; + int coordZ = random.nextInt(16) + chunkZ; + int coordY = world.provider.getAverageGroundLevel() - 10; + + } + + public static void generateHiveDeep(World world, Random random, int chunkX, int chunkZ, boolean initialGen) + { + // 1 or 2 per gen + int count = random.nextInt(1) + 1; + + for (int i = 0; i < count; ++i) + { + int coordX = random.nextInt(16) + chunkX; + int coordZ = random.nextInt(16) + chunkZ; + int coordY = random.nextInt(16) + 17; + boolean doSpawn = false; + + do + { + --coordY; + int blockId = world.getBlockId(coordX, coordY, coordZ); + if (blockId == Block.stone.blockID) + { + doSpawn = true; + } + } + while (!doSpawn && coordY > 4); + + if (doSpawn) + { + world.setBlock(coordX, coordY, coordZ, Config.hive.blockID, HiveType.DEEP.ordinal(), 2); + + // Spawn some redstone around it + redstoneGen.generate(world, random, coordX, coordY, coordZ); + + for (int y = 0; y < 64; ++y) + { + for (int z = 0; z < 16; ++z) + { + for (int x = 0; x < 16; ++x) + { + if (world.getBlockId(x + chunkX, y, z + chunkX) == Block.stone.blockID || + world.getBlockId(x + chunkX, y, z + chunkX) == Block.dirt.blockID || + world.getBlockId(x + chunkX, y, z + chunkX) == Block.dirt.blockID) + { + world.setBlock(x + chunkX, y, z + chunkX, Block.glass.blockID, 0, 2); + } + } + } + } + } + } + } + + public static void generateHiveInfernal(World world, Random random, int chunkX, int chunkZ, boolean initialGen) + { + // 2 or 3 per gen + int count = random.nextInt(3) + 1; + + for (int i = 0; i < count; ++i) + { + int coordX = random.nextInt(16) + chunkX; + int coordZ = random.nextInt(16) + chunkZ; + int coordY = random.nextInt(60 / count) + i * (120 / count) + 5; + boolean doSpawn = false; + + do + { + --coordY; + int blockId = world.getBlockId(coordX, coordY, coordZ); + if (world.isAirBlock(coordX, coordY, coordZ) || blockId == Block.netherrack.blockID) + { + doSpawn = true; + } + } + while (!doSpawn && coordY > 4 && coordY < 126); + + if (doSpawn) + { + world.setBlock(coordX, coordY, chunkZ, Config.hive.blockID, HiveType.INFERNAL.ordinal(), 2); + + glowStoneGen.generate(world, random, coordX, coordY, coordZ); + } + } + } + + public static void generateHiveOblivion(World world, Random random, int chunkX, int chunkZ, boolean initialGen) + { + // 1 per gen + boolean doSpawn = false; + int coordX = 0; + int coordZ = 0; + int coordY = 0; + + coordX = random.nextInt(16) + chunkX; + coordZ = random.nextInt(16) + chunkZ; + coordY = 8; + + do + { + ++coordY; + + if (world.isAirBlock(coordX, coordY - 2, coordZ) && + world.getBlockId(coordX, coordY - 1, coordZ) == Block.whiteStone.blockID && + world.getBlockId(coordX, coordY, coordZ) == Block.whiteStone.blockID) + { + doSpawn = true; + } + } + while (!doSpawn && coordY < 90); + + if (doSpawn) + { + world.setBlock(coordX, coordY, chunkZ, Config.hive.blockID, HiveType.OBLIVION.ordinal(), 2); + + int obsidianSpikeHeight = random.nextInt(4) + 2; + + for (int i = 1; i < obsidianSpikeHeight && coordY - i > 0; ++i) + { + world.setBlock(coordX, coordY - i, chunkZ, Block.obsidian.blockID, 0, 2); + } + } + } +}