riding but hunger games是什么意思?求解!

Riding_the_waveI dm'd you, hit me up to skate sometime!
You ever skate by navy pier?
I really like this style of post. Thought provoking stuff. Thanks
You are completely right. If people cant read the logo, theres no way they could find the brand. Thanks!
Thanks for the feedback. I was thinking the R and O were in the trademark symbol, but I'll work on it.
Whats up guys. I wanted to get some more opinions on whether or not my logo was legible as the word prototype. Some people can read it, some think the O is missing. Any feedback is appreciated
BRAND FEEDBACK()I'm with this guy. If you foresee that you could make a living off the startup, you should go full steam ahead. Take a year and see where you're at.
Digging the tan jacket
Engineering student here - degrees could be different school to school, but I haven't had gen eds since my junior year began. Peace
(self)Whats up guys, I think this sub is an awesome idea. I had a really great experience that changed how I view helping others. Maybe you'll find yourself in a similar situation and be able to take something from this.
My freshman year of college, I came in not knowing a lot of people (as I assume most freshmen do). I was lucky enough to find a great group on my floor, 4 other guys that I would go to hell and back for. I'll keep in touch with them til the day I die. Besides my core group, there were plenty of people on our floor that I was on good terms with.
Fast forward a year: I'm living with the 4 homies, we have a tight knit house of 5. One guy from our freshman year comes around every other day and hangs out for a while. He was kind of an outsider. He would stutter, was a little awkward, and was a huge fan of nostalgic entertainment (kingdom hearts, old nintendo games, cartoons). He was also known to be a little aggressive when drunk, but only if antagonized (for example: guy called him four eyes at a concert, he got in a fight). He was a nice guy, but he didnt really fit in. I shared a class with him and got to know him pretty well. He lived in a house of guys that he wasnt particularly close with, and he asked me if he could live with me and my roomates next year.
I went home and asked everyone what they thought. One in particular said yes, the rest said it would be alright.
A few months later, we all go hiking. I noticed that a few of my roomates seemed to be avoiding the new guy, preferring to go off on their own. I asked them what was up. They informed me &Hey, you werent around this morning, but we all decided that we dont want to live with Outsider&.
I'm pretty empathetic, and I try to to do good unto others. As we hiked I thought about the situation from Outsider's perspective. His current roomates, under the impression that he was going to live with us, had found a new place. We were about to cut him loose. Not only would he not have a place to stay, but he was about to feel completely excluded from both groups of friends.
Human contact is one of the most precious things in life. Think about it: in prison, your company may consist of criminals, rapists, murderers, etc. The worst punishment that you can get while in prison (excluding death) is solitary confinement. We need other people. All I could think about was how isolated and alone this guy would feel.
My roomates and I had a team meeting that night to talk about it. One by one, my best friends all agreed that they didnt want to live with Outsider. It's hard to stress how hard it was to stand up against that. Peer pressure is a real force, and coming from my closest peers, it was tough. I nearly caved in but something inside me knew that it wasn't right.
We had told Outsider that he would have a place with us. They should've said immediately up front that they didn't want to live with him if that was the case. No one said it explicitly, but I got the feeling that because Outsider was not a &cool& guy, they didnt want him at our place. I didnt find that valid or fair. I believe that people can change, and I thought that he would make a good roomate.
Certain aspects of his behavior (ie his aggression) I was confident that we could help him manage.
My roomates heard me out, and eventually agreed.
All things considered, living with Outsider worked out great. I think
that we helped him become a more well rounded person. He's had some bumps in the road with a family divorce, depression and drug use, but myself and my friends have been able to help him deal with his trials.
At the conclusion of our first year of living together, summer was fast approaching and I had no job lined up. He had just applied for an undergraduate research gig, and recommended that I try for it too. Lo and behold, we both got in. I ended up working in that lab for over a year, where I built my resume, got paid, and had some great experience.
It felt like things came full circle. I helped him develop his personal life (which he still doesnt know about, by the way) and he helped me develop my resume.
TLDR: guy asked to live with us, roomates lukewarmly agreed and then changed their minds. I made a stand. Guy ended up being a great fit, and helped me land a year long research gig.
Thanks for reading. I hope this sub takes off!
Have a great day.
Same! I dont want band of brothers in the future. I came to 40k for the spess marines!
Choosing the right word aint easy, but it's not rocket appliance.
Was this ever a thing? When the orks fought for the old ones?
This guy figured it out! World hunger is over!
I swear this was already confirmed but I could be wrong. I thought when she was introduced they said that she had been a Talon double-agent
A guess as an aerospace undergrad: is the long nose shape to keep laminar flow over as much of the vehicle as possible? I would think the cockpit disturbs the airflow and this is the cleanest option. Best of luck come june!
Wow loot lake looks great in hd
&everybody's gone, and I've been here for too long, to face this on my own, well I guess this is growing up&
5th year college student. My friends graduated and are gone. It's been a period of growth, but not always pleasant
Anyone have pics of the car before it caught fire?
Corax didn't like Horus pre fall iirc. Not a fan of the full frontal assault
One of my buddies works there, they make art in the shape of a longboard.
The answers are in Mass effect 3, I want to refrain from posting any spoilers
Mass effect series. The reapers (the antagonists) are ancient machines that more or less resemble massive squids. They execute a routine cycle of exterminating intelligent life for an unknown purpose (no spoilers of course)哪些翻译让你感叹「语言是如此之美」? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。<strong class="NumberBoard-itemValue" title="5被浏览<strong class="NumberBoard-itemValue" title=",146,497分享邀请回答2K48 条评论分享收藏感谢收起22K691 条评论分享收藏感谢收起新来了个非常能作词作曲的同事而已.....&br&我把我的私藏的好东西都给他了 neve1073 ln1176 pultec fairchild670&br&希望他能大成
新来了个非常能作词作曲的同事而已..... 我把我的私藏的好东西都给他了 neve1073 ln1176 pultec fairchild670 希望他能大成
-&br&&br&初中的时候,我有一同学,特喜欢画生殖器。&br&&br&其实一开始他并不这样,一切的一切,还要从我画的第一根说起。&br&&br&初中的我是一个很搞笑的人(现在不是),接老师的话吐槽,每天想些冷热笑话,淫秽魔性的词儿,负责班上男同学流行文化和色情文化传播以及竭尽所能的搞笑。&br&&br&大概就是那种每个班上都有的,幽默恶俗の死胖子。&br&&br&理所当然,作为班上头号谐星,造新梗,埋包袱,抖笑料这一套在那段时期我都玩得都非常溜。&br&&br&我还记得那时班上还在风靡美国的一个摔角节目WWE,送葬者,卡恩,巴蒂斯塔,奥尔顿之类的大怪物整天在擂台上打来打去,各种可怕的杀人大招炫酷又不失观赏性,看得初中我们这群小屁孩也跟着在水泥地上打。&br&&br&恩,水泥地。&br&&br&WWE里面有一个叫送葬者的洪荒野兽,他有一个绝招叫“墓碑石钉头”。&br&&br&其实很简单,就是正面抓住一个人的肩膀将他倒转过来,抱住后将他的头放在释招者的胯下,释招者再那么一跪,受害者的头就直接砸到地下,砸得稀里哗啦。&br&&br&老实说,WWE里很多招式都是七伤拳,这一招看似对受害者的头部产生了重创,其实释招者的膝盖又何尝不痛苦呢?&br&&br&但初中的小鬼,知道个屁。&br&&br&就在教室外的走廊上,几乎每天都要发生一起“巴蒂斯塔炸弹摔““喉轮落”以及“墓碑石钉头”的惨案,然而更可怕的是,无论释招者还是受害者,都能在上课铃响起来的时候,准时回到教室,其恢复能力堪比超级赛亚人。&br&&br&有时候我会想,如果现在的我被单位的同事在水泥地上来一记“墓碑石钉头”,我同事的膝盖一定会粉碎,而我一定会死。妥妥的。&br&&br&所以。&br&&br&按照初中男性肉体的可怕程度,其荷尔蒙也毫无意外是分泌最旺的。大家在课间模仿WWE,体育课像疯狗一般跑来跑去,打篮球打一天,撸管能撸十次,但凡放假更是不眠不休玩两三个通宵,每天都过得跟打了鸡血抽了兴奋剂似的。&br&&br&因此,在精神状态好得过分的情况下,上课无疑成了一种折磨。&br&&br&特别是遇到不好玩的老师,连接嘴都没了兴致,作为最后几排的常客,除了睡觉,偷偷看漫画,瞄一瞄女神,写点小黄文,玩手机外,也就没别的消遣了。&br&&br&&br&犹记得那是英语课,夏天,星期五早上漫长的第三节课,后几排大多都在睡觉,我把手机放在笔袋里,玩得食指发酸。&br&&br&合上笔袋揉揉眼想休息一下,拿着笔转,扶着下巴,看看周围沉闷幽静的环境,在荷尔蒙分泌加上极度无聊的情况下,突然,就想画一根生殖器。&br&&br&初中男生嘛,性意识启蒙,大家又没见过女性的,平时也就只有画画自己。偶然兴起来一笔,一气呵成,拿给同类看过后相视一笑,恶心一点大不了拿着图猥亵女同学。&br&&br&嗯,平时大家画的,基本都是简笔画。&br&&br&线条简单,毛发稀疏,一柱擎天,寓意明显,绘画功底好一点的,大不了就加一个万字符号,代表愤怒(愤怒?)。&br&&br&&br&对。&br&&br&在那么一瞬间,我突然发现。&br&&br&自从我到了这个班上以来,还没有任何男同学,认认真真的,画过一根生殖器。&br&&br&这意味着这一门色情艺术并没有发扬光大,大家仅仅是习得一些皮毛,非常浅薄,一点也不高级。&br&&br&这样,可不行。对于一门艺术的传承,一件喜好的发掘,在一个伟大的班级里,只有一丁皮毛,一点也不行。&br&&br&如此想着,等我再回过神来的时候,我发现自己的本子上多了一个可怕的东西。&br&&br&那是我大概花了二十分钟雕琢而成的,一根,光彩夺目细节丰满的,霹雳无敌大怪物。&br&&br&我甚至还在末梢出勾勒出许多喷薄无边的奇妙物语,从细节中展示出整幅画那蓬勃无际的生命力。&br&&br&好似滚滚长江,又如擎天大树。&br&&br&&br&这样灵光一闪的艺术品如果就这样大咧咧的拿给别人看是起不到什么效果的,对抖笑料在行的我憋着分享欲,在下课的时候悄悄跑到最后一排,准备给当时最能Get到我笑点的同学小黑来个惊喜。&br&&br&当时小黑正在喝水,我趁机将本子摊到他桌子上,果不其然,这种伟大的艺术品只需不经意瞥一眼,就能笑到爆炸。&br&&br&小黑将口中的水喷得整个桌子都是,拿着本子的手甚至笑到发抖。&br&&br&笑声吸引了一众狼友过来观摩,大家嬉笑着评论,纷纷对我竖起大拇指,闷热的教室在那短短十分钟里充满了快活的气氛。&br&&br&&br&我以为这件事会就此揭过,没料到当事人小黑失控了。&br&&br&小黑平时本就喜欢模仿我的笑点,学我说话,这次在看到我的即兴创作艺术品后,一开始只是临摹,改造,再创作,画得整个本子全都是。&br&&br&而到了暑假结束,升到初二后,他竟然开始画上了连载漫画。&br&&br&名字恶俗至极,叫做“几把超人”。&br&&br&是的,几把超人,他的脑袋是一根几把。&br&&br&他对抗的怪物,全是各种由几把构造的龙,虎,弗里沙以及赛亚人(恩,赛亚人的头发是什么东西自己想)。&br&&br&他还有一个坐骑,那是一匹马,那匹马的四肢。&br&&br&是几把做的。&br&&br&毫无疑问,这是一部黑暗至极的黑暗漫画,但意外的是除开满屏的生殖器,他的构思和设定相当精彩,比如几把超人为了救自己的几把马领悟了“精控领域”什么的……&br&&br&不玩擦边球,整部漫画里全是最下流低俗的词汇和极其低级恶俗的战斗(恩,你脑补一下几把超人和几把赛亚人的战斗画面),简直是属于当时我们那一群变态低级初中生的信仰之作,流传于班上各个变态的手中。&br&&br&&br&这本“几把超人”在男群众的呼喊以及他的笔耕不辍之下,短短半个月连载了十二话。&br&&br&&br&然后在某次上课创作的时候,被从后门乱入的班主任收掉了。&br&小黑,则被请去了办公室。&br&&br&&br&&br&到这里,我请各位严肃一点,因为我写到现在,每个字都在滴血。&br&&br&你们压根无法体会,当你画了一本可怕的全是生殖器的漫画后,被班主任发现,请进办公室,在路上的心理过程。&br&&br&你们也根本无法体会,作为当事人,站在办公室,班主任的桌上摊开着那一本你画的,全是恶俗的生殖器,几把超人,几把马,几把赛亚人,战斗场景全是不知名液体的超级无敌下流漫画,班主任忍住笑,你还忍住笑的,听着她教诲的场景。&br&&br&你们根本无法体会,这之后老班主任请来了家长,然后在办公室里,面对着家长和班主任,桌上摆着一本你画的,全是恶俗的生殖器,几把超人,几把马,几把赛亚人,言语粗俗,战斗下流,充满世间所有情色因素的终极无敌下流漫画,班主任忍住笑,家长忍住笑,你还忍住笑,听着他们教诲的场景。&br&&br&&br&是的,你们根本无法体会,我也无法体会。&br&&br&&br&所以。&br&&br&在那个小黑被收了漫画的,被请了家长的下午。&br&&br&我在教室里,和等待着小黑消息的几个哥们。&br&&br&&br&&br&差点把屎,笑了出来。&br&&br&&br&&br&&br&哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈啊哈哈&br&&br&&figure&&img src=&https://pic3.zhimg.com/50/c5bb72ed91a584df35bb_b.jpg& data-rawwidth=&56& data-rawheight=&52& class=&content_image& width=&56&&&/figure&&figure&&img src=&https://pic3.zhimg.com/50/c5bb72ed91a584df35bb_b.jpg& data-rawwidth=&56& data-rawheight=&52& class=&content_image& width=&56&&&/figure&&br&&br&&br&&br&&br&-完-&br&&br&&br&日常PS:&br&&br&我有必要郑重的重申一下,这不是小黄文,这是青春,这是青春啊喂!&br&&br&顺带一推微信号:hulannovel
- 初中的时候,我有一同学,特喜欢画生殖器。 其实一开始他并不这样,一切的一切,还要从我画的第一根说起。 初中的我是一个很搞笑的人(现在不是),接老师的话吐槽,每天想些冷热笑话,淫秽魔性的词儿,负责班上男同学流行文化和色情文化传播以及竭尽所能…
补充:&br&&br&不知道这个答案怎么突然被翻出来。解释下我写这个答案的本意:&br&1. 对于中国的医生,医学生来说,能出国学习甚至工作在眼下仍是值得努力的方向。&br&2. 在我读书的年代,当时的主流认识都认为去国外甚至美国行医是件完全不可能的事,很多人是听信了一条“定论”:中国医学文凭不被国外承认,所以出国只能放弃临床,去从事基础研究。&br&3. 中国医学教育有很大欠缺,中国学生的语言水平层次不齐,不是个个都具备出国学习甚至执业的能力。但是文凭更像一个出身,哪怕再有努力的目标和实际的行动,如果一个人从出身上就被否定,那对于有志于此的人来说是不公平的,更何况,这种否定更多的是以讹传讹的莫须有。当然我谈的只适用于专业名称为“临床医学”的学位,其他中医、麻醉、影像之类是不适用的。&br&4. 所以这只是客观地陈述一个事实,澄清一些误会。并不是要鼓动大家都去走这条出国的道路,也不是误导大家。中国的医学不是一无是处,国外也不是遍地希望。&br&5. 其实真有想法的人早就自己行动了,早在80年代国门初开的时候,就有一批敢于尝试的中国医生,毅然辞去国内工作,走向国外,争取行医的机会。其中的大多数,当然没有圆梦,但是在他们之中,却出现了一批非常优秀甚至在美国大医院成为一流专家的医生;而现在的新一代医学生更不用说,其实在国内一线医学院校,考执照,出国,早就不是什么新鲜事。&br&6. 很多人的质疑是:你们语言不行,医学教育落后,不了解国外文化,承认又有什么用?当地人都做不上的医生,你们就行吗?可事实是我只看到,近年来出国做临床的越来越多,新一代学生的视野和行动力远胜前辈。所以,真的不用妄自菲薄。在你觉得这个不可能,那个不现实的时候,很多人已经用行动去实现梦想了。人,有时候真就是这么慢慢分化的。&br&--------------------------------------------------------------------------------------------------------------------------------------------&br&这个问题的直接答案是:承认,至少美国是承认的&br&&br&甚至可能并不知名的二三线城市地方医学院,只要其临床医学专业为教育部批准设置,并名列WHO认可的医学院校名单之中,其学生在获得医学学士(bachelor of medicine)后,即可通过美国ECFMG(Educational Commission for Foreign Medical Graduates)认证,等同于MD(医学博士)并可以参加美国的执业医师考试(USMLE)。&br&&br&题目问,为什么中国毕业生很少在国外行医,这是混淆了医学教育和执业资格的概念。&br&&br&没错,哪怕你是某不知名医学院毕业生,不是博士甚至不是硕士,理论上美国的行医之路是向你敞开的。&br&&br&但是正如&a class=&member_mention& data-hash=&06c2c7b37553ece205da8a7f28895dd0& href=&//www.zhihu.com/people/06c2c7b37553ece205da8a7f28895dd0& data-tip=&p$b$06c2c7b37553ece205da8a7f28895dd0& data-hovercard=&p$b$06c2c7b37553ece205da8a7f28895dd0&&@Jing&/a&说的,中国毕业生通过执照考试需要过语言关、医学知识关、文化背景关,能最终进入国外的医疗体系从事临床工作的少之又少,多来自于协和北医等学校的优秀毕业生,这就给人印象是:只有少数学校被国外所承认。&br&&br&不过美国的医学体系其实是世界上少有的特例。美国的4年以后又4年的医学教育是美国特有的,大多数国家其实和中国一样,医学是一种本科教育,大家都是高中毕业进医学院,(当然人家是没有中国特色的硕士博士的)。其实美国至少目前仍然最大限度地欢迎外国人来做医生,因为美国的医学毕业生远远不能满足每年住院医生的需求,导致近40%的住院医生其实来自外国。与此相反,其他国家的医学体系极为保守封闭,别说不认中国,这些发达国家之间也未必互相承认,最终需要通过考试的形式考察医学毕业生的能力,予以注册,才会允许外国人在本国执业。
补充: 不知道这个答案怎么突然被翻出来。解释下我写这个答案的本意: 1. 对于中国的医生,医学生来说,能出国学习甚至工作在眼下仍是值得努力的方向。 2. 在我读书的年代,当时的主流认识都认为去国外甚至美国行医是件完全不可能的事,很多人是听信了一条…
已经有人做到了:-)还原了整个地球,不过貌似没有建筑&figure&&img src=&https://pic3.zhimg.com/50/b8a7dedecb360f3aa2c45a5_b.jpg& data-rawwidth=&600& data-rawheight=&300& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic3.zhimg.com/50/b8a7dedecb360f3aa2c45a5_r.jpg&&&/figure&这是下载地址,如果觉得电脑可以撑得住的可以试试:&a href=&//link.zhihu.com/?target=http%3A//pan.baidu.com/s/15ZEd4& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The earth.kz_免费高速下载&/a&
已经有人做到了:-)还原了整个地球,不过貌似没有建筑这是下载地址,如果觉得电脑可以撑得住的可以试试:
严格来说,应该纠正一点:Minecraft 中的地形并不是由「种子」生成,而是「随机」生成。地形生成算法本身跟种子并没有什么直接联系。具体的算法非常复杂,这里略过不说。概括来讲,算法基于「随机」,但是不是「真随机」,是「伪随机」,而「种子」会影响这个「伪随机」。&br&&br&什么是「伪随机」?计算机进行的是确定性运算,不存在真正的随机性,这意味着想要求计算机「独立」(注 1)生成真正的随机数,在理论上不可能。许多编程应用中想要随机效果,使用的都是「伪随机函数」,就是用某种非常复杂的算法,来生成一系列看似毫无关联却又均匀分布的数字(例如 0.2, 0.5358, ...),称为「伪随机数列」,以此来模拟随机的效果。每次程序调用这个伪随机函数的时候,就从这个数列中取出下一个数字返回给程序。这样做在孤立来看是没问题的,但是问题是如果你把程序关闭,重新启动运行,你得到的还是原来那个数列,每次取随机数取出来的还是跟上次一样的那些数字,例如仍然是「0.2, 0.5358, ...」。如果你依赖这个数列来生成游戏内容,那么每次游戏所得到的的结果都会一样,这就失去了随机的意义。&br&&br&为了解决这个问题,我们只能从「伪随机函数」外面给它加入某种「扰动」,让它在每次运行的时候结果不一样,产生不同的「伪随机数列」。「种子」就是最常见的一种扰动方式。相同的「种子」产生相同的数列,不同的种子产生不同的数列。如何保证每次运行的「种子」不相同呢?最简单的办法就是采用「系统时间」作为种子。相同的程序,上次运行和这次运行的时间肯定不一样,这就确保了每次的种子不同。当然,如果你人为去修改系统时间,并且让两次运行时的系统时间严格一致,那么还是会得到相同的运算结果。但是作为游戏来说,一般没必要考虑这些。&br&&br&Minecraft 里面的地图种子就是这样的原理。地图本质上是「伪随机」生成的,跟别的游戏没什么区别,但是我们知道 Minecraft 是个比较 geeky 的游戏,它把种子的控制权交给你,允许你指定种子,那么当你使用相同的种子的时候,游戏中所有本该「随机」的元素都会变成「命中注定」。不仅生成的地形完全相同,连什么地方会刷出什么花草牛羊都一样。如果玩家的玩法操作也完全严格相同的话(这个不太可能),那么整个游戏完全就等于是在放电影,一切都是预定好的。&br&&br&——————————————————————————————————————&br&注 1:依靠外部输入(例如磁盘存取、键盘鼠标操作等)来获得熵源的随机数发生器不在讨论范围之内。
严格来说,应该纠正一点:Minecraft 中的地形并不是由「种子」生成,而是「随机」生成。地形生成算法本身跟种子并没有什么直接联系。具体的算法非常复杂,这里略过不说。概括来讲,算法基于「随机」,但是不是「真随机」,是「伪随机」,而「种子」会影响这…
&p&16位你们怕不怕!&br&&figure&&img src=&https://pic2.zhimg.com/50/2bb37bfbd19d_b.jpg& data-rawwidth=&720& data-rawheight=&865& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic2.zhimg.com/50/2bb37bfbd19d_r.jpg&&&/figure&&br&&br&&a href=&//link.zhihu.com/?target=http%3A//blog.renren.com/blog/1088369& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&基于Minecraft实现的计算机工程:一期开发视频&技术细节&/a&&/p&
16位你们怕不怕!
利益相关:minecraft modder&br&“怎么设计的”和“设计成什么样的”是两个不同的问题,“内部的逻辑,一些奇特的机制”都是“设计成什么样的问题。当然这两个问题是紧密相关的。&br&从软件工程的角度,minecraft的代码其实写的不那么漂亮,因为它是一个典型的快速开发不断迭代的项目,看代码就很容易能看出来,minecraft很多部分都明显是先有一个方便的原型, 然后部分重构,再部分重构,这么拖着改到今天这么大的。所以里面有很多不规范、临时的用法在里面残留着。今天我就着重说一说MC写的烂的地方。&i&再顺便黑一黑java&/i&&br&举几个例子&br&1、GUI&br&MC的GUI是lwjgl从头写的,它写的难看到了什么地步呢,就是随便一个稍微上一点档次的mod,都要重新造一遍轮子。MC GuiScreen里面的一个鼠标事件是这么写的:&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&kd&&protected&/span& &span class=&kt&&void&/span& &span class=&nf&&mouseClicked&/span&&span class=&o&&(&/span&&span class=&kt&&int&/span& &span class=&n&&x&/span&&span class=&o&&,&/span& &span class=&kt&&int&/span& &span class=&n&&y&/span&&span class=&o&&,&/span& &span class=&kt&&int&/span& &span class=&n&&enable&/span&&span class=&o&&)&/span&
&span class=&o&&{&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&enable&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span&&span class=&o&&)&/span&
&span class=&o&&{&/span&
&span class=&k&&for&/span& &span class=&o&&(&/span&&span class=&kt&&int&/span& &span class=&n&&l&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&o&&;&/span& &span class=&n&&l&/span& &span class=&o&&&&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&buttonList&/span&&span class=&o&&.&/span&&span class=&na&&size&/span&&span class=&o&&();&/span& &span class=&o&&++&/span&&span class=&n&&l&/span&&span class=&o&&)&/span&
&span class=&o&&{&/span&
&span class=&n&&GuiButton&/span& &span class=&n&&guibutton&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&n&&GuiButton&/span&&span class=&o&&)&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&buttonList&/span&&span class=&o&&.&/span&&span class=&na&&get&/span&&span class=&o&&(&/span&&span class=&n&&l&/span&&span class=&o&&);&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&guibutton&/span&&span class=&o&&.&/span&&span class=&na&&mousePressed&/span&&span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&mc&/span&&span class=&o&&,&/span& &span class=&n&&x&/span&&span class=&o&&,&/span& &span class=&n&&y&/span&&span class=&o&&))&/span&
&span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&selectedButton&/span& &span class=&o&&=&/span& &span class=&n&&guibutton&/span&&span class=&o&&;&/span&
&span class=&n&&guibutton&/span&&span class=&o&&.&/span&&span class=&na&&playsound&/span&&span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&mc&/span&&span class=&o&&.&/span&&span class=&na&&getSoundHandler&/span&&span class=&o&&());&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&actionPerformed&/span&&span class=&o&&(&/span&&span class=&n&&guibutton&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&GuiButton.mousePressed()长这样:&br&&div class=&highlight&&&pre&&code class=&language-text&&public boolean mousePressed(Minecraft p__, int p__, int p__)
return this.enabled && this.visible && p__ &= this.xPosition && p__ &= this.yPosition && p__ & this.xPosition + this.width && p__ & this.yPosition + this.
&/code&&/pre&&/div&对,根本没有事件,也没有回调,逻辑必须在主窗口类的actionPerformed里处理,这是上个世纪90年代的写法。所以说稍微有点档次的mod都要重写GUI,因为MC本来写的真是太难看了。&br&(顺便一提,forge用ASM在这里生插进去了一个事件,虽然这个事件会把别人的按钮事件也发送给你。所以还算有事件可用,但是这就不算MC本身写的了。)&br&2、注册&br&我又回头看了看,注册这个问题很大,所以我决定不止讲那个硬编码的部分,展开说。&br&&br&首先就是一段硬编码的注册代码。这是Block类里的:&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kt&&void&/span& &span class=&nf&&registerBlocks&/span&&span class=&o&&()&/span&
&span class=&o&&{&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&0&/span&&span class=&o&&,&/span& &span class=&s&&&air&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockAir&/span&&span class=&o&&()).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&air&&/span&&span class=&o&&));&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&1&/span&&span class=&o&&,&/span& &span class=&s&&&stone&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockStone&/span&&span class=&o&&()).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&1.5&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setResistance&/span&&span class=&o&&(&/span&&span class=&mf&&10.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setStepSound&/span&&span class=&o&&(&/span&&span class=&n&&soundTypePiston&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&stone&&/span&&span class=&o&&).&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&stone&&/span&&span class=&o&&));&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&2&/span&&span class=&o&&,&/span& &span class=&s&&&grass&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockGrass&/span&&span class=&o&&()).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&0.6&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setStepSound&/span&&span class=&o&&(&/span&&span class=&n&&soundTypeGrass&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&grass&&/span&&span class=&o&&).&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&grass&&/span&&span class=&o&&));&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&3&/span&&span class=&o&&,&/span& &span class=&s&&&dirt&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockDirt&/span&&span class=&o&&()).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&0.5&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setStepSound&/span&&span class=&o&&(&/span&&span class=&n&&soundTypeGravel&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&dirt&&/span&&span class=&o&&).&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&dirt&&/span&&span class=&o&&));&/span&
&span class=&n&&Block&/span& &span class=&n&&block&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Block&/span&&span class=&o&&(&/span&&span class=&n&&Material&/span&&span class=&o&&.&/span&&span class=&na&&rock&/span&&span class=&o&&)).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&2.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setResistance&/span&&span class=&o&&(&/span&&span class=&mf&&10.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setStepSound&/span&&span class=&o&&(&/span&&span class=&n&&soundTypePiston&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&stonebrick&&/span&&span class=&o&&).&/span&&span class=&na&&setCreativeTab&/span&&span class=&o&&(&/span&&span class=&n&&CreativeTabs&/span&&span class=&o&&.&/span&&span class=&na&&tabBlock&/span&&span class=&o&&).&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&cobblestone&&/span&&span class=&o&&);&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&4&/span&&span class=&o&&,&/span& &span class=&s&&&cobblestone&&/span&&span class=&o&&,&/span& &span class=&n&&block&/span&&span class=&o&&);&/span&
&span class=&n&&Block&/span& &span class=&n&&block1&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockWood&/span&&span class=&o&&()).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&2.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setResistance&/span&&span class=&o&&(&/span&&span class=&mf&&5.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setStepSound&/span&&span class=&o&&(&/span&&span class=&n&&soundTypeWood&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&wood&&/span&&span class=&o&&).&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&planks&&/span&&span class=&o&&);&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&5&/span&&span class=&o&&,&/span& &span class=&s&&&planks&&/span&&span class=&o&&,&/span& &span class=&n&&block1&/span&&span class=&o&&);&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&6&/span&&span class=&o&&,&/span& &span class=&s&&&sapling&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockSapling&/span&&span class=&o&&()).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&0.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setStepSound&/span&&span class=&o&&(&/span&&span class=&n&&soundTypeGrass&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&sapling&&/span&&span class=&o&&).&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&sapling&&/span&&span class=&o&&));&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&7&/span&&span class=&o&&,&/span& &span class=&s&&&bedrock&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Block&/span&&span class=&o&&(&/span&&span class=&n&&Material&/span&&span class=&o&&.&/span&&span class=&na&&rock&/span&&span class=&o&&)).&/span&&span class=&na&&setBlockUnbreakable&/span&&span class=&o&&().&/span&&span class=&na&&setResistance&/span&&span class=&o&&(&/span&&span class=&mf&&&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setStepSound&/span&&span class=&o&&(&/span&&span class=&n&&soundTypePiston&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&bedrock&&/span&&span class=&o&&).&/span&&span class=&na&&disableStats&/span&&span class=&o&&().&/span&&span class=&na&&setCreativeTab&/span&&span class=&o&&(&/span&&span class=&n&&CreativeTabs&/span&&span class=&o&&.&/span&&span class=&na&&tabBlock&/span&&span class=&o&&).&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&bedrock&&/span&&span class=&o&&));&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&8&/span&&span class=&o&&,&/span& &span class=&s&&&flowing_water&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockDynamicLiquid&/span&&span class=&o&&(&/span&&span class=&n&&Material&/span&&span class=&o&&.&/span&&span class=&na&&water&/span&&span class=&o&&)).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&100.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setLightOpacity&/span&&span class=&o&&(&/span&&span class=&mi&&3&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&water&&/span&&span class=&o&&).&/span&&span class=&na&&disableStats&/span&&span class=&o&&().&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&water_flow&&/span&&span class=&o&&));&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&9&/span&&span class=&o&&,&/span& &span class=&s&&&water&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockStaticLiquid&/span&&span class=&o&&(&/span&&span class=&n&&Material&/span&&span class=&o&&.&/span&&span class=&na&&water&/span&&span class=&o&&)).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&100.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setLightOpacity&/span&&span class=&o&&(&/span&&span class=&mi&&3&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&water&&/span&&span class=&o&&).&/span&&span class=&na&&disableStats&/span&&span class=&o&&().&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&water_still&&/span&&span class=&o&&));&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&10&/span&&span class=&o&&,&/span& &span class=&s&&&flowing_lava&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockDynamicLiquid&/span&&span class=&o&&(&/span&&span class=&n&&Material&/span&&span class=&o&&.&/span&&span class=&na&&lava&/span&&span class=&o&&)).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&100.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setLightLevel&/span&&span class=&o&&(&/span&&span class=&mf&&1.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&lava&&/span&&span class=&o&&).&/span&&span class=&na&&disableStats&/span&&span class=&o&&().&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&lava_flow&&/span&&span class=&o&&));&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&11&/span&&span class=&o&&,&/span& &span class=&s&&&lava&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockStaticLiquid&/span&&span class=&o&&(&/span&&span class=&n&&Material&/span&&span class=&o&&.&/span&&span class=&na&&lava&/span&&span class=&o&&)).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&100.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setLightLevel&/span&&span class=&o&&(&/span&&span class=&mf&&1.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&lava&&/span&&span class=&o&&).&/span&&span class=&na&&disableStats&/span&&span class=&o&&().&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&lava_still&&/span&&span class=&o&&));&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&12&/span&&span class=&o&&,&/span& &span class=&s&&&sand&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockSand&/span&&span class=&o&&()).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&0.5&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setStepSound&/span&&span class=&o&&(&/span&&span class=&n&&soundTypeSand&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&sand&&/span&&span class=&o&&).&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&sand&&/span&&span class=&o&&));&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&13&/span&&span class=&o&&,&/span& &span class=&s&&&gravel&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockGravel&/span&&span class=&o&&()).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&0.6&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setStepSound&/span&&span class=&o&&(&/span&&span class=&n&&soundTypeGravel&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&gravel&&/span&&span class=&o&&).&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&gravel&&/span&&span class=&o&&));&/span&
&span class=&n&&blockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&addObject&/span&&span class=&o&&(&/span&&span class=&mi&&14&/span&&span class=&o&&,&/span& &span class=&s&&&gold_ore&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&BlockOre&/span&&span class=&o&&()).&/span&&span class=&na&&setHardness&/span&&span class=&o&&(&/span&&span class=&mf&&3.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setResistance&/span&&span class=&o&&(&/span&&span class=&mf&&5.0&/span&&span class=&n&&F&/span&&span class=&o&&).&/span&&span class=&na&&setStepSound&/span&&span class=&o&&(&/span&&span class=&n&&soundTypePiston&/span&&span class=&o&&).&/span&&span class=&na&&setBlockName&/span&&span class=&o&&(&/span&&span class=&s&&&oreGold&&/span&&span class=&o&&).&/span&&span class=&na&&setBlockTextureName&/span&&span class=&o&&(&/span&&span class=&s&&&gold_ore&&/span&&span class=&o&&));&/span&
&/code&&/pre&&/div&后面不往下写了,都是这样,直到把所有方块注册完。这是flash小游戏的写法吧。&br&不过硬编码和硬编码也不一样。你应该注意一下细节,blockRegistry.addObject()的第一个参数是一个int,它是方块的序号。在RegistryNamespaced里,这个序号作map的key值。序号硬编码会造成什么恶果呢?对,序号冲突。自己改序号不好改(所以你看到MC从来没有删除过物品或者方块,也没有在中间添加过,因为会导致序号改变),别人加物品更头痛。所以1.6以及之前,mod一直有一个序号冲突的问题。那么在1.7是否解决了序号问题呢?实际上,没有。1.7的方块问题最大的改动是加进了一个UnlocalizedName,意思就是说你以后用这个名字来找方块,但是实际上代码内部还是用int编号硬编码。而1.8最大的改动是让你在游戏内命令里不能按照序号give方块了,而代码内部还是跟上面没什么区别,用int硬编码。&br&于是在1.7,fml加进了自动分配序号的功能:&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&kn&&package&/span& &span class=&nn&&cpw.mods.fml.common.registry&/span&&span class=&o&&;&/span&
&span class=&kd&&private&/span& &span class=&kt&&int&/span& &span class=&nf&&registerBlock&/span&&span class=&o&&(&/span&&span class=&n&&Block&/span& &span class=&n&&block&/span&&span class=&o&&,&/span& &span class=&n&&String&/span& &span class=&n&&name&/span&&span class=&o&&,&/span& &span class=&kt&&int&/span& &span class=&n&&idHint&/span&&span class=&o&&)&/span&
&span class=&o&&{&/span&
&span class=&c1&&// handle ItemBlock-before-Block registrations&/span&
&span class=&n&&ItemBlock&/span& &span class=&n&&itemBlock&/span& &span class=&o&&=&/span& &span class=&kc&&null&/span&&span class=&o&&;&/span&
&span class=&k&&for&/span& &span class=&o&&(&/span&&span class=&n&&Item&/span& &span class=&n&&item&/span& &span class=&o&&:&/span& &span class=&n&&iItemRegistry&/span&&span class=&o&&.&/span&&span class=&na&&typeSafeIterable&/span&&span class=&o&&())&/span& &span class=&c1&&// find matching ItemBlock&/span&
&span class=&o&&{&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&item&/span& &span class=&k&&instanceof&/span& &span class=&n&&ItemBlock&/span& &span class=&o&&&&&/span& &span class=&o&&((&/span&&span class=&n&&ItemBlock&/span&&span class=&o&&)&/span& &span class=&n&&item&/span&&span class=&o&&).&/span&&span class=&na&&field_150939_a&/span& &span class=&o&&==&/span& &span class=&n&&block&/span&&span class=&o&&)&/span&
&span class=&o&&{&/span&
&span class=&n&&itemBlock&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&n&&ItemBlock&/span&&span class=&o&&)&/span& &span class=&n&&item&/span&&span class=&o&&;&/span&
&span class=&k&&break&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&itemBlock&/span& &span class=&o&&!=&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&c1&&// has ItemBlock, adjust id and clear the slot already occupied by the corresponding item&/span&
&span class=&o&&{&/span&
&span class=&n&&idHint&/span& &span class=&o&&=&/span& &span class=&n&&iItemRegistry&/span&&span class=&o&&.&/span&&span class=&na&&getId&/span&&span class=&o&&(&/span&&span class=&n&&itemBlock&/span&&span class=&o&&);&/span&
&span class=&n&&FMLLog&/span&&span class=&o&&.&/span&&span class=&na&&fine&/span&&span class=&o&&(&/span&&span class=&s&&&Found matching ItemBlock %s for Block %s at id %d&&/span&&span class=&o&&,&/span& &span class=&n&&itemBlock&/span&&span class=&o&&,&/span& &span class=&n&&block&/span&&span class=&o&&,&/span& &span class=&n&&idHint&/span&&span class=&o&&);&/span&
&span class=&n&&freeSlot&/span&&span class=&o&&(&/span&&span class=&n&&idHint&/span&&span class=&o&&,&/span& &span class=&n&&block&/span&&span class=&o&&);&/span& &span class=&c1&&// temporarily free the slot occupied by the Item for the block registration&/span&
&span class=&o&&}&/span&
&span class=&c1&&// add&/span&
&span class=&kt&&int&/span& &span class=&n&&blockId&/span& &span class=&o&&=&/span& &span class=&n&&iBlockRegistry&/span&&span class=&o&&.&/span&&span class=&na&&add&/span&&span class=&o&&(&/span&&span class=&n&&idHint&/span&&span class=&o&&,&/span& &span class=&n&&name&/span&&span class=&o&&,&/span& &span class=&n&&block&/span&&span class=&o&&,&/span& &span class=&n&&availabilityMap&/span&&span class=&o&&);&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&itemBlock&/span& &span class=&o&&!=&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&c1&&// verify&/span&
&span class=&o&&{&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&blockId&/span& &span class=&o&&!=&/span& &span class=&n&&idHint&/span&&span class=&o&&)&/span& &span class=&k&&throw&/span& &span class=&k&&new&/span& &span class=&n&&IllegalStateException&/span&&span class=&o&&(&/span&&span class=&n&&String&/span&&span class=&o&&.&/span&&span class=&na&&format&/span&&span class=&o&&(&/span&&span class=&s&&&Block at itemblock id %d insertion failed, got id %d.&&/span&&span class=&o&&,&/span& &span class=&n&&idHint&/span&&span class=&o&&,&/span& &span class=&n&&blockId&/span&&span class=&o&&));&/span&
&span class=&n&&verifyItemBlockName&/span&&span class=&o&&(&/span&&span class=&n&&itemBlock&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&n&&useSlot&/span&&span class=&o&&(&/span&&span class=&n&&blockId&/span&&span class=&o&&);&/span&
&span class=&o&&((&/span&&span class=&n&&RegistryDelegate&/span&&span class=&o&&.&/span&&span class=&na&&Delegate&/span&&span class=&o&&&&/span&&span class=&n&&Block&/span&&span class=&o&&&)&/span& &span class=&n&&block&/span&&span class=&o&&.&/span&&span class=&na&&delegate&/span&&span class=&o&&).&/span&&span class=&na&&setName&/span&&span class=&o&&(&/span&&span class=&n&&name&/span&&span class=&o&&);&/span&
&span class=&k&&return&/span& &span class=&n&&blockId&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&&br&用的namespace都不是原来的RegistryNamespaced,是fml自己的FMLControlledNamespacedRegistry&I&,也就是说原来那个已经没法用了。对,你看fml还加泛型,可以限定这个命名空间给方块用或者给物品用,这就是人的写法。&br&看中间那个if,就是在判断命名空间里有没有;如果没有,重新分配序号。&br&这个就是有fml,帮我们解决了MC的代码问题。如果fml没解决呢?&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&kd&&public&/span& &span class=&kd&&class&/span& &span class=&nc&&Potion&/span&
&span class=&o&&{&/span&
&span class=&cm&&/** The array of potion types. */&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span&&span class=&o&&[]&/span& &span class=&n&&potionTypes&/span& &span class=&o&&=&/span& &span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&[&/span&&span class=&mi&&32&/span&&span class=&o&&];&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&field_76423_b&/span& &span class=&o&&=&/span& &span class=&kc&&null&/span&&span class=&o&&;&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&moveSpeed&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&1&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&8171462&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.moveSpeed&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&0&/span&&span class=&o&&,&/span& &span class=&mi&&0&/span&&span class=&o&&).&/span&&span class=&na&&func_111184_a&/span&&span class=&o&&(&/span&&span class=&n&&SharedMonsterAttributes&/span&&span class=&o&&.&/span&&span class=&na&&movementSpeed&/span&&span class=&o&&,&/span& &span class=&s&&&91AEAA56-376B-F7F&&/span&&span class=&o&&,&/span& &span class=&mf&&0.23224&/span&&span class=&n&&D&/span&&span class=&o&&,&/span& &span class=&mi&&2&/span&&span class=&o&&);&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&moveSlowdown&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&2&/span&&span class=&o&&,&/span& &span class=&kc&&true&/span&&span class=&o&&,&/span& &span class=&mi&&5926017&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.moveSlowdown&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&1&/span&&span class=&o&&,&/span& &span class=&mi&&0&/span&&span class=&o&&).&/span&&span class=&na&&func_111184_a&/span&&span class=&o&&(&/span&&span class=&n&&SharedMonsterAttributes&/span&&span class=&o&&.&/span&&span class=&na&&movementSpeed&/span&&span class=&o&&,&/span& &span class=&s&&&CE8-4C1F160890&&/span&&span class=&o&&,&/span& &span class=&o&&-&/span&&span class=&mf&&0.46448&/span&&span class=&n&&D&/span&&span class=&o&&,&/span& &span class=&mi&&2&/span&&span class=&o&&);&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&digSpeed&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&3&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.digSpeed&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&2&/span&&span class=&o&&,&/span& &span class=&mi&&0&/span&&span class=&o&&).&/span&&span class=&na&&setEffectiveness&/span&&span class=&o&&(&/span&&span class=&mf&&1.5&/span&&span class=&n&&D&/span&&span class=&o&&);&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&digSlowdown&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&4&/span&&span class=&o&&,&/span& &span class=&kc&&true&/span&&span class=&o&&,&/span& &span class=&mi&&4866583&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.digSlowDown&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&3&/span&&span class=&o&&,&/span& &span class=&mi&&0&/span&&span class=&o&&);&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&damageBoost&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&PotionAttackDamage&/span&&span class=&o&&(&/span&&span class=&mi&&5&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&9643043&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.damageBoost&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&4&/span&&span class=&o&&,&/span& &span class=&mi&&0&/span&&span class=&o&&).&/span&&span class=&na&&func_111184_a&/span&&span class=&o&&(&/span&&span class=&n&&SharedMonsterAttributes&/span&&span class=&o&&.&/span&&span class=&na&&attackDamage&/span&&span class=&o&&,&/span& &span class=&s&&&648D-4F59-8ABE-C2C23A6DD7A9&&/span&&span class=&o&&,&/span& &span class=&mf&&3.0&/span&&span class=&n&&D&/span&&span class=&o&&,&/span& &span class=&mi&&2&/span&&span class=&o&&);&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&heal&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&PotionHealth&/span&&span class=&o&&(&/span&&span class=&mi&&6&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.heal&&/span&&span class=&o&&);&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&harm&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&PotionHealth&/span&&span class=&o&&(&/span&&span class=&mi&&7&/span&&span class=&o&&,&/span& &span class=&kc&&true&/span&&span class=&o&&,&/span& &span class=&mi&&4393481&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.harm&&/span&&span class=&o&&);&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&jump&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&8&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&7889559&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.jump&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&2&/span&&span class=&o&&,&/span& &span class=&mi&&1&/span&&span class=&o&&);&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&confusion&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&9&/span&&span class=&o&&,&/span& &span class=&kc&&true&/span&&span class=&o&&,&/span& &span class=&mi&&5578058&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.confusion&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&3&/span&&span class=&o&&,&/span& &span class=&mi&&1&/span&&span class=&o&&).&/span&&span class=&na&&setEffectiveness&/span&&span class=&o&&(&/span&&span class=&mf&&0.25&/span&&span class=&n&&D&/span&&span class=&o&&);&/span&
&span class=&cm&&/** The regeneration Potion object. */&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&regeneration&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&10&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.regeneration&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&7&/span&&span class=&o&&,&/span& &span class=&mi&&0&/span&&span class=&o&&).&/span&&span class=&na&&setEffectiveness&/span&&span class=&o&&(&/span&&span class=&mf&&0.25&/span&&span class=&n&&D&/span&&span class=&o&&);&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&resistance&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&11&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.resistance&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&6&/span&&span class=&o&&,&/span& &span class=&mi&&1&/span&&span class=&o&&);&/span&
&span class=&cm&&/** The fire resistance Potion object. */&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&fireResistance&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&12&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.fireResistance&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&7&/span&&span class=&o&&,&/span& &span class=&mi&&1&/span&&span class=&o&&);&/span&
&span class=&cm&&/** The water breathing Potion object. */&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&waterBreathing&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&13&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&3035801&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.waterBreathing&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&0&/span&&span class=&o&&,&/span& &span class=&mi&&2&/span&&span class=&o&&);&/span&
&span class=&cm&&/** The invisibility Potion object. */&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&invisibility&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&14&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&8356754&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.invisibility&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&0&/span&&span class=&o&&,&/span& &span class=&mi&&1&/span&&span class=&o&&);&/span&
&span class=&cm&&/** The blindness Potion object. */&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&blindness&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&15&/span&&span class=&o&&,&/span& &span class=&kc&&true&/span&&span class=&o&&,&/span& &span class=&mi&&2039587&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.blindness&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&5&/span&&span class=&o&&,&/span& &span class=&mi&&1&/span&&span class=&o&&).&/span&&span class=&na&&setEffectiveness&/span&&span class=&o&&(&/span&&span class=&mf&&0.25&/span&&span class=&n&&D&/span&&span class=&o&&);&/span&
&span class=&cm&&/** The night vision Potion object. */&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&nightVision&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&16&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&2039713&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.nightVision&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&4&/span&&span class=&o&&,&/span& &span class=&mi&&1&/span&&span class=&o&&);&/span&
&span class=&cm&&/** The hunger Potion object. */&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&hunger&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&17&/span&&span class=&o&&,&/span& &span class=&kc&&true&/span&&span class=&o&&,&/span& &span class=&mi&&5797459&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.hunger&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&1&/span&&span class=&o&&,&/span& &span class=&mi&&1&/span&&span class=&o&&);&/span&
&span class=&cm&&/** The weakness Potion object. */&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&weakness&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&PotionAttackDamage&/span&&span class=&o&&(&/span&&span class=&mi&&18&/span&&span class=&o&&,&/span& &span class=&kc&&true&/span&&span class=&o&&,&/span& &span class=&mi&&4738376&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.weakness&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&5&/span&&span class=&o&&,&/span& &span class=&mi&&0&/span&&span class=&o&&).&/span&&span class=&na&&func_111184_a&/span&&span class=&o&&(&/span&&span class=&n&&SharedMonsterAttributes&/span&&span class=&o&&.&/span&&span class=&na&&attackDamage&/span&&span class=&o&&,&/span& &span class=&s&&&E-49DC-9B6B-BE5&&/span&&span class=&o&&,&/span& &span class=&mf&&2.0&/span&&span class=&n&&D&/span&&span class=&o&&,&/span& &span class=&mi&&0&/span&&span class=&o&&);&/span&
&span class=&cm&&/** The poison Potion object. */&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&poison&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&19&/span&&span class=&o&&,&/span& &span class=&kc&&true&/span&&span class=&o&&,&/span& &span class=&mi&&5149489&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.poison&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&6&/span&&span class=&o&&,&/span& &span class=&mi&&0&/span&&span class=&o&&).&/span&&span class=&na&&setEffectiveness&/span&&span class=&o&&(&/span&&span class=&mf&&0.25&/span&&span class=&n&&D&/span&&span class=&o&&);&/span&
&span class=&cm&&/** The wither Potion object. */&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&wither&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&Potion&/span&&span class=&o&&(&/span&&span class=&mi&&20&/span&&span class=&o&&,&/span& &span class=&kc&&true&/span&&span class=&o&&,&/span& &span class=&mi&&3484199&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.wither&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&1&/span&&span class=&o&&,&/span& &span class=&mi&&2&/span&&span class=&o&&).&/span&&span class=&na&&setEffectiveness&/span&&span class=&o&&(&/span&&span class=&mf&&0.25&/span&&span class=&n&&D&/span&&span class=&o&&);&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&field_76434_w&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&PotionHealthBoost&/span&&span class=&o&&(&/span&&span class=&mi&&21&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.healthBoost&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&2&/span&&span class=&o&&,&/span& &span class=&mi&&2&/span&&span class=&o&&).&/span&&span class=&na&&func_111184_a&/span&&span class=&o&&(&/span&&span class=&n&&SharedMonsterAttributes&/span&&span class=&o&&.&/span&&span class=&na&&maxHealth&/span&&span class=&o&&,&/span& &span class=&s&&&5D6F0BA2-1186-46AC-B896-C61C5CEE99CC&&/span&&span class=&o&&,&/span& &span class=&mf&&4.0&/span&&span class=&n&&D&/span&&span class=&o&&,&/span& &span class=&mi&&0&/span&&span class=&o&&);&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Potion&/span& &span class=&n&&field_76444_x&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&PotionAbsoption&/span&&span class=&o&&(&/span&&span class=&mi&&22&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&mi&&2445989&/span&&span class=&o&&)).&/span&&span class=&na&&setPotionName&/span&&span class=&o&&(&/span&&span class=&s&&&potion.absorption&&/span&&span class=&o&&).&/span&&span class=&na&&setIconIndex&/span&&span class=&o&&(&/span&&span class=&mi&&2&/span&&span class=&o&&,&/span& &span class=&mi&&2&/span&&span class=&o&&);&/span&
&span class=&kd&&

我要回帖

更多关于 hunger studio 的文章

 

随机推荐